3. מודלים שונים של חישוב, והיחסים ביניהם

Σχετικά έγγραφα
{ : Halts on every input}

מודלים חישוביים תרגולמס 7

הקדמה קצרה: מהות הקורס ומטרתו

Logic and Set Theory for Comp. Sci.

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

חורף תש''ע פתרון בחינה סופית מועד א'

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

ל הזכויות שמורות לדפנה וסטרייך

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

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

הגדרה: מצבים k -בני-הפרדה

מתמטיקה בדידה תרגול מס' 5

תרגיל 13 משפטי רול ולגראנז הערות

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

תרגול מס' 6 פתרון מערכת משוואות ליניארית

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

אוטומטים- תרגול 10: מכונות טיורינג.

מודלים חישוביים תרגולמס 5

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות

אינפי - 1 תרגול בינואר 2012

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

שפות פורמאליות אוטומטים

מודלים חישוביים כריעות R זוהי מחלקת השפות הכריעות. מחלקה זו סגורה תחת פעולת המשלים. רדוקציה בעיית ההכרעה רדוקציית מיפוי.

גבול ורציפות של פונקציה סקלרית שאלות נוספות

שפות פורמאליות אוטומטים

תרגול פעולות מומצאות 3

בעיות חשיבות: :(State transition system) STS מושגים: רדוקציה: f אינה חשיבה g אינה חשיבה; בבעיות הכרעה: f לא כריעה g לא כריעה.

gcd 24,15 = 3 3 =

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

x a x n D f (iii) x n a ,Cauchy

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

מודלים חישוביים, חישוביות וסיבוכיות 67521

חלק 1 כלומר, פונקציה. האוטומט. ) אותיות, אלפבית, א"ב (.

מודלים חישוביים פתרון תרגיל 5

Regular Expressions (RE)

ניתן לקבל אוטומט עבור השפה המבוקשת ע "י שימוששאלה 6 בטכניקתשפה המכפלה שנייה כדי לבנות אוטומט לשפת החיתוך של שתי השפות:

מודלים חישוביים, חישוביות וסיבוכיות (חישוביות) 67521

אלגברה ליניארית (1) - תרגיל 6

אוטומטים- תרגול 8 שפות חסרות הקשר

ביטויים רגולריים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) הרצאה 5

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

מודלים חישוביים, חישוביות וסיבוכיות 67521

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

אוטומטים ושפות פורמליות תרגולים

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

A-PDF Merger DEMO : Purchase from to remove the watermark

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר

רשימת משפטים והגדרות

חישוביות, אוטומטים ושפות מכונה סיכומי הרצאות

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

מתמטיקה בדידה תרגול מס' 13

סדרות - תרגילים הכנה לבגרות 5 יח"ל

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

מודלים חישוביים, חישוביות וסיבוכיות

חישוביות הרצאה 6 אותה מ M תקודד ע''י מחרוזת רווח ! מכונת טיורינג אוניברסלית

אלגברה ליניארית 1 א' פתרון 2

מתמטיקה בדידה תרגול מס' 12

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

הרצאה נושאי הקורס 0.2 א"ב ומילים 0.3 שפות 1. מהו חישוב? 2. מהו מחשב? 3. מהו אלגוריתם? 4. מה ניתן לחשב? מה לא ניתן?

מבחן במודלים חישוביים + פתרון מוצע

שאלה 1 V AB פתרון AB 30 R3 20 R

תורת הקבוצות תרגיל בית 2 פתרונות

2 שאלות )בחירה מ - 4( סה"כ 25 נקודות לכל שאלה 22 נקודות

אלגברה מודרנית פתרון שיעורי בית 6


co ארזים 3 במרץ 2016

r. כלומר התחיל במצב ההתחלתי, סיים במצב מקבל, ובדרך עבר בצורה חוקית. ניתן להגדיר

תרגול מס' 1 3 בנובמבר 2012

מתמטיקה בדידה תרגול מס' 2

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ד (2014) דפי עזר

אלגברה לינארית (1) - פתרון תרגיל 11

אוטומטים, שפות פורמליות ו ח ישוּב יוּת

מבני נתונים ואלגוריתמים תרגול #11

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015)

קיום ויחידות פתרונות למשוואות דיפרנציאליות

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

c ארזים 15 במרץ 2017

השאלות..h(k) = k mod m

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

חשבון אינפיניטסימלי 1 סיכום הרצאות באוניברסיטה חיפה, חוג לסטטיסטיקה.

טענה חשובה : העתקה לינארית הינה חד חד ערכית האפס ב- הוא הוקטור היחיד שמועתק לוקטור אפס של. נקבל מחד חד הערכיות כי בהכרח.

תרגיל 7 פונקציות טריגונומטריות הערות

אלגברה ליניארית 1 א' פתרון 7

. {e M: x e} מתקיים = 1 x X Y

מבוא ללוגיקה מתמטית 80423

Transcript:

3. מודלים שונים של חישוב, והיחסים ביניהם עד כה, הגדרנו מודל פשוט לחישוב, שלו קראנו מכונת טיורינג (במודל T). נרצה להתבונן גם במודלים מורכבים יותר ולהיות מסוגלים לומר משהו על הכוח החישובי של מודל אחד בהשוואה למודל אחר. לשם כך נגדיר את המושגים הבאים: M 1 שקולות אם לשתיהן אותו א"ב קלט, Σ ולכל, M M 1 שתי מ"ט. נאמר שהמכונות,M הגדרה: תהיינה w Σ מתקיים:. w על M M 1 על w אינה עוצרת, כך גם הריצה של אם הריצה של א. M על w עוצרת באותו המצב. M 1 על w עוצרת במצב מקבל או דוחה, גם הריצה של אם הריצה של ב. במודל A M אם לכל מ"ט לא חלש יותר ממודל A שני מודלים של מ"ט. נאמר שמודל הגדרה: יהיו,A קיימת מ"ט שקולה M במודל., לא חלש יותר מהמודל שני מודלים של מ"ט. נאמר שהמודלים שקולים אם המודל A,A הגדרה: יהיו והמודל לא חלש יותר מהמודל. A,A שני מודלים שקולים של מ"ט, כשאנחנו מדברים על כריעות או קבילות של שפה, אין צורך מסקנה: אם לציין באיזה מודל השפה כריעה/קבילה, כי כריעות/קבילות במודל אחד גוררת גם כריעות/קבילות במודל האחר. (זה כמובן תקף גם עבור חישוביות של פונקציה, וכל תכונה אחרת שמסתמכת על תוצאה של חישוב מ"ט.) הערה: בהיעדר טרמינולוגיה (אצלנו בשלב זה) עבור מודלים של חישוב שאינם עוסקים במ"ט, ההגדרות לעיל עוסקות רק במודלים שונים של מ"ט; מובן שההגדרות לעיל ניתנות להרחבה באופן טבעי לכל מודל של חישוב שמאפשר להוציא פלטים של קבלה ודחיה. למשל, אם נרצה לומר שהמודל של תוכניות בשפת C אינו חלש יותר ממודל מ"ט, נצטרך להראות שלכל מכונה יש תכנית בשפת C שמוציאה פלט זהה עבור כל קלט. רוב הזמן, בכל אופן, נסתפק בבחינת מודלים שונים של מכונות טיורינג. מודל מ"ט עם סרט אינסופי לשני הכיוונים במודל T המקורי שלנו, לסרט היה קצה שמאלי, והקלט הופיע בתחילתו; נגדיר כעת מודל שבו הסרט הוא אינסופי גם לימין וגם לשמאל. באופן טבעי, במודל זה הקלט לא יופיע בתחילת הסרט אלא במקום כלשהו, ומשמאלו יהיו רווחים. כמו במודל המקורי, נניח שבתחילת הריצה ראש המכונה נמצא מעל האות הראשונה של הקלט. (מה נעשה אם הקלט ריק?) נסמן מודל זה ב-. כעת, נשאלת השאלה האם שטח הזכרון הנוסף שקיבלנו הוסיף לנו כוח חישובי על פני זה שהיה לנו במודל המקורי. T. משפט: המודל שקול למודל הוכחה: על מנת להוכיח את המשפט נראה שכל אחד מהמודלים מסוגל לבצע "סימולציה" של המודל האחר. M במודל ישנה מ"ט M שקולה במודל, ולכל מ"ט T M T במודל T קיימת מ"ט בפרט, נראה שלכל מ"ט M שקולה במודל T; נתחיל בכיוון הקל יותר. M במודל שתפעל באופן הבא: T M T מ"ט במודל T; נבנה מ"ט תהי q (ללא חשיבות לאות הנקראת), זוז צעד אחד שמאלה והשאר את האות שקראת כפי 0 מהמצב ההתחלתי 1. שהיתה. שאינו חלק מא"ב המכונה של כעת האות הנקראת היא בהכרח רווח; החלף את הרווח בסימן Γ $. ועבור למצב ההתחלתי q של M (במכונה שלנו זהו "סתם" מצב, ולא המצב T 0, M T זוז ימינה, ההתחלתי). M T עפ"י פונקציית המעברים המקורית δ. אם נתקלת בתו $ (עבורו כל עוד זה אפשרי, בצע את מעברי 3. אין מעברים ב- δ) ה, שאר באותו מצב, השאר את סימן ה- $ במקומו, וזוז צעד ימינה. (זהו כמובן תיאור מילולי ולא בניה פורמלית של מ"ט; חשבו איך יראה התיאור הפורמלי של מ"ט כזו.), M T M T על w "מסומלץ" ע"י סדרה של צעד אחד או יותר של נשים לב שעבור כל קלט, w כל צעד בריצה של M T על w שתסתיים, M T ולכן כל ריצה של M "מייצג" את תוכן הסרט של T ובכל רגע נתון, תוכן הסרט של. w על M T באופן מסויים, תסתיים באותו אופן (גם אם במספר גבוה יותר של צעדים) גם כאשר נריץ את 7

M M במודל, נרצה להראות מ"ט שקולה כעת נרצה להראות את הכיוון המורכב יותר בהנתן מ"ט T. בכדי לבצע סימולציה של סרט אינסופי לשני הכיוונים על סרט אינסופי לכיוון אחד נשתמש ברעיון במודל הבא: נניח שיש לנו סרט אינסופי לשני הכיוונים, ואנו "מקפלים" אותו באמצעו. מה שנקבל נראה כמו סרט אינסופי לכיוון אחד (שיש לו "קצה" במקום הקיפול), כך שלכל אורכו יש לו שתי שכבות השכבה העליונה (של הצד הימני המקורי) והשכבה התחתונה (של חלק הסרט שהמשיך לשמאל ו"קופל" לכיוון ההפוך). סרט "מקופל" כזה כבר יהיה קל יחסית "לסמלץ" על סרט רגיל, עם קצה שמאלי. נקודות שלהן נצטרך להקדיש תשומת לב מיוחדת הן הצורך לזכור כל הזמן על איזה שכבה אנו נמצאים (אותו מקום בסרט המקופל מצביע על מיקום אחד משמאל לקיפול ומיקום אחד מימין לקיפול), העובדה שבעקבות הקיפול כיווני ימין-שמאל התהפכו בשכבה התחתונה, וטיפול במעבר בין השכבות בנקודת הקיפול. ( M באופן הבא: M (על בסיס המכונה באופן פורמלי, נבנה את המכונה M להיות { Γ1 ונקבע את א"ב המכונה של = γ γ Γ} Γ נגדיר, M 1. יהי Γ א"ב המכונה של.((_, Γ = ( Γ1 (את תו הרווח נזהה עם הזוג (_ Γ) Γ d (. Q גם מצבים נוספים ב- (יהיו. q, q Q ניצור מצבים M לכל מצב q Q ב-. M נבנה כך שיבצעו את האלגוריתם הבא: 3. את מעברי 1. בתחילת הריצה, אם קראת תו a Γ החלף אותו בתו (_, a ), וזוז ימינה. כל עוד נקרא תו a Γ שאינו רווח, החלף אותו ב-(_,a ( וזוז ימינה.. כאשר נתקלת ברווח, זוז שמאלה. המשך לזוז שמאלה עד שתגיע חזרה לתא הראשון (ניתן לזהות 3., q 0 וזוז שמאלה (מה אותו בזכות הפורמט הייחודי של (_, a )). כאשר הגעת אליו, עבור למצב שבפועל ישאיר את הראש בתא הראשון). M באופן הבא. כעת נבצע סימולציה של מעברי 4. ניצור מעברים: q, a R q, b עבור כל מעבר מהצורה ( i ) (, ) δ ( qi,( a, c) ) ( q,( b, c), R) ( qi,( a, c) ) ( q,( b, c), R) d d ( qi,( c, a) ) ( q,( c, b), L) ( q, a) ( q, b L) δ c Γ : c Γ : c Γ : ניצור מעברים דומים באופן סימטרי; מעברים i ועבור כל מעבר מהצורה, אלו מטפלים בתזוזות בתוך כל שכבה. כעת נטפל במעבר בין השכבות (בנקודת הקיפול). עבור כל מעבר מהצורה L, q, a q, b ניצור גם מעברים: ועבור כל מעבר מהצורה ( i ) (, ) δ d ( qi,( a, c) ) ( q,( b, c), L) ( qi, a) ( q, b, R) δ d ( q,( a, c) ) ( q,( b, c) L) c Γ :, ניצור גם מעברים: c Γ : i, w על M "מסומלץ" ע"י צעד שקול בריצת גם כאן ניתן לראות שלאחר עבודת הכנה, כל צעד בריצת ו- M יניבו אותה תוצאה, ולכן הן שקולות. M לכן על כל קלט המכונות. w M על מודל מ"ט עם יותר מסרט אחד נסיון לבנות דוגמאות של מ"ט במודל המקורי להכרעת כמה שפות פשוטות מגלה עד מהרה צורך (מעצבן למדי) לרוץ מקצה לקצה של הסרט כדי לגשת לנתונים שונים. פתרון נוח יותר יכול להיות פשוט ע"י הוספה של סרטים MT k של מ"ט עם k סרטים (כולם נוספים, שלכל אחד מהם ראש קורא-כותב משלו. לכל k סופי, נגדיר מודל אינסופיים לשני הכיוונים). מכונה כזו קוראת, כותבת וזזה בכל k הסרטים בו זמנית (בכל צעד), ולכן פונק' המעברים שלה היא מהצורה ( Q \{ acc, re} ) Γ k Q Γ k { R, L} k δ : (חשוב לשים לב שלמרות שיש כמה סרטים וראש לכל סרט, למכונה עדיין יש מצב יחיד בכל רגע נתון). נסכים שבתחילת הריצה הקלט מופיע אך ורק על הסרט הראשון, והסרטים האחרים ריקים (מכילים רק רווחים). למראית עין, ניתן להתרשם שבניגוד למודל הקודם, מודל זה כבר נותן לנו יתרון אמיתי על פני המודל המקורי; האמנם? 8

ע( MT k שקולים. משפט: לכל, k המודלים T ו- הוכחה: לשם פשטות, נוכיח את הטענה עבור המקרה הפרטי של =k ; קל להכליל את ההוכחה שנראה לכל k שנרצה. (בנוסף, היכולת לייצג שני סרטים על סרט אחד בפרט גוררת את הטענה באינדוקציה לכל k סופי.) כמו. ו- MT כן, הואיל וכבר הוכחנו שהמודלים T ו- שקולים, נוכל להסתפק בלהראות שקילות בין המודלים שוב, ישנם שני כיוונים שעלינו להוכיח, ואנו נתחיל בכיוון הקל יותר. M באופן הפשוט הבא: לכל מעבר MT במודל M מ"ט במודל, נבנה מ"ט שקולה תהי ( qi, a, _) ( q, b, _, D, R) δ ניצור מעבר מקביל, M R, ( D { במכונה L} (כאשר ( qi, a) ( q, b, D) δ M, ומתעלמים מהסרט השני (אנו רק זזים בו ימינה M. למעשה אנו משתמשים רק בסרט הראשון של במכונה מבלי לכתוב כלום, ומובן שלאורך כל הדרך נראה שם רק רווחים); קל מאוד להבחין שהמכונות הנ"ל שקולות. M במודל. הרעיון כאן, כמו בהוכחה MT ישנה מ"ט שקולה M במודל כעת, נצטרך להראות שלכל מ"ט M ישנם הקודמת, הוא להשתמש בסרט יחיד עם כמה "שכבות". הבעיה במקרה שלנו, היא שבמ"ט המקורית M, על אף שהיא "מסלמצת" שני סרטים, ישנו רק ראש אחד שני ראשים, שנעים עצמאית, בעוד שבמכונה (שבאופן טבעי יכול להמצא רק במקום אחד בו זמנית). על מנת להתגבר על בעיה זו, נדאג "לסמלץ" גם את M יוכל להתבצע M ע"י סימון מיקומם על הסרט עצמו. באופן זה, כל צעד של הראשים של שני הסרטים של : M ע"י סדרת הצעדים הבאה ב- i. עבור על תוכן הסרט, וחפש את מיקומי הראשים, ואת התוים שנמצאים במיקומים אלו. M מהו המעבר המתאים..ii כאשר נאספו כל התוים הנדרשים, ניתן לבדוק בטבלת המעברים של.iii כעת, ניתן לבצע את המעבר הנ"ל על ידי טיול נוסף על הסרט, מציאת מיקומי הראשים, וביצוע השינויים עבור כל אחד מהם (החלפת התו במיקום הנ"ל במידת הצורך, והזזת הסימון של מיקום הראש ימינה או שמאלה לפי המעבר). Γ = ( Γ1 (באופן זהה להוכחה הקודמת). האלגוריתם שעל פיו Γ) Γ של להיות M נגדיר את א"ב המכונה תפעל המכונה יהיה כדלהלן: 1. בתחילת הריצה, אם קראת תו a Γ החלף אותו בתו ( _, a ), וזוז ימינה. (תו עם גרש יסמן לנו שהראש של אותו הסרט נמצא כרגע באותו התא.). כל עוד נקרא תו a Γ שאינו רווח, החלף אותו ב-(_,a ( וזוז ימינה. 3. כאשר נתקלת ברווח, זוז שמאלה. המשך לזוז שמאלה עד שתגיע חזרה לתא הראשון. M כמתואר לעיל; זיהוי מקום הראשים יתבצע בעזרת סימני הגרש 4. כעת בצע סימולציה של כל צעד ב- (והזזה של ראש תתבצע פשוט ע"י הסרת הגרש מהתו באותו תא, והוספת גרש לאחד התוים מצדדיו). (שוב, נתנו תיאור חופשי יחסית, ולא תיאור פורמלי מלא, שבהחלט אפשרי אבל מייגע למדי. כדי להשתכנע שתיאור כזה אכן אפשרי (מבלי לבנות אותו במלואו), כדאי לנסות לחשוב מה צריכה להיות קבוצת המצבים של המכונה החדשה. נצטרך לייצג את המצב ה"מסומלץ" של המכונה המקורית, ובמקביל "לזכור" איזה סימנים רואה כל ראש (ואיזה ראש עוד לא מצאנו), ואיזה שינויים נצטרך לבצע.) M "י סדרת צעדים די ארוכה M מבצעת סימולציה מדוייקת של כל צעד של כמו בשאר המקרים, כיוון ש- M תגיע אליה על קלט מסויים, w תגיע (לאחר מספר גדול יותר אך סופי של צעדים) הפעם), לכל תוצאה ש- M בריצה על אותו קלט. לכן המכונות שקולות, והטענה הוכחה. גם מודל עם השארות במקום במודלים שלנו עד כה, הגדרנו שראש המכונה חייב לבצע תזוזה בכל צעד. כאשר עובדים בכמה סרטים, יהיה נוח הרבה פעמים לקבוע שראש של אחד הסרטים נשאר במקום בעוד שראש של סרט אחר זז. מודל כזה (עם k MT k (ולכן גם לכל שאר, S k ובתרגילי הבית אתם מתבקשים להוכיח שהוא שקול למודל סרטים) נסמן ב- המודלים שראינו). { { }}. L= w# w w a, תרגיל: הראה (ע"י בניה מלאה) שניתן להכריע את השפה b (שימו לב שכיוון שכל המודלים שקולים, ניתן לבחור את המודל הנוח ביותר לצורך הבניה!) 9

סגירות קבוצה תחת פעולה ניתן לראות ששימוש בכמה סרטים, למרות שאינו מוסיף כוח חישובי אמיתי (כפי שהוכחנו), הופך פעמים רבות בניית מ"ט לפשוטה יותר באופן משמעותי. דוגמא אחת שימושית שבה שימוש במ"ט עם כמה סרטים הוא נוח במיוחד, היא הוכחת סגירות קבוצות שפות תחת פעולות שונות. f סגורה תחת הפעולה A נאמר ש-. A פעולה בינארית על f : A A הגדרה: תהי A X קבוצה, ותהי X. f ( a, b) A, a, b אם מתקיים שלכל A (כלומר, סגירות של קבוצה תחת פעולה כלשהי אומרת שאם מפעילים את הפעולה על איברים בקבוצה, מקבלים שוב איברים ששייכים לקבוצה. זו, כמובן, אינה הגדרה שמוגבלת דווקא לפעולות בינאריות, וניתן לדבר גם על סגירות של פעולות אונריות (הפועלות רק על איבר אחד) או אחרות.) משפט: קבוצת השפות הכריעות סגורה תחת פעולת האיחוד. =L כריעה גם L 1 L, L 1 השפה, L הוכחה: כדי להוכיח את המשפט, נצטרך להראות שלכל שתי שפות כריעות M,, L 1 המכריעות אותן נוכיח את כריעות, קיימות מכונות 1 היא. על פי ההגדרה, אם השפות : w ותפעל באופן הבא על כל קלט S M תהיה במודל M להכרעת השפה. L המ"ט הטענה ע "י הצגת מ"ט העתק את כל הקלט w מהסרט הראשון לסרט השני (כך שהוא יופיע על שני הסרטים). 1. חזור לתחילת שני הסרטים.. M 1 על הסרט הראשון, בהתעלמות מהסרט השני. 3. "סמלץ" ריצה של המכונה (כיצד נייצג זאת בתיאור פורמלי?) M 1 עצרה במצב מקבל, נקבל. אם 4. M על M 1 תעצור במצב דוחה; במקרה זה, נבצע סימולציה של ריצה של המכונה 5. אחרת, מובטח לנו ש- הסרט השני (תוך התעלמות מהסרט הראשון הפעם, באותו אופן), ונחזיר את תשובתה. M M, 1 על הקלט ומקבלים את הקלט אם לפחות למעשה, ניתן לראות שאנו מריצים כל אחת מהמכונות אחת מהן קיבלה. בכדי להשתכנע שהמכונה אכן מכריעה (ובאופן נכון) את השפה, נתבונן במקרים האפשריים., w L 1 אזי בהכרח M תגיע לשלב (4) ותקבל בו (כיוון w, אזי יתכנו שתי אפשרויות. אם L 1 L אם M 1 מכונה להכרעה, מובטח לנו שהיא תדחה (ולא תתקע M 1 תקבל את הקלט). אחרת, כיוון ש- שמובטח לנו ש-,( L 1 ולכן w L (כי הוא שייך לאיחוד אבל לא ל- M על. w בהכרח בלולאה), ולכן נגיע לשלב (5), ובו נריץ את. M תקבל וכך גם M w, מובטח לנו ששתי המכונות (מהיותן מכונות להכרעה) ידחו את הקלט. לכן M תגיע בסופו של L 1 L אם. L= L 1 L מכריעה נכון כל קלט של דבר לסוף שלב (5) של האלגוריתם, ותדחה בו, כנדרש. מכאן, ש- M M, M 1 כנ"ל, אך מי אמר שנדע למצוא נעיר שלכאורה יש כאן קושי מסויים. אמנם מובטח לנו שקיימות מכונות אותן? חשוב לשים לב שהקושי הזה אינו אמיתי; בפרט, לא נדרשנו לספק אלגוריתם לבניית המכונה, M אלא רק M M, 1 גורר גם את קיום המכונה להוכיח שהיא קיימת. לצורך כך, אכן מספיק להראות שקיומן של המכונות M שלנו, והשאלה האם ישנה דרך מוצלחת בה ניתן למצוא את המכונות הנ"ל איננה כלל מענייננו כאן. מכונת טיורינג למניה עד כה הצגנו מ"ט (במודלים שונים של פעולה) שתכליתן היתה להכריע או לקבל שפות. (למעשה, הגדרנו גם מ"ט לחישוב פונקציות.) נציג כעת מכונה בעלת מטרה מעט שונה (ומוזרה קצת, במבט ראשון), שתכליתה למנות שפה. הגדרה: מכונת טיורינג למניה היא מ"ט ללא מצבי עצירה, ובעלת שני סרטים או יותר. מכונה זו אינה מקבלת קלט משום סוג; במקום זאת, היא כותבת על הסרט הראשון שלה מלים מופרדות ברווחים, כאשר כל מילה נכתבת ברצף ומילה שנכתבה לעולם לא עוברת שינוי או נמחקת. (הסרטים האחרים של המכונה משמשים כ"סרטי עבודה" לחישובים שונים לצורך כתיבה זו.) נאמר שמ"ט למניה M מונה שפה L כלשהי, אם במהלך הריצה שלה כותבת על הסרט הראשון שלה את כל מילות, L ורק אותן. הואיל ו- L עשויה להיות אינסופית (ו-, M כאמור, לא עוצרת לעולם), המשמעות היא שכל מילה w L נכתבת ע"י M כעבור זמן סופי מתחילת פעולתה. 10

א( ו- w משפט: תהי L שפה כלשהי. אזי L ניתנת למניה אם"ם L ניתנת לקבלה. בכדי להוכיח את המשפט, אנו נשתמש בהגדרה של סדר המניה, שתשמש אותנו רבות גם בהמשך. הגדרה: יהי Σ א"ב, ונניח שקיים יחס סדר מלא על סימני Σ ם אין סדר כזה, פשוט נסדר את הסימנים באופן שרירותי כלשהו). סדר המניה מעל Σ הוא יחס סדר מלא על איברי, Σ המוגדר באופן הבא: המילה הראשונה בסדר המניה מעל Σ היא המילה הריקה ε; ועבור כל שתי מילים w w, w, קודמת ל- w אם w w < או אם w = w קודמת לקסיקוגרפית ל- w. נשים לב שסדר המניה אכן נותן אינדקס סופי לכל מילה ב-. Σ תהי w Σ ממש מ- ו- w =n ; אזי האינדקס של w קטן n i= 0 Σ i שווה ל-, n ומכל אורך i Σ (ולכן סופי). זאת כיוון שכל מילה שמופיעה לפני w בסדר המניה חייבת להיות באורך קטן או i ישנן בדיוק מלים אפשריות. כעת נוכל להוכיח את המשפט. M A הוכחת המשפט: נצטרך להראות את שני כיווני הגרירה. M A בעלת 3 M E המונה אותה. נבנה עבור L מ"ט לקבלה ) ( נניח ש- L ניתנת למניה, אזי קיימת עבורה מ"ט סרטים) שתפעל באופן הבא לכל קלט : w, M E עד שתסיים לכתוב את המילה הבאה 1. על הסרט השני והשלישי, בצע (המשך) סימולציה של ריצת (ניתן לזהות סיום כתיבת מילה עפ"י כתיבת הרווח שלאחר המילה).. השווה את המילה שנכתבה עם הקלט. w אם המלים זהות, קבל; אחרת חזור ל-( 1 ). נוכיח שהמ"ט שתיארנו אכן מקבלת את השפה L כנדרש. אם, w L מובטח לנו שלאחר מספר סופי של צעדים, M E כל עוד זה לא קרה ). M A כיוון שאנו ממשיכים להריץ את M E תכתוב את על הסרט הראשון שלה (השני של M A לכל היותר), גם תגיע תוך מספר סופי (כנראה M E אנו עושים מספר סופי של צעדים ב- (כאשר בין צעדים של, M E M A משווה את מילת הקלט w עם ההעתק שלה שנכתב ע"י גדול יותר) של צעדים למקרה בשלב () בו M E לעולם לא כותבת את w על הסרט שלה, ולכן, הואיל וכתיבה כזו היא ומקבלת. אם, w L מובטח לנו ש-. w לעולם לא תקבל את M A M A כפי שהגדרנו אותה, תנאי הכרחי לקבלה של M A סרט אחד בלבד). נרצה M A המקבלת אותה (בה"כ, ל- ) ( נניח ש- L ניתנת לקבלה, אזי קיימת עבורה מ"ט M A לגבי כל אחת מהמלים ב- M E למניית. L הדרך האינטואיטיבית לעשות זאת היא "לשאול" את לבנות מ"ט Σ האם היא שייכת ל- L או לא, ואת המלים עליהן ענתה בחיוב לכתוב על הסרט. נשים לב שלשם כך נצטרך לסדר את מילות Σ בסדר שבו נגיע לכל מילה בסופו של דבר (מה שלא מתקיים, למשל, בסדר לקסיקוגרפי רגיל) M A סדר זה יכול להיות סדר המניה שהגדרנו קודם. למרות זאת, נשים לב שזה עדיין לא פתרון מספק, כיוון ש- M E שלנו היא רק מכונה לקבלה, וככזו, היא עלולה שלא לעצור על מילה w L כלשהי. מקרה כזה יתקע גם את בסימולציה של אותה ריצה, וימנע את כתיבתן של כל המילים ב- L שנמצאות אחרי w בסדר המניה. כדי לפתור, M A ולהגדיל אותו לאורך זמן, באופן הבא. בעיה זו, נדאג להגביל את מספר הצעדים המותר בכל ריצה של M E עם 4 סרטים, ונקבע את אופן פעולתה כדלהלן: נבנה את 1. על סרט מס', אתחל מונה (אונרי) בערך =i 1.. מחק את תוכן סרט מס' 3. 3. מחק את תוכן סרט מס' 4, והעתק אליו את תוכן סרט מס' 3. M A על הקלט שבסרט מס' 4, למשך i צעדים. 4. בצע סימולציה של ריצת (ספירת מספר הצעדים בסימולציה יכול להתבצע, למשל, ע"י התחלה ב- 1 השמאלי ביותר של המונה בסרט מס', ותזוזה שמאלה באותו סרט עם כל צעד של הסימולציה; כאשר מגיעים לרווח בסרט מס' יש לעצור את הסימולציה.) 5. אם הסימולציה עצרה (בעצמה) וקיבלה את הקלט, העתק את המילה בסרט מס' 3 לסרט מס' 1, וכתוב אחריה רווח בודד. 6. כתוב בסרט מס' 3 את המילה העוקבת (בסדר המניה) למילה שהיתה שם לפני כן. - אם אורך המילה שנכתבה כעת הוא לכל היותר, i חזור לשלב (3). - אם אורך המילה שנכתבה כעת גדול מ-, i הגדל את i ב- 1, וחזור לשלב (). 11

M A למשך במלים פשוטות יותר, המכונה שבנינו עובדת באיטרציות, i = K,1, ובכל איטרציה i היא מריצה את M E שבנינו אכן מונה את L כנדרש. i צעדים על כל מילה שאורכה לכל היותר. i נראה כעת שהמכונה, M E כיוון שכל מילה שהועתקה לשם ראשית, נבחין שאם w, w L לעולם לא תכתב על הסרט הראשון של, M A המקבלת רק מלים ב-. L נותר להראות שאם w, w L בהכרח תכתב בתוך מספר סופי של התקבלה ע"י M A מכונה לקבלת, L היא בהכרח מקבלת את w תוך. M E תהי, w L ונסמן. n= w כיוון ש- צעדים ע"י,n. m = max נשים לב שכאשר נגיע לאיטרציה שבה מספר צעדים (סופי!) כלשהו, נסמן מספר זה ב-, k ונסמן k M A { } w צעדים, ועל פי ההנחה תקבל ו- m k למשך ( w m (שכן w נריץ את המכונה על הקלט, i=m תכתב על הסרט הראשון. כלומר, לאחר מספר סופי של איטרציות, w אכן תכתב כנדרש. נשים לב שכל איטרציה M A כשלעצמה דורשת זמן סופי בלבד (בכל איטרציה עוברים על i i = 0 Σ מלים אפשריות, מבצעים סימולציה של i צעדים + עבודה נוספת פרופורציונלית לאורך המילה שגם הוא לכל היותר מספר צעדים סופי (גם אם גדול למדי), w תכתב על הסרט, כנדרש. ועבור כל אחת מהן,( i ולכן לאחר בהקשר להוכחה האחרונה, נציין שתי הערות: 1. חדי העין מביניכם וודאי הבחינו שמלים מסויימות ייכתבו יותר מפעם אחת (למעשה, כל מילה שנכתבת, נכתבת אינסוף פעמים!). נציין שהגדרת המניה לא שוללת תכונה כזו, כל זמן שכל שאר הדרישות אכן מתקיימות, כמו במקרה שלנו. למרות זאת, קל למנוע ממלים שכבר נכתבו להכתב שוב ניתן, למשל, לבדוק לפני כל כתיבת מילה חדשה על הסרט לעבור עליו ולראות אם היא נכתבה כבר; שיטה זו תעבוד היטב, כמובן, אבל היא מסבכת את הבניה עוד יותר, ולכן לא הוצגה במקור.. בבניית המכונה הנחנו שניתן למחוק את כל התוכן מסרט מסויים (מדוע זה פחות פשוט לביצוע ממה שזה נשמע בתחילה?) ושבהנתן מילה מסויימת, ניתן, בעזרת מ"ט, למצוא את המילה הבאה אחריה בסדר המניה מעל א"ב נתון.נציין ששתי הפעולות אכן אפשריות, ומימושן המלא מושאר כתרגיל. משפט פוסט: איפיון הקשר בין כריעות לקבילות כאשר הגדרנו כריעות וקבילות של שפות, הערנו שהגדרות אלו גוררות מיידית שכל שפה כריעה היא בפרט קבילה; מצד שני, הבחנה זו אינה מספקת אם רוצים לענות על השאלה מתי שפה קבילה היא גם כריעה. איפיון מלא של הקשר בין שתי מחלקות השפות ניתן על ידי המשפט הפשוט והשימושי הבא, הידוע כמשפט פוסט (על שם Emil.(Post משפט (פוסט): תהי L שפה, אזי L כריעה אם"ם השפות L ו- L שתיהן קבילות. הוכחה: נוכיח שהגרירה אכן מתקיימת בשני הכיוונים. ) ( תהי L שפה כריעה; כפי שהוכחתם בבית, זה גורר שגם השפה L הינה כריעה. הואיל וכל שפה כריעה היא בפרט קבילה, קיבלנו שהשפות,L L שתיהן קבילות, כנדרש., L, L המקבלות את השפות, שתיהן קבילות. כלומר, קיימות מ"ט שפה, כך ש-,L L L ) ( תהי (בעלת שני סרטים) M בהתאמה (בה"כ, נניח שכל אחת מהמכונות הנ"ל פועלת על סרט אחד בלבד). נבנה מ"ט להכרעת השפה, L שתפעל באופן הבא: העתק את הקלט w מהסרט הראשון לסרט השני, וחזור לתחילת שני הסרטים. 1. על הסרט השני. על הסרט הראשון ואת המכונה הרץ (במקביל) את המכונה..3 אם בשלב מסויים קיבלה, קבל. אם בשלב מסויים קיבלה, דחה. מקבלת את w (בזמן סופי נראה ש- M אכן מכריעה את L באופן נכון. יהי, w L אזי בהכרח מתקיים ש- לא מקבלת את w לעולם. לכן, בשלב כלשהו M בהכרח תקבל את w בשלב (3) שלה. באותו כלשהו), ו- אופן, יהי כנדרש., w L אזי לעולם לא מקבלת את, w ו- בהכרח מקבלת אותו, ולכן M אכן תדחה את, w 1

חישוב לא-דטרמיניסטי כל המודלים של חישוב שעסקנו בהם עד כה היו דטרמיניסטיים, במובן זה שבהנתן קלט כלשהו, מהלך ריצת האלגוריתם קבוע מראש ומתבצע תמיד באותו אופן. פורמלית, תכונה זו נובעת מכך שהגדרנו שכללי המעבר ) δ) של מכונה כלשהי מוגדרים על ידי פונקציה, שמתאימה לכל מצב ואות מעבר אחד ויחיד. נגדיר כעת מודל "חופשי" יותר שבו כללי המעבר מיוצגים על ידי יחס, כלומר ממצב ואות מסויימים יכולות להיות כמה אפשרויות למעברים. כתוצאה מכך, עבור מכונה וקלט מסויימים, יכולות להיות כמה ריצות שונות של המכונה על הקלט, ובפרט יתכן שריצות שונות כאלו יניבו תוצאות שונות, ואנו נצטרך לקבוע מה תהיה המשמעות של מקרים כאלה. הגדרה: מ"ט לא-דטרמיניסטית (מ"ט ל"ד) היא מ"ט שבה אוסף כללי המעבר δ מאפשר שמזוגות מסויימים (a (,q ייתכנו כמה מעברים שונים. כתוצאה מכך עבור מ"ט ל"ד M וקלט w יתכנו מס' ריצות חוקיות שונות של M על w המסתיימת במצב מקבל. M מקבלת קלט, w אם קיימת ריצה של M על. נאמר שמ"ט ל"ד M מקבלת את, w ולכל, w L אם לכל, w L מקבלת שפה L M הגדרה: באופן טבעי, נאמר שמ"ט ל"ד. w אינה מקבלת את M כל, w Σ ובנוסף, לכל קלט M מקבלת את L מעל Σ אם מכריעה שפה L M הגדרה: נאמר שמ"ט ל"ד M על w עוצרת. ריצה אפשרית של M המקבלת אותה; נאמר שהשפה ניתנת L ניתנת לקבלה ל"ד אם קיימת מ"ט ל"ד הגדרה: נאמר ששפה להכרעה ל"ד אם קיימת מ"ט ל"ד המכריעה אותה. דוגמא: בנה מ"ט להכרעה ל"ד של השפה. L= { w w w { a, b, c} } הדוגמא לעיל (ודוגמאות נוספות שיובאו בהמשך) משקפת את הכוח של המודל הל"ד, שפעמים רבות מאפשר לנו לבנות אלגוריתמים פשוטים יותר לבעיות שפתרון דטרמיניסטי שלהם הוא מסורבל יחסית. עם זאת, יש להודות שבמודל הל"ד יש משהו "לא טבעי" ומבלבל במידת מה; למעשה, אנו נוטים אינטואיטיבית לקשור חישוב עם משהו שמתבצע דווקא באופן מדויק וקבוע מראש. קיימות גישות אינטואיטיביות שונות המנסות להתגבר על פער זה ולתאר כיצד היה נראה המודל הל"ד התיאורטי בעולם הממשי שלנו, אך כולן (או לפחות כל אלו שהזדמן לי לשמוע) לוקות בחסר, ובסופו של דבר גורמות לבלבול וטעויות שנובעות מניואנסים שהלכו לאיבוד בדימוי. ננסה להציג כמה מהן, ולהתבונן היכן הן לא מתיישבות עם ההגדרה בצורה מושלמת. "ניתן להציג חישוב ל"ד כהרצה של כל האפשרויות לריצה בזו אחר זו, ובדיקה האם אחת מהריצות הנ"ל מקבלת." גישה זו שגויה כיוון שהיא מעוותת את סיבוכיות הזמן (עניין שנדון בו בהמשך) של מכונה ל"ד. נשים לב שבשיטה זו, ריצה של מ"ט ל"ד על קלט צריכה לקחת זמן רב הרבה יותר מריצה דטר' שבה אותו מספר צעדים, וזו לא הדרך בה אנו מגדירים זמן ריצה של מ"ט ל"ד. "ניתן להציג חישוב ל"ד כהרצה של כל האפשרויות לריצה במקביל, ובדיקה האם אחת מהריצות הנ"ל מקבלת." בדומה למקרה הקודם, גישה זו מעוותת את סיבוכיות המקום של ריצה ל"ד. "ניתן להציג חישוב ל"ד כחישוב שבו בכל התפצלות של אפשרויות להמשך הוא "מטיל מטבע קסום" (או "מקבל רמז מגמד" או "שואל נביא") וכך בוחר תמיד באפשרות שמביאה לקבלה של הקלט, אם יש כזה." דימוי זה יוצר מצג כאילו כל ריצה של מ"ט ל"ד מגיעה לתוצאה הנכונה בדרך קסומה כלשהי. זהו לא המצב: ישנן ריצות שמגיעות לתוצאה נכונה, אך יכולות גם להיות ריצות אחרות שמגיעות לתוצאה שגויה. בהגדרת קבלה ל"ד של קלט אנו לא מתעניינים בתוצאה של ריצה מסויימת, אלא שואלים האם קיימת ריצה כלשהי שמביאה למצב מקבל. "ניתן להציג חישוב ל"ד כחישוב שבו אם הקלט שייך לשפה, יתכן שהמכונה תענה בחיוב ויתכן שתענה בשלילה, ואם הקלט הקלט אינו שייך לשפה, המכונה חייבת לענות בשלילה." דימוי זה אינו שגוי לחלוטין, אבל חשוב לשים לב שהוא מתאר ריצה בודדת של המכונה על הקלט; כאמור, אנו לא מתעניינים באף ריצה ספציפית, אלא ב"מבט כולל" על כל הריצות שיתכנו על אותו קלט, ובשאלה האם אחת מהן מביאה למצב מקבל. נסיק, אם כן, שישנם מקרים בהם הסבר או תיאור אינטואיטיבי אינו יכול להחליף הגדרה פורמלית, ויש להתייחס אליו בחשדנות (במקרה הטוב). הדרך הנכונה להתמודד עם רעיונות מופשטים מסוג כזה היא על ידי היכרות טובה של ההגדרה לפרטיה, והצמדות אליה בכל נסיון להוכיח טענה המתייחסת אליה. בהקשר זה, ראוי להזכיר תשובה מפורסמת של אחד המתמטיקאים הגדולים, שהיה גם מאבות מדעי המחשב והמחשב המודרני עצמו, ג'ון פון ניומן Nemann).(John von בתגובה לטענה של מישהו שכתב לו שאינו מבין רעיון מתמטי מסויים, עונה פון נוימן:.Yong man, in mathematics yo don t nderstand things. Yo st get sed to them 13

נוכיח כעת כי קבילות וכריעות ל"ד שקולות להגדרות הקבילות והכריעות המקוריות שראינו (עבור מ"ט דטר'). משפט: שפה L ניתנת לקבלה (/הכרעה) ל"ד אם"ם היא ניתנת לקבלה (/הכרעה) באופן דטרמיניסטי. הוכחה: נוכיח את שני כיווני הגרירה. ) ( תהי L שפה הניתנת לקבלה (/הכרעה) באופן דטרמיניסטי, אזי קיימת מ"ט דטר' M המקבלת (/מכריעה) אותה. נשים לב שכל מ"ט דטר' היא בפרט גם מ"ט ל"ד (שכן במ"ט ל"ד ייתכן שיהיו מספר מעברים שונים מזוג מסויים של מצב/אות, אבל אין חובה שיהיה יותר ממעבר אחד כזה). לכן נקבל מיד ש- L גם ניתנת לקבלה (/הכרעה) ל"ד. L שפה הניתנת ) ( נוכיח את המשפט עבור הכרעה, ההוכחה עבור קבלה דומה ואף מעט פשוטה יותר. תהי M עובדת עם סרט אחד בלבד). נראה כיצד M המכריעה אותה (בה"כ נניח כי להכרעה ל"ד, אזי קיימת מ"ט ל"ד לניתן לבנות מ"ט דטר' M להכרעת השפה. M על קלט כלשהו מאופיינת באופן מלא ע"י סדרת הבחירות הל"ד שעושה ראשית, נבחין שכל ריצה אפשרית של במהלך הריצה (בכל צעד מבוצעת לכל היותר בחירה ל"ד אחת). נבחין גם שמספר האפשרויות למעברים שונים מאותו זוג של אות/מצב במכונה הוא סופי ולכן חסום ע"י קבוע מסויים (מדוע?). מכאן, שניתן שניתן לייצג כל סדרת בחירות ע"י מחרוזת מעל א"ב גדול מספיק, Π כך שכל בחירה תיוצג ע"י תו אחד. המכונה הדטר' שנבנה למעשה תעבור על כל סדרות הבחירות האפשריות (לפי סדר המניה), ותבדוק האם לפחות אחת מהן מביאה את למצב מקבל בריצה על הקלט הנתון. כמו שכבר ראינו באחד המקרים הקודמים, כיוון שריצה מסויימת (אפילו עם סדרת בחירות ל"ד סופית) עלולה להתקע בלולאה, נדאג גם להגביל את מספר הצעדים המותר בכל ריצה. נציג כעת באופן מפורט את אופן ריצת המ"ט M. למ"ט M יהיו 4 סרטים, והיא תפעל באופן הבא: העתק את הקלט מסרט מס' אל סרט מס'. 1. כתוב את האות הראשונה של Π בסרט מס' 3.. כתוב 0 בסרט מס' 4. 3. (סימון זה יהיה "דגל" שיאמר לנו האם כל הריצות במס' הצעדים הנוכחי עצרו במצב דוחה. אם כן, הרי שניתן לדחות ואין טעם לנסות מספר צעדים גדול יותר.) M על הקלט בסרט מס', באופן הבא: בצע סימולציה של המכונה 4. בכל צעד של המכונה, בצע את הבחירה הל"ד עפ"י התו הנוכחי בסרט מס' 3, וזוז צעד ימינה א. בסרט זה. (יש לזוז ימינה על סרט מס' 3 אפילו אם במעבר מסויים לא היתה כלל בחירה ל"ד.) אם אין בחירה ל"ד מתאימה לאות שבסרט מס' 3, הפסק את הסימולציה, ועבור לשלב (5). ב. אם הגענו לתא ריק בסרט מס' 3, כתוב 1 בסרט מס' 4 במקום התו הנוכחי שם, ועבור לשלב (5). ג. אם הסימולציה של הגיעה למצב מקבל, קבל. ד. אם הסימולציה של הגיעה למצב דוחה, עבור לשלב (5). ה. קדם את המחרוזת שבסרט מס' 3 למחרוזת הבאה בסדר המניה מעל. Π אם המחרוזת הבאה היא באורך 5. גדול ממש מהאורך הנוכחי ובסרט מס' 4 מופיע התו 0, דחה; אם מופיע התו 1, כתוב 0 במקומו. מחק את תוכן סרט מס', העתק לשם מחדש את הקלט (מסרט מס' 1), וחזור לשלב (4). 6. שמגיעה על w M נראה כעת ש- M אכן מכריעה את L באופן נכון. יהי, w L אזי ידוע שקיימת ריצה של למצב מקבל. מבין כל הריצות המקבלות הנ"ל (המתוארות כולן ע"י מחרוזות ב- ( Π נבחר את זו המתוארת ע"י. y = n נשים לב שאם בריצה על w נגיע לאיטרציה שבה y המופיעה ראשונה בסדר המניה, ונסמן המחרוזת שלב (4) מתבצע כאשר בסרט מס' 3 מופיעה המחרוזת M, y תקבל את. w מתכונות סדר המניה, ישנו רק מספר y בסדר המניה מעל, Π ולכן מספר האיטרציות שלפני האיטרציה שלנו סופי. סופי של מחרוזות המופיעות לפני המופיעה לפני בסדר המניה מתבצעת במשך לכל היותר n בנוסף, ניתן לראות כי כל סימולציה עם מחרוזת y צעדים, ולאחר כל איטרציה כזו נעשית עבודה בזמן פרופורציונלי ל- n גם הוא (עבור ניקוי הסרטים וכו'). לבסוף, מובן כי לא יתכן כי עבור n < n כלשהו מתקיים שכל הריצות מאורך n מגיעות למצב דחיה, שכן לפחות אחת מהן היא תחילית של הריצה המקבלת. y מכאן שאכן M תקבל כל w L לאחר מס' צעדים סופי כלשהו. הריצה על w מגיעה למצב דחיה. תהי y M אזי מובטח לנו כי כל ריצה (שלא נעצרה באמצע) של, w L יהי הארוכה ביותר האפשרית של y = n ונסמן שוב, w על M n כל המחרוזות ב-, Π נדחה. זאת כיוון ש- y. בהכרח מתקיים שכאשר נסיים לבצע את שלב (4) עם היא הריצה הארוכה ביותר האפשרית של M וידוע שאף על, w n ריצה של M על w אינה מקבלת, ולכן כל ריצה המיוצגת ע"י מחרוזת ב- Π תעצור ותדחה בשלב כלשהו. לכן כש- M תגיע לשלב (5) לאחר מעבר על שלב (4) עבור כל המחרוזות הנ"ל נראה שבסרט מס' 4 מופיע 0 (שכתבנו כשהגענו למחרוזת הראשונה באורך, n ולא שינינו מעולם לאחר מכן), ותדחה, כנדרש. (כמו קודם, מתקיים שבהכרח נגיע למעבר על כל המחרוזות הנ"ל כיוון שעבור כל מחרוזת קודמת להן נבצע מס' סופי של צעדים, ויש מס' סופי של מחרוזות כאלה.) לכן, M דוחה כל מחרוזת, w L כנדרש. 14

פעמים רבות יש נטיה טבעית להכליל את התוצאה לעיל ולטעון שמ"ט ל"ד שקולה למ"ט דטר' גם עבור חישוב פונקציה ומניית שפות. שימו לב שזו טענה חסרת כל משמעות, שכן בניגוד לקבלה והכרעה של שפה, כלל לא הגדרנו מהו חישוב פונקציה ומהי מניית שפה במודל הל"ד. אנו לא נגדיר הגדרות כאלה, ונדבר על אי-דטרמיניזם רק בהקשר של קבלה והכרעה. כעת, כאשר הוכחנו שהמודל הל"ד שקול (לגבי קבלה והכרעה) למודל הדטרמיניסטי הרגיל, נוכל להוסיף את המודל הזה לקבוצת המודלים בהם אפשר להשתמש כשרוצים להראשות כריעות או קבילות של שפה. נראה כמה דוגמאות בהן שימוש במודל הל"ד נוח במיוחד. תרגיל: בלבד. הוכח כי מחלקת השפות הניתנות לקבלה סגורה תחת פעולת האיחוד. השתמש במ"ט בעלת סרט אחד תרגיל: הוכח כי מחלקת השפות הכריעות סגורה תחת פעולת השרשור.. prefix הוכח כי מחלקת השפות ( L) = { x y Σ : x y תרגיל: נגדיר את הפעולה prefix על שפה להיות {L הניתנות לקבלה סגורה תחת פעולת. prefix 15

4. סיכום חלק א': התזה של צ'רץ' וטיורינג עד כה, הגדרנו מספר מודלים שונים לחישוב (כולם, אמנם, גרסאות שונות של מ"ט), שבמבט ראשון עשויים להראות כבעלי כוח חישובי שונה. אך בכל המקרים הוכחנו שהמודלים הנ"ל שקולים למודל הראשון והפשוט- למראה של מ"ט דטר' בעלת סרט בודד, אינסופי לכיוון אחד. האם זהו מקרה? התזה של צ'רץ' וטיורינג (שנוסחה ע"י Alonzo Chrch ו- Tring (Alan גורסת כי לא מדובר במקרה, וכי כל מודל של חישוב שמקיים את ההנחות שמהן התחלנו (כלומר אלגוריתם הניתן לתיאור סופי, ושמורכב מפעולות אטומיות שכל אחת מהן ניתנת לביצוע בזמן סופי) אכן שקול למ"ט. כמובן, באין הגדרה פורמלית לאלגוריתם, זהו לא משפט מתמטי מנוסח היטב שניתן להוכיח, ולכן הוא נקרא רק "תזה". בפרט, מהתזה נובע כי כל מחשב (ושפת מחשב) שאנו מכירים היום, וכל מודל מחשב שניתן לחשוב עליו (כולל מחשב קוונטי) שקול מבחינת כוח החישוב למ"ט הפשוטה שממנה התחלנו (אם כי השקילות אינה מתקיימת לגבי הזמן שעשוי להדרש לחישוב). כתוצאה מכך, משלב זה בקורס נוכל לדבר על "תכניות מחשב" במקום על מ"ט (כולל על תכניות ל"ד אשר כוללות פעולות של "ניחוש"). ההבנה צריכה להיות שהמודל הפורמלי המדויק הוא מ"ט, אך הואיל וזה מודל מסורבל לשימוש, ניתן לדבר על מודלים אחרים, הואיל וכל תכנית במודל אחד ניתנת לתרגום מדוייק למ"ט (במודל T, או בכל מודל אחר שנרצה). בכדי להשתכנע ביכולת הזו, נדגים איך ניתן לתרגם קוד של שפה אימפרטיבית פשוטה (כגון C) למ"ט. מאחר שאנו יודעים שגם שפות מתקדמות יותר ניתנות לתרגום לשפות כאלה (למעשה, כולן עוברות קומפילציה באופן זה או אחר ומתורגמות בסופו של דבר לשפת מכונה!), זה יספיק בכדי לשכנע אותנו שלמ"ט אכן יש את הכוח לבטא כל תכנית בכל שפה שנרצה. כאמור, נתבונן בשפה אימפרטיבית פשוטה כלשהי. אלו מבנים אנו דורשים משפה כזו? ניתן לחשוב על התשובות הבאות: משתנים (שמספרם קבוע בתכנית). מערכים (שיכולים לגדול בצורה דינמית במהלך הריצה). חישוב ביטויים אריתמטיים (עבור מספרים טבעיים). לולאות מסוגים שונים (למעשה, ניתן להסתפק בלולאות.(while תרגיל: הוכח כי כל תכנית מחשב המכילה אלמנטים מהרשימה לעיל ניתנת לתרגום למ"ט. 16