You are on page 1of 18

‫נושא ‪11‬‬

‫מודלים שקולים‪ ,‬וריאציות מכונת טיורינג‬


‫קורס אוטומטים ושפות פורמליות‬
‫מרצה‪ :‬אברהם בן‪-‬ארויה‬
‫מצגות‪ :‬עקיבא קליינרמן‬
‫שקילות מודלים חישוביים‬

‫נאמר ששני מודלים של 𝐵 ו’𝐵 הם שקולים אם 𝐵 לא חלש יותר מ ’𝐵 וגם ’𝐵 לא חלש יותר‬ ‫‪‬‬
‫מ𝐵 כלומר‪:‬‬
‫𝐿 = )𝑀(𝐿 קיימת גם מכונה ’𝑀 ממודל‬ ‫‪ ‬לכל שפה ‪ L‬שקיימת עבורה מכונה 𝑀 ממודל 𝐵 כך ש‬
‫’𝐵 כך ש 𝐿 = )’𝑀(𝐿 וכן להפך‪.‬‬
‫‪ ‬דוגמאות‪:‬‬
‫‪ ‬אס"ד ואסל"ד הם מודלים שקולים‬
‫‪ ‬אסל"ד עם מעברי אפסילון שקול לאסל"ד בלי מעברי אפסילון‬
‫‪ ‬אוטומט מחסנית דטרמיניסטי(אמ"ד) ואוטומט מחסנית לא דטרמיניסטי (אמל"ד) לא שקולים‬
‫לדוגמא‪ ,‬אמ"ד לא יכול לקבל את השפה } ∗ ‪ 𝐿 = {𝑤 𝑅 𝑤|𝑤 ∈ Σ‬ואמל"ד מקבל את השפה‪ .‬ברור שאמל"ד‬ ‫‪‬‬
‫מקבל כל שפה שאוטומט מחסנית דטרמיניסטי מקבל ולכן ניתן לומר שמודל אמל"ד חזק מאמ"ד‪.‬‬
‫‪ ‬מודל של אוטומט ל"ד עם שתי מחסניות חזק יותר ממודל עם מחסנית אחת‬
‫למשל ניתן לקבל את השפה 𝑖 𝑐 𝑖𝑏 𝑖𝑎 ע"י מודל עם שתי מחסניות‬ ‫‪‬‬
‫שקילות מודלים‪ -‬הבהרה חשובה‬

‫נשים לב שהשקילות שעליה אנו מדברים היא שקילות של כוח חישובי‪,‬‬


‫כלומר עוסקת בשאלה "מה ניתן לחשב" בלבד; בקורס המשך תתמקדו‬
‫בזמן הנדרש לפתרון בעיות שונות ולכמות הזיכרון הנדרשת‪.‬‬
‫מודלים נוספים של מכונת טיורינג‬

‫‪ ‬עד כה דיברנו על מודל של מכונת טיורינג שבו יש סרט אינסופי לשני הכיוונים‬

‫‪ ‬משפט‪ :‬מודל מכונת טיורינג עם סרט אינסופי רק לכיוון אחד (בצד השני הוא לא יכול לזוז‬
‫מעבר לתא מסויים)‪ ,‬שקול למודל עם סרט אינסופי לשני הכיוונים‪.‬‬

‫מצב ‪q‬‬

‫‪a‬‬ ‫‪b‬‬ ‫‪a‬‬ ‫‪b‬‬ ‫⎵ ‪a‬‬ ‫⎵‬ ‫⎵‬


‫מודל מ"ט עם ‪ 2‬סרטים ‪𝑀𝑇2‬‬

‫נגדיר מכונה ‪ 𝑀𝑇2‬שדומה למודל מכונת טיורינג הראשון שהגדרנו‪ ,‬רק שבמודל זה יש‬
‫‪ 2‬סרטים ושני ראשים קוראים\כותבים‪ .‬במכונה מסוג זה פונקציית המעברים מוגדרת ע"י מצב‬
‫והאותיות עליהם מצביעים שני הראשים (המצב משותף לשני הסרטים)‪ .‬המכונה מגדירה לכל‬
‫מצב וזוג אותיות מה יכתוב כל אחד מהראשים ולאן יזוז‪.‬‬
‫בתחילת הריצה‪ ,‬הקלט כתוב על הסרט הראשון בלבד‪.‬‬

‫) 𝑅 ‪𝛿: 𝑄 × Γ × Γ → (𝑄 × Γ × 𝐿, 𝑅 × Γ × 𝐿,‬‬

‫‪1‬‬ ‫‪a‬‬ ‫‪b‬‬ ‫‪a‬‬ ‫‪b‬‬ ‫⎵ ‪a‬‬ ‫⎵‬ ‫⎵‬

‫‪2‬‬ ‫‪b‬‬ ‫‪b b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫⎵‬ ‫⎵‬

‫מצב ‪q‬‬
‫דוגמא לשימוש במודל עם מספר סרטים‬
‫שפת הפלינדרומים‪:‬‬

‫⎵‬ ‫‪a‬‬ ‫‪c‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪c‬‬ ‫‪a‬‬ ‫⎵‬

‫⎵‬ ‫⎵‬ ‫⎵‬ ‫⎵‬ ‫⎵ ⎵‬ ‫⎵‬ ‫⎵‬


‫דוגמא לשימוש במודל עם מספר סרטים‬
‫שפת הפלינדרומים‪:‬‬

‫⎵‬ ‫‪a‬‬ ‫‪c‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪c‬‬ ‫‪a‬‬ ‫⎵‬

‫⎵‬ ‫‪a‬‬ ‫‪c‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪c‬‬ ‫‪a‬‬ ‫⎵‬


‫דוגמא לשימוש במודל עם מספר סרטים‬
‫שפת הפלינדרומים‪:‬‬

‫⎵‬ ‫‪a‬‬ ‫‪c‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪c‬‬ ‫‪a‬‬ ‫⎵‬

‫⎵‬ ‫‪a‬‬ ‫‪c‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪c‬‬ ‫‪a‬‬ ‫⎵‬


‫שקילות ‪ 𝑀𝑇2‬ל𝑇‬

‫טענה‪ :‬מודל ‪ 𝑀𝑇2‬שקול למודל מכונת טיורינג 𝑇‪.‬‬

‫כיוון קל‪ 𝑀𝑇2 :‬לא חלש מ‪ . T‬ניתן לקבל כל שפה המתקבלת ע"י ‪ T‬ע"י מכונה ב ‪ 𝑀𝑇2‬אם‬
‫נשתמש בסרט אחד בלבד (הראש קורא כותב השני לא יזוז במהלך כל הקריאה) ונבצע את כל‬
‫הפעולות על סרט זה‪.‬‬
‫המשך מכונה עם ‪ 2‬סרטים‬
‫‪ ‬כיוון קשה יותר‪ T :‬לא חלש מ ‪.𝑀𝑇2‬‬

‫‪1‬‬ ‫‪a‬‬ ‫‪b‬‬ ‫‪a‬‬ ‫⎵‬ ‫⎵‬ ‫⎵‬ ‫⎵‬ ‫⎵‬


‫מצב ‪q‬‬

‫‪2‬‬ ‫‪b‬‬ ‫‪b b‬‬ ‫‪a‬‬ ‫⎵‬ ‫⎵‬ ‫⎵‬ ‫⎵‬


‫‪ ‬הרעיון‪:‬‬

‫מצב ‪q‬‬

‫‪ෝ‬‬
‫𝒂‬ ‫𝒃‬ ‫𝒂‬ ‫‪#‬‬ ‫‪෡‬‬
‫𝒃 𝒃‬ ‫𝒃‬ ‫𝒂‬ ‫⎵‬
‫המשך שקילות ‪ 𝑀𝑇2‬ל𝑇‬
‫עבור מכונה ‪ M‬ממודל ‪ 𝑀𝑇2‬נבנה מכונה ‪ A‬ממודל ‪ T‬שקולה ל‪.M‬‬
‫על קלט 𝑛𝜎‪ 𝑤1 =𝜎1 𝜎2 … .‬ו 𝑚𝛼‪𝑤2 =𝛼1 𝛼2 … .‬‬ ‫‪‬‬
‫‪ෞ1 𝜎2 … .𝜎𝑛 #ෞ‬‬
‫𝜎‬ ‫‪ A‬מכינה את הסרט כך שייצג את ‪𝛼1 𝛼2 … .𝛼𝑚 :w‬‬ ‫‪‬‬
‫בכל שלב בריצה‪ ,‬נסמן שתי אותיות‪ ,‬אחת לפני הסולמית ואחת אחרי הסולמית‬
‫(האות יחד עם הסימון יהיו תו בודד בא"ב של הסרט)‪ .‬הסימון מדמה כאילו הראש‬
‫קורא כותב נמצא על גבי האותיות המסומנות‪ .‬נקרא לסימון "ראש קורא כותב‬
‫וירטואלי"‪.‬‬
‫המשך שקילות ‪ 𝑀𝑇2‬ל𝑇‬
‫עבור מכונה ‪ M‬ממודל ‪ 𝑀𝑇2‬נבנה מכונה ‪ A‬ממודל ‪ T‬שקולה ל ‪:M‬‬
‫‪ ‬הא"ב של המכונה ‪ A‬יהיה ‪ Σ ∪ Σ෠‬כאשר }‪ො 𝜎 ∈ Σ‬‬
‫‪.Σ෠ = {𝜎:‬‬
‫‪ ‬הייצוג של קונפיגורציה בה על הסרט הראשון כתובה המילה‬
‫𝑛𝜎‪ 𝑤1 =𝜎1 𝜎2 … .‬ועל הסרט השני כתובה המילה 𝑚𝛼‪𝑤2 =𝛼1 𝛼2 … .‬‬
‫‪ෞ1 𝜎2 … .𝜎𝑛 #ෞ‬‬
‫𝜎‬ ‫הוא ע"י המילה 𝑚𝛼‪𝛼1 𝛼2 … .‬‬
‫בכל שלב בריצה‪ ,‬נסמן שתי אותיות‪ ,‬אחת לפני הסולמית ואחת‬
‫אחרי הסולמית (האות יחד עם הסימון יהיו תו בודד בא"ב של‬
‫הסרט)‪ .‬הסימון מדמה כאילו הראש קורא כותב נמצא על גבי‬
‫האותיות המסומנות‪ .‬נקרא לסימון "ראש קורא כותב וירטואלי"‪.‬‬
‫המשך שקילות ‪ 𝑀𝑇2‬ל𝑇‬

‫‪ ‬כדי לסמלץ צעדים של 𝑀‪ 𝐴 ,‬עושה את הדברים הבאים‪:‬‬


‫סרוק את הסרט החל מתחילתו עד הקצה הימני של הקלט (סוף המילה‬ ‫‪.1‬‬
‫השנייה) וזכור את שתי האותיות המסומנות ("נזכור" את האותיות ע"י מצב‬
‫ייחודי לכל זוג אותיות)‪.‬‬
‫סרוק שוב ועדכן לפי פונקציית המעבר של ‪: M‬‬ ‫‪.2‬‬
‫‪ .1‬כתוב ע"פ פונקציית המעבר ‪M‬‬
‫‪ .2‬הזז את הראש קורא כותב הווירטואלי ע"פ המעבר ב‪.M‬‬
‫‪ .3‬חזור על שני השלבים ‪ 1‬ו‪ 2-‬עד ש‪ M-‬מגיעה למצב מסיים‪.‬‬
‫אם בשלב ‪ 2‬אחד הראשים הווירטואליים מוזז ימינה ונמצא מעל‪ ,#-‬ז"א ש‪ M-‬זזה‬
‫לחלק שעד כה היו שם רווחים (סוף הקלט) ‪ .‬לכן ‪ A‬רושמת רווח במקום זה‪,‬‬
‫ומזיזה את תוכן הסרט החל מהתא הזה מה‪ #-‬עד התו האחרון במקום אחד‬
‫ימינה‪ .‬לאחר מכן היא חוזרת לסימולציה הרגילה‬
‫הכללה למודל עם ‪ K‬סרטים‬

‫‪ ‬באופן דומה‪ ,‬ניתן להוכיח כל מודל של מכונת טיורינג עם ‪ k‬סרטים שקול למודל מכונת‬
‫טיורינג עם סרט אחד‬
‫‪ ‬נדפיס את תכולת כל הסרטים על סרט אחד עם ‪ #‬בין כל אחד מהמילים ונסמן את הראשים‬
‫קוראים כותבים ע"י סימון מיוחד‪.‬‬
‫מודל מכונת טיורינג לא שקול‬

‫‪ ‬נגדיר מודל ‪ MR‬כמודל מכונת טיורינג שזזה ימינה בלבד‪ :‬המכונה תוגדר באופן דומה למודל‬
‫הראשון שראינו‪ ,‬עם השינוי הבא‪ :‬הראש הכותב‪/‬קורא יכול לזוז אך ורק ימינה‪ ,‬ואינו יכול לזוז‬
‫שמאלה‪ .‬מכונה ‪ MR‬אינה שקולה למכונת טיורינג‪ ,‬מכיוון שקימות פונקציות שלא ניתן לחשב‬
‫במודל זה‪ ,‬ואילו ניתן לחשב במודל הרגיל‪.‬‬

‫למעשה המודל ‪ MR‬שקול לאוטומט סופי דטרמינסטי‬


‫תזת צ'רץ'‪ -‬טיורינג‬

‫כל פונקציה הניתנת לחישוב‪ ,‬ניתנת לחישוב ע"י מכונת טיורינג‪ .‬כלומר‪-‬‬
‫אין מודל חישובי חזק יותר ממכונת טיורינג‪.‬‬

‫יש להעיר שהמושג "ניתנת לחישוב" לא מוגדר היטב‪.‬‬


‫נושאים למבחן (רשימה חלקית)‬

‫שיוך שפות‬ ‫‪‬‬

‫שפות רגולריות‬ ‫‪‬‬

‫שפות חסרות הקשר‬ ‫‪‬‬

‫שפות כריעות‬ ‫‪‬‬

‫אלגוריתמים להמרה בין מודלים‪ ,‬דקדוקים‪ ,‬ביטוי רגולרי‪.‬‬ ‫‪‬‬

‫המרת אסל"ד לאס"ד‬ ‫‪‬‬

‫אוטומט המכפלה‬ ‫‪‬‬

‫המרת אס"ד לביטוי רגולרי‬ ‫‪‬‬

‫המרת אס"ד לביטוי רגולרי‬ ‫‪‬‬

‫המרת דקדוק רגולרי לאוטומט‬ ‫‪‬‬

‫המרת דקדוק לאוטומט מחסנית‬ ‫‪‬‬

‫למות הניפוח‬ ‫‪‬‬

‫אוטומטים סופיים – דקדוק רגולרי‬ ‫‪‬‬

‫אוטומט מחסנית – דקדוק חסר הקשר‬ ‫‪‬‬

‫מכונות טיורינג‬ ‫‪‬‬

‫כתיבה פורמלית (הגדרות‪ ,‬קונפיגורציות‪)...‬‬ ‫‪‬‬


‫סיכום כללי סגירות‬

‫משלים‬ ‫קלין‬ ‫שרשור‬ ‫חיתוך‬ ‫איחוד‬


‫כן‬ ‫כן‬ ‫כן‬ ‫כן‬ ‫כן‬ ‫רגולריות‬
‫לא‬ ‫כן‬ ‫כן‬ ‫לא**‬ ‫כן‬ ‫חסרות הקשר‬
‫(יש סגירות בחיתוך‬
‫עם רגולרית)‬

You might also like