Download presentation
Presentation is loading. Please wait.
1
Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations of Liane Lewin-Eytan and Alex Shraer
2
Design and Analysis of Algorithms, Technion EE, 2010 2 Deterministic Turing Machine x3x3 x4x4 x5x5 x6x6... x2x2 x1x1 q מצב סרט אינסופי ראש קורא / כותב xnxn bbb סרט אינסופי בכוון אחד המכיל תאים. בכל תא כתובה אות אחת מתוך א " ב סופי. ראש קורא / כותב נמצא בכל רגע מעל תא אחד המכונה נמצאת בכל רגע באחד ממספר סופי של מצבים ( בבקרה ). בתחילת הריצה הסרט מכיל את הקלט ואחריו אינסוף - ים. התוכנית מקודדת במצבי הבקרה b
3
Design and Analysis of Algorithms, Technion EE, 2010 3 הגדרה פורמאלית מכונת טיורינג ( מ " ט ) היא שביעיה : M = (Q, q 0, F, ,, ) 1)Q קבוצה סופית - קבוצת המצבים 2)q 0 Q הוא מצב התחלתי ( בו מתחיל החישוב ) 3)F Q הם מצבים סופיים ועוצרים ( בהם מסתיים החישוב ) 4) קבוצה סופית - א " ב עבודה ( אותיות שהמכונה יכולה לכתוב על הסרט ) 5) א " ב הקלט 6) \ נקרא רווח (blank) 7) פונקצית המעברים : : (Q\F) x Q x x {L, R, S} bb ימינה שמאלה להישאר
4
Design and Analysis of Algorithms, Technion EE, 2010 4 צעדי חישוב הצעד מתבצע ע " פ האות a שהראש קורא ומצב הבקרה q. אם (q, a) = (p, b, d) אז מתבצעות הפעולות הבאות : 1. האות a מוחלפת באות b ( לאו דווקא שונות ) 2. המצב q מוחלף במצב p ( לאו דווקא שונים ) 3. הראש זז בכוון d – מקרה מיוחד הוא ניסיון של המכונה ליפול מהסרט : כאשר הראש נמצא בתא השמאלי ביותר ופונ ' המעברים קובעת שיש ללכת שמאלה. במקרה כזה הראש נשאר בתא השמאלי ביותר. חוץ מהשינוי בתנועה השאר מתבצע כרגיל. –“ חישוב " של מכונה הוא סדרה של צעדים כאלה
5
Design and Analysis of Algorithms, Technion EE, 2010 5 צעדי חישוב - המשך המכונה מתחילה כאשר על הסרט כתובה המילה x *, שאר הסרט מרופד ב-. מצב הבקרה הוא q 0 והראש נמצא על הקצה השמאלי ביותר של הסרט. המכונה מתקדמת בצעדי חישוב עד שהיא מגיעה למצב סופי (עוצר) ואז הפלט של המכונה הוא המילה * הכתובה משמאל לראש בסוף החישוב: b mm 1 22 11... 2 x3x3 x4x4 x5x5 x6x6... x2x2 x1x1 xnxn bbbb q0q0 qfFqfF הפלט
6
Design and Analysis of Algorithms, Technion EE, 2010 6 קונפיגורציות האינפורמציה שיש למכונה ברגע נתון היא : 1. תוכן הסרט 2. מצב המכונה 3. מיקום הראש – תוכן הסרט נראה אינסופי אבל למעשה, אחרי m צעדים, מספר התאים המעניינים הוא m}, אורך הקלט max{, השאר מכיל רק - ים – קונפיגורציה של מכונת טיורינג מייצגת מצב רגעי של המכונה וניתנת לתיאור כמחרוזת * x Q x * C , באופן הבא : C = a 1 a 2 …a i-1 qa i a i+1 …a n – משמעות : המכונה נמצאת במצב q, הראש מסתכל על התא ה -i ותוכן הסרט הוא a 1 a 2 …a n כשאחריהם - ים. – קונפיגורציה תחילית של מ " ט היא מהצורה : C = q 0 a 1 a 2 …a n כאשר x=a 1 a 2 …a n * נקראת מילת הקלת והראש בצדו השמאלי של הסרט ( המצב הוא q 0 ). – קונפיגורציה מסיימת / סופית : קונפ ' עבורה q F אינפורמציה סופית bb
7
Design and Analysis of Algorithms, Technion EE, 2010 7 Shift Right דוגמא : מכונת נבנה מ " ט המקבלת כקלט מחרוזת בינארית * {0, 1} x ומוסיפה $ בצדה השמאלי הרעיון : נעתיק את כל אותיות הקלט תא אחד ימינה. עבור תא i: נזכור את האות הרשומה בתא i באמצעות המצב, ונרשום את האות שזכרנו מתא i-1 מימוש : bb 01 q0q0 b Q\F מצב זוכר 0 מצב זוכר 1 מצב התחלתי למה זזים ימינה?
8
Design and Analysis of Algorithms, Technion EE, 2010 8 דוגמת הרצה הקלט : 101 101 b q0q0 $01 b $11 b $10 b $101 b C 0 =q 0 101 C 1 =$ 01 C 2 =$1 1 C 3 =$10 C 4 =$101
9
Design and Analysis of Algorithms, Technion EE, 2010 9 קונפיגורציות - המשך הגדרה : נסמן אם מקונפ ' C עוברים לקונפ ' C’ בצעד חישוב יחיד של מכונה M לכל קונפ ' C יש קונפ ' עוקבת אחת, או שאין לה אף קונפ ' עוקבת, אם C היא קונפ ' מסיימת נסמן אם קיימת סדרה של קונפ ' C 1, C 2, …, C n כך שלכל i n 1 מתקיים עבור n=0: לכל קונפ ' C נסמן ע " י את הסגור הטרנזיטיבי של היחס. כלומר אם קיים n 0 כך ש : C C’ M M n C i-1 C i M C M 0 M * M M C C’ * M n
10
Design and Analysis of Algorithms, Technion EE, 2010 10 חישוב של מ " ט הגדרה : החישוב של מ " ט M על קלט x הוא סידרה ( סופית או אינסופית ) של קונפיגורציות C 0, C 1, … המקיימת : 1.C 0 היא קונפיגורציה התחלתית q 0 x של M 2. לכל i 0: 3. אם הסידרה סופית, אז הקונפיגורציה האחרונה בסידרה היא קונפיגורציה מסיימת. C i C i+1 M
11
Design and Analysis of Algorithms, Technion EE, 2010 11 דוגמא : הוספת 1 לקלט הנתון בייצוג בינארי 1. נבצע Shift ימינה של הקלט תוך סימון הקצה השמאלי של הסרט ב - '$’ 2. נעבור על המספר מימין לשמאל ונחליף כל '1' ב -'0', עד שנגיע ל -'0' או ל - '$’ 3. נחליף את ה -'0' ( או ה - '$’) ל -1. 4. אם לא כתבנו על ה - '$’ נבצע Shift שמאלה של התוצאה 5. נזיז את הראש לימין התוצאה מימוש : משמעות המצבים : q 0 מצב התחלתי q 0 SR, q 1 SR – הזזה ימינה ע " י זכירת האות הקודמת. q ADD – הוספת 1 ( בשלבים 2 ו -3 באלגוריתם ) q 1 – מעבר ימינה לקראת הזזה שמאלה q 0 SL, q 1 SL, q b SL – הזזה שמאלה ע " י זכירת האות הקודמת. q R – מעבר ימינה לקראת סיום q f – מצב סופי
12
Design and Analysis of Algorithms, Technion EE, 2010 12 המשך הדוגמא טבלת המעברים : הערה : הסימון --- מציין מעברים בלתי יישיגים, אשר ניתן להגדירם שרירותית.
13
Design and Analysis of Algorithms, Technion EE, 2010 13 חישוב פונקציות הגדרה : הפונקציה f M המחושבת ע " י מ " ט M היא פונקציה ( מלאה או חלקית ) * * f M :, המוגדרת ע " י : לכל x 1. אם החישוב של M על x אינסופי (M לא עוצרת על x) אז f M (x) אינה מוגדרת. במקרה זה f M היא פונקציה חלקית. 2. אם החישוב של M על x סופי והקונפיגורציה המסיימת היא q ( * , ) אז f M (x)= עבור פונקציה f: * *, נאמר ש -f ניתנת לחישוב אם קיימת מ " ט M המחשבת את f( כלומר f M = f). בפרט, M עוצרת לכל קלט. דוגמאות : f(x) = $x f(x)=x+1
14
Design and Analysis of Algorithms, Technion EE, 2010 14 עוד דוגמאות של חישוב פונקציות 1. מ " ט שמחשבת את הפונקציה - אפשר גם L במקום S, כי הראש לא זז שמאלה בקצה השמאלי - אפשר גם להגדיר את q 0 כמצב סופי ואז לא צריך להגדיר פונק ' מעבר. 2. מ " ט שמחשבת את הפונקציה ( נניח ש : ) 3. מה הפונקציה שמחשבת המכונה הבאה : הפונק ' לא מוגדרת לאף קלט, כי המכונה אינה עוצרת לאף קלט
15
Design and Analysis of Algorithms, Technion EE, 2010 15 שקילות של מודלים לחישוב הגדרה : שני מודלים לחישוב ייקראו שקולים אם : פונק ' f ניתנת לחישוב במודל א ' אמ " מ f ניתנת לחישוב במודל ב '.
16
Design and Analysis of Algorithms, Technion EE, 2010 16 דוגמא לאי - שקילות מודלים : מ " ט ימנית מ " ט ימנית זו מ " ט רגילה, פרט לכך שבפונק ' אין אפשרות ללכת שמאלה : : (Q\F) x Q x x {R, S} טענה : המודל הרגיל של מכונת טיורינג לא שקול למודל של מ " ט ימנית הוכחה : נראה שהפונקציה הבאה אינה ניתנת לחישוב במודל הנ " ל : האות הימנית ביותר ב - נניח בשלילה ש -f ניתנת לחישוב במודל החדש אזי קיימת מ " ט ימנית M המחשבת אותה. נתבונן בריצת M על הקלט 001. לפי ההנחה, הפלט יהיה 1. נסמן ריצה זו ב - . כעת נתבונן על ריצת M על הקלט 000. יש שלוש אפשרויות : 1. אם הראש אף פעם לא מגיע לתא השלישי, הריצה זהה ל - ולכן הפלט 1 כמו ב - , כלומר שונה מ -0. 2. אם הראש מגיע לתא השלישי והמכונה לא מחזירה פלט ( בגלל שהיא לא עוצרת ), שוב המצב לא חוקי. 3. אם מגיעה לתא השלישי ובסופו של דבר מחזירה פלט, אורך הפלט הוא לפחות 2, כלומר שוב שגוי.
17
Design and Analysis of Algorithms, Technion EE, 2010 17 דוגמא לשקילות מודלים – מ " ט חסרת מנוחה מ " ט חסרת מנוחה זו מ " ט רגילה, פרט לכך שבפונק ' אין אפשרות להישאר במקום : : (Q\F) x Q x x {L, R} טענה : המודל הרגיל של מכונת טיורינג שקול למודל של מ " ט חסרת מנוחה הוכחה : ( להוכחת שקילות יש תמיד שני כיוונים ) א ) אם פונק ' f ניתנת לחישוב ע " י מ " ט חסרת מנוחה, אז היא ניתנת לחישוב ע " י מ " ט רגילה - פשוט אותה מכונה היא גם מ " ט רגילה. ב ) אם פונקציה f ניתנת לחישוב ע " י מ " ט רגילה M 1, אז נבנה מ " ט M 2 חסרת מנוחה המחשבת את f. תהי נגדיר bb
18
Design and Analysis of Algorithms, Technion EE, 2010 18 מ " ט חסרת מנוחה - המשך עבור 2 נגדיר : לכל q Q 1 ו -a , אם : 1 (q, a)=(p, b, R) או 1 (q, a)=(p, b, L) אז נקבע : 1 (q, a) 2 (q, a) = אחרת, כלומר אם 1 (q, a)=(p, b, S) אז נגדיר ב - 2 : (p’, b, R) 2 (q, a) = בנוסף, c ולכל q’ Q 1 נגדיר : (q, c, L) 2 (q’, c) = כלומר אם M 1 נשארת במקום, M 2 תלך ימינה וא " כ שמאלה. האם אפשר להחליף את סדר הצעדים ( קודם שמאלה וא " כ ימינה )?
19
Design and Analysis of Algorithms, Technion EE, 2010 19 סרטים k מודל מ " ט עם q מצב... 1 2 k k סרטים k ראשים מצבי בקרה משותפים ל -k הסרטים ( אין מצב נפרד לכל סרט ) לכל k זהו מודל אחר !
20
Design and Analysis of Algorithms, Technion EE, 2010 20 סרטים k מודל מ " ט עם איתחול : הקלט בקצה הסרט הראשון, אחריו - ים. בשאר הסרטים רק - ים. כל הראשים בקצות הסרטים והמצב הוא q 0. צעד : ע " ס המצב הנוכחי ו -k האותיות שהראשים רואים, ב -k הסרטים, המכונה מחליטה עבור כל ראש מה יכתוב ולאיזה כוון יזוז. כמו כן, היא מחליטה לאיזה מצב לעבור. פורמאלית : פלט : המחרוזת שמשמאל לראש בסרט הראשון בסיום החישוב דוגמא : f(x) = xx 1. כתוב $ בתחילת הסרט השני. 2. הזז את שני הראשים תוך כדי העתקת הקלט לסרט השני 3. העבר את ראש הסרט השני לתא מימין ל -$ 4. שני הראשים זזים יחד ומעתיקים את תוכן הסרט השני לראשון : (Q\F) x k Q x k x {L, R, S} k bb למה?
21
Design and Analysis of Algorithms, Technion EE, 2010 21 סרטים k מודל מ " ט עם 01010 aaa ba קונפיגורציה של מ " ט k סרטית מוגדרת כ -k- יה : ( 1 q 1, 2 q 2, …, k q k ) כאשר q Q מסמן את מיקום הראש בכל סרט ואת מצב הבקרה. * i i מייצגים את תוכן הסרט ה -i. למשל : קונפ ' התחלתית : (q 0 x, q 0, q 0, q 0, …, q 0 ) טענה : לכל k 1 מודל מ " ט עם k סרטים שקול למודל של מ " ט חד - סרטית. כוון קשה : לכל מ " ט רב סרטית M יש מ " ט חד סרטית S שקולה בהינתן M אנו צריכים לבנות S. בעצם צריכים לסמלץ את M ע " י S. הרעיון : #01010#aaa#ba# M S bbbb
22
Design and Analysis of Algorithms, Technion EE, 2010 22 אלגוריתם הסימולציה על קלט w n w=w 1 w 2 S מכינה את הסרט כך שייצג את w: # # # # w n w 1 w 2 # כדי לסמלץ צעד של M, S עושה את הדברים הבאים: 1.סרוק את הסרט החל מ-# הראשון עד ה-# ה-k+1 שמסמן את הקצה הימני, וזוכרת את k האותיות שמתחת לראשים ה"וירטואליים". 2.סרוק שוב ועדכן לפי פונקציית המעבר של M (כולל הראשים הוירטואליים). 3.חזור על שני השלבים 1 ו-2 עד ש-M מגיעה למצב מסיים. 4.הזז את תוכן הסרט (הוירטואלי) הראשון שמאלה במקום אחד, ואז הזז את הראש ל-# הראשון מימין לתחילת הסרט. 5.עבור למצב מסיים. אם בשלב 2 אחד הראשים הוירטואליים מוזז ימינה ונמצא מעל-#, ז"א ש-M זזה לחלק שעד כה היו שם blanks. לכן S רושמת blank במקום זה, ומזיזה את תוכן הסרט החל מהתא הזה עד ה-# האחרון במקום אחד ימינה. לאחר מכן היא חוזרת לסימולציה הרגילה bb
23
Design and Analysis of Algorithms, Technion EE, 2010 23 בעיות הכרעה עד כה, דיברנו על חישוב פונקציות. לעיתים, נוח יותר לעסוק בקבלת שפות, כלומר פונק ' שטווח הערכים שלהן מכיל רק 2 ערכים : accept, reject הגדרה : מ " ט לזיהוי שפות היא מ " ט בעלת שני מצבים סופיים : accept } q reject, F = {q נאמר ש - M מקבלת את הקלט x אם קיימים * , כך ש : נאמר ש - M דוחה את הקלט x אם קיימים * , כך ש : הערה : ייתכן ש -M עינה מקבלת ואינה דוחה את x: M לא עוצרת על x. השפה המתקבלת ע " י מ " ט לזיהוי שפות M: M} מקבלת את x | * L(M)={x יש 3 אפשרויות להפעלת M על x: – לעצור ולקבל – לעצור ולדחות – לא לעצור הגדרה : נאמר שמ " ט לזיהוי שפות M מכריעה את השפה L אם : M מקבלת את L וגם M עוצרת על כל קלט x * ( במצב q accept או q reject ) M q 0 x q accept * M q 0 x q reject * x L(M) x L(M)
24
Design and Analysis of Algorithms, Technion EE, 2010 24 בעיות הכרעה דוגמאות : 1.M מכריעה את * : (q 0, a)=(q acc, a, S) : a * 2.M מכריעה : (q 0, a)=(q rej, a, S) : a * 3.M מקבלת אך לא מכריעה את : (q 0, a)=(q 0, a, S) : a * הגדרה : מחלקת השפות הרקורסיביות היא מחלקת השפות המתקבלות ע " י מ " ט העוצרת לכל קלט : } קיימת מ " ט המכריעה את L R = { L| הגדרה : מחלקת השפות הניתנות למניה רקורסיבית היא מחלקת השפות המתקבלות ע " י מ " ט : } קיימת מ " ט המקבלת את L RE = { L| הגדרה : מ " ט לזיהוי שפות M 1 שקולה למ " ט לזיהוי שפות M 2 אם : M 1 מקבלת שפה L אמ " מ M 2 מקבלת את L. כלומר, אם : L(M 1 )=L(M 2 )
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.