Professional Documents
Culture Documents
מצגת שיעור 10
מצגת שיעור 10
מכונת טיורינג
קורס אוטומטים ושפות פורמליות
מרצה :אברהם בן-ארויה
מצגות :עקיבא קליינרמן
מכונת טיורינג
מכונת טיורינג (מ"ט) הוא מודל חישובי ש"חזק" יותר מכל המודלים
הקודמים (אס"ד ,אסל"ד ,אמל"ד) שלמדנו.
" חזק" במובן הזה שהוא יכול לחשב שפות שלא ניתנות לחישוב
במודלים הקודמים.
מ"ט קרויה על שמו של המתמטיקאי אלן טיורינג.
מ"ט דומה למודלים החישוביים הקודמים בכך שיש לו א"ב ,מצבים,
מצב מקבל ופונקציית מעברים .הוא גם דומה לאוטומט מחסנית
בכך שיש לו "זיכרון" שאינו מוגבל בגודלו.
רכיבי מכונת טיורינג
) 𝑅 𝛿: 𝑄 × Γ → (𝑄 × Γ × 𝐿,
הפונקציה מקבלת כקלט מצב ואת האות שהראש קורא כותב נמצא עליו ומחזירה שלישייה:
א .מצב חדש .ב .אות שנכתב על הסרט .ג .כיוון שאליו זז הראש קורא כותב
לדוגמא:
𝐿 𝛿 𝑞,𝑎 = 𝑞 ′ ,𝑏,המשמעות היא שכאשר נמצאים במצב 𝑞 וקוראים את התו 𝑎 אז עוברים
למצב ’𝑞 ,כותבים את 𝑏 במקום ה𝑎 וזזים שמאלה.
הסרט בתחילת הריצה
המכונה מתחילה כאשר על הסרט כתובה המילה * , xשאר הסרט מרופד ברווחים ⎵
המכונה מתחילה במצב התחלתי q0והראש נמצא על קצה הקלט השמאלי ביותר של
הסרט.
קונפיגורציה
תיאור ריצת המכונה בכל שלב נתון ע"י קונפיגורציה )𝑣 (𝑞,𝑢,כאשר 𝑞 הוא המצב
הנוכחי של המכונה 𝑢 ,היא המילה על הסרט משמאל לראש הקורא ו 𝑣 -הינה
המילה ממקום הראש הקורא וימינה עד המקום בו מתחיל רצף התו ⎵ האינסופי.
𝑢 هي الكلمة املوجودة على الشريط املوجود على يسار رأس القارئ
-هي الكلمة من مكان رأس القارئ إلى اليمني إلى املكان الذي يبدأ فيه تسلسل الحرف الالنهائي. 𝑣
𝑐𝑎 = 𝑢
⎵ a c b a a c ⎵
𝑐𝑎𝑎𝑏 = 𝑣
)( q, u, v
q )𝑐𝑎𝑎𝑏 (𝑞, 𝑎𝑐,
טרמינולוגיה
אם ניתן לעבור מקונפיגורציה אחת לקונפיגורציה אחרת ע"י סדרה סופית
שלמעברים נסמן זאת ע"י ∗⊢
.
שפת מכונת טיורינג
במילים אחרות ,במכונת טיורינג דטרמיניסטית ,מילה מתקבלת ע"י המכונה אם קריאתה
מהמצב ההתחלתי )ומאות הקלט השמאלית ביותר) מסתיימת במצב מקבל.
במכונת טיורינג לא דטרמיניסטית ,מילה מתקבלת ע"י המכונה אם קיימת קריאה מהמצב ההתחלתי המסתיימת במצב מקבל.
∗
𝐋 = 𝐰 ∈ 𝐚, 𝐛 #𝒂 𝐰 = #𝐛 𝐰}
✓ → ✓, R
q.b ⃩ ⃩
b → b, R → ,L
✓ → ✓, R
⃩ ⃩
→ ,R
acc q.0 back rej
⃩ ⃩ a → a, L
→ ,R b → b, L
✓ → ✓, L ⃩ ⃩
→ ,L
✓ → ✓, R q.a
a → a, R
תרגיל
aabbbcccccc
Xabbbcccccc
XaYYYZZZccc
XabbbZZZccc
XXYYYZZZZZZ
}𝐿 = {𝑎𝑖 𝑏 𝑗 𝑐 𝑖∙𝑗 |i, j ≥ 0
פסאודו קוד:
.1מחק אות aוכתוב אות ,Xסרוק ימינה עד שתגיע לאות .b
.2כל עוד נותרו אותיות bשאינם מחוקים:
(aמחק את האות bהראשונה וכתוב אות Yבמקום.
(bסרוק עד האותיות ,cמחק אות cוכתוב Zבמקום.
(cאם לא נותרו אותיות -cדחה.
.3חזור לתחילת הקלט ושחזר את כל אותיות ה( bהחלף אותיות Yב.)b
.4חזור לתחילת הקלט ,אם נותרו אותיות -aחזור לשלב .1
.5אם כל אותיות ה aמחוקות ע"י X
בדוק :אם לא נותרו אותיות cשאינן מחוקות -קבל.
אחרת -דחה.
הכרעה וזיהוי שפות
הגדרה :נאמר שמ"ט Mמכריעה את השפה Lאם M :מקבלת כל מילה ב Lוגם Mעוצרת על כל
קלט ∗ .𝑤 ∈ Σכלומר המכונה מקבלת כל מילה בשפה ודוחה כל מילה שאינה בשפה .דוגמאות:
)𝐿 𝜎∗ (𝑞0,𝜎) = (𝑎𝑐𝑐,𝜎,מכריעה את השפה ∗ המכונה הפשוטה ∶
המכונה שהגדרנו עבור 𝑛 𝑐 𝑛 𝑏 𝑛𝑎 מכריעה את השפה (המכונה תעצור תמיד על כל קלט ,נסו לחשוב
איך זה מובטח)
𝐿∉𝑤 נאמר שמכונה Mמזהה את השפה Lאם Mמקבלת כל מילה 𝐿𝜖𝑤 ועבור כל מילה
Mדוחה או לא עוצרת .דוגמאות:
כל מ"ט שמכריעה שפה היא בפרט גם מזהה אותה.
a\b\⎵ → R
זיהוי שפה
a→R
b→L
𝑞0 𝑞1
⎵→L
acc
a\b\⎵ → R
a, b → R
q.0 q.1
⎵→R
acc
חישוב מכונת טיורינג
תהי ∗ 𝑓: Σ ∗ ⟶ Σ ∗ ∪ Γפונקציה.
נאמר שמ"ט מחשבת את פונקציה 𝑓 אם כאשר מריצים את 𝑀 על ∗ 𝑤 ∈ Σכלשהו𝑀 ,
עוצרת ומותירה על הסרט את המחרוזת )𝑤(𝑓.
⃩
→L
q.1
q.3
a\b → L
⃩
q.0 a\b → R →R
q.back
⃩
→L
q.2
q.4 כל המעברים
acc שלא מופיעים,
עוברים ל rej
⃩
→R