בקצרה
- מסיימים את הטיפול במכונה האי‑דטרמיניסטית שמכריעה את : היא אכן מכריעה את באופן אי‑דטרמיניסטי, וכמכונה חד‑סרטית זמן הריצה שלה חסום ב‑.
- עושים את אותו תרגיל מקצה לקצה על שפת המספרים הפריקים: אלגוריתם דטרמיניסטי נאיבי דורש זמן אקספוננציאלי באורך הקלט, ואילו מכונה אי‑דטרמיניסטית מכריעה אותה ב‑ — הדגמה חדה של מה הכוח האי‑דטרמיניסטי קונה לנו.
- שתי המכונות האלה חולקות מבנה אחד: האי‑דטרמיניזם מרוכז כולו בשלב אחד — כתיבת ההשמה, או כתיבת שני הגורמים. אם מישהו חיצוני היה נותן לנו את האובייקט הזה, כל השאר היה דטרמיניסטי ופולינומי.
- המשפט המרכזי: אם ורק אם קיימים פולינומים ומכונה דטרמיניסטית הרצה בזמן , כך שלכל מתקיים שעבורו מקבלת את . המרצה בהקלטה המקבילה קורא למחלקה המוגדרת כך , ומוכיח .
- ה‑ נקרא עד (witness) או אישור (certificate), והמכונה נקראת מוודא (verifier). שימו לב: אינה מכריעה את — היא אפילו לא מקבלת את לבדו כקלט.
- ההוכחה דו‑כיוונית ובנייתית: מ‑verifier בונים NTM שכותבת את באופן אי‑דטרמיניסטי ואז מריצה את ; מ‑NTM בונים verifier שהעד שלו הוא רצף הבחירות האי‑דטרמיניסטיות לאורך ענף מקבל. בדרך מוכיחים למת עזר: אפשר להניח שלכל מעבר יש לכל היותר שתי אפשרויות, ואז די בביט אחד לכל צעד.
- שני החסמים הכרחיים: אורך העד חייב להיות פולינומי, וגם זמן האימות חייב להיות פולינומי. ויתור על הראשון מוריד את ההגדרה עד כדי אפיון של מקורס החישוביות; ויתור על השני מנפח את המחלקה מעל .
- המשמעות שכדאי לקחת: הוא טענה, הוא הוכחה, הוא בודק ההוכחות. השאלה מול הופכת לשאלה "האם קשה יותר להוכיח מאשר לבדוק הוכחה" — או, בניסוח של ההרצאה, האם קל יותר לפתור מבחן או לבדוק אותו.
רקע ותלויות
מהשיעורים הקודמים בסדרה נדרשים חמישה דברים, ונחזור עליהם במלואם כדי שלא תצטרכו לקפוץ.
(א) מודל המכונה (ראו שיעורים 1–2). מכונת טיורינג נכתבת כרביעייה‑שישייה כאשר קבוצת המצבים, מצב ההתחלה, קבוצת המצבים המקבלים, אלפבית הקלט, אלפבית הסרט, ו‑ פונקציית (או יחס) המעברים. במכונה דטרמיניסטית הוא איבר יחיד; במכונה אי‑דטרמיניסטית היא קבוצה, ובכל צעד המכונה בוחרת אחד מאיבריה.
(ב) מעבר בין מספר סרטים (ראו שיעורים 1–2). עבור מכונה רב‑סרטית קיימת מכונה חד‑סרטית שקולה סמנטית שעבורה מכיוון שתמיד , נובע מכאן גם החסם המוכר — אבל כשידוע לנו משהו על המקום, הגרסה הראשונה הדוקה יותר. שתי המסירות של השיעור משתמשות בדיוק בנקודה הזו, וכל אחת מקבלת בזכותה חסם במקום .
(ג) הכרעה באופן אי‑דטרמיניסטי (ראו שיעור 4). מכונה אי‑דטרמיניסטית מכריעה שפה באופן אי‑דטרמיניסטי אם מתקיימים שני תנאים: (i) לכל , כל ריצה אפשרית של על עוצרת — אין ריצות אינסופיות; (ii) אם ורק אם קיימת ריצה אפשרית של על שבה היא מקבלת. שקול לנסח את (ii) כשני תנאים נפרדים: אם אז קיימת ריצה מקבלת, ואם אז בכל ריצה אפשרית דוחה. שימו לב לאסימטריה: קבלה נקבעת על ידי כמת "קיים", דחייה על ידי כמת "לכל". בפרט ייתכן בהחלט שעל קלט ששייך לשפה נריץ את המכונה ונקבל דחייה — הדרישה היא רק שתהיה אפשרות לבחור נכון.
(ד) מדדי יעילות אי‑דטרמיניסטיים והמחלקות (ראו שיעור 4). מוגדר כמספר הצעדים בריצה הארוכה ביותר מבין כל הריצות האפשריות על ; הוא מספר התאים השונים שנכתבים בריצה הבזבזנית ביותר — ולא בהכרח באותה ריצה. היא מחלקת השפות שניתן להכריע אי‑דטרמיניסטית בזמן , ובאופן דומה . המחלקה שמעניינת אותנו היא
(ה) ו‑CNF (ראו שיעור 5). נוסחת CNF היא קוניונקציה של פסוקיות, וכל פסוקית היא דיסיונקציה של ליטרלים. . בסוף שיעור 5 הוגדרה מכונה דו‑סרטית אי‑דטרמיניסטית שעל קלט :
- סורקת את וסופרת את מספר המשתנים — באופן דטרמיניסטי;
- כותבת על הסרט השני מחרוזת — באופן אי‑דטרמיניסטי;
- בודקת האם ההשמה המקודדת ב‑ מספקת את , ומקבלת אם ורק אם כן — באופן דטרמיניסטי.
הפרשנות של שלב 2: כל מחרוזת בינרית באורך מספר המשתנים נחשבת לתיאור של השמה — הביט ה‑ הוא הערך שההשמה נותנת למשתנה . זו התשובה לשאלה של סטודנט: ההשמה אמנם מוגדרת פורמלית כפונקציה שמקבלת משתנה יחיד ומחזירה , אבל הקידוד שלה על הסרט הוא מחרוזת אחת באורך ([00:07:39], מסירה 11).
על ציטוט המקורות בקובץ זה. לשיעור יש שתי הקלטות של שתי מסירות מקבילות לשתי קוהורטות. חותמות זמן מסומנות כאן
[hh:mm:ss]עם ציון המסירה: מסירה 10 =zcCQY3oT40Y(הקוהורטה שעבדה על המספרים הפריקים), מסירה 11 =U3Sy9Qr1Me0(הקוהורטה שהמשיכה מ‑).
הגדרות
הגדרה 1: מוודא (verifier), עד (witness / certificate), והמחלקה
תהא שפה. נאמר ש‑ אם קיימים פולינומים ומכונת טיורינג דטרמיניסטית כך ש:
- לכל קלט מתקיים ;
- לכל מתקיים
המחרוזת נקראת עד (witness) או אישור (certificate) לשייכות , והמכונה נקראת מוודא (verifier). באופן שקול:
השם הוא הסימון שבו השתמש המרצה במסירה 10 ([00:39:10]) כדי להדגיש שזו לכאורה מחלקה אחרת, שהוגדרה בלי שום התייחסות לאי‑דטרמיניזם; משפט 4 יוכיח ש‑.
אינטואיציה. חשבו על בתור טענה ועל בתור הוכחה לטענה. המוודא אינו מנסה להוכיח בעצמו — הוא מקבל טענה והוכחה, וכל תפקידו הוא להגיד אם ההוכחה משכנעת ([00:42:22]–[00:43:23], מסירה 10). זה ההבדל בין לפתור מבחן לבין לבדוק מבחן ([00:16:07], מסירה 11; [00:46:01], מסירה 10). ותנאי (2) הוא בדיוק הדרישה שהמערכת תהיה נאותה ושלמה: לכל טענה נכונה יש הוכחה משכנעת, ולשום טענה שגויה אין הוכחה משכנעת.
בגלל זה חשוב להדגיש: אינה מכריעה את , ולא רק מסיבה חישובית אלא כבר מסיבה תחבירית — הקלט שלה הוא הזוג ולא ([00:20:28], מסירה 11; [00:41:50], מסירה 10). לכן היא נקראת מוודא ולא מכונת הכרעה.
שני הפרמטרים בהגדרה הם שני חסמים נפרדים: חוסם את אורך העזרה שמותר לקבל מבחוץ, ו‑ חוסם את זמן הבדיקה. כדברי המרצה במסירה 10 ([00:16:57]): "אני רוצה להימנע ממקרה שיש איזו עדות, אבל היא כל כך ארוכה שרק לקרוא אותה ייקח לי זמן אקספוננציאלי". במשפט 5 נראה שאף אחד מהחסמים אינו מיותר.
מופע. . העד ל‑ הוא השמה מספקת, מקודדת כמחרוזת בינרית באורך מספר המשתנים; האימות הוא הצבה וחישוב ערך אמת — פולינומי.
מופע נוסף. . אם אני טוען בפניכם ש‑8 פריק, אתם לא מוכנים להאמין לי סתם — פירוק לגורמים הוא יקר. אבל אם אני מוסר לכם את הזוג , כל מה שנשאר לכם הוא כפל, שהוא זול חישובית. העד הוא הזוג, האימות הוא הכפל ([00:23:14], מסירה 11; [00:48:41], מסירה 10).
אי‑מופע — למה זו לא סתם "כל שפה". קחו את (נוסחאות CNF שאינן ספיקות). מהו העד? השמה בודדת אינה עוזרת — כדי לשכנע ש‑ אינה ספיקה צריך משהו שמכסה את כל ההשמות, ולא ידוע לאיש עד קצר כזה. ההגדרה אינה מספקת את עצמה אוטומטית.
הגדרה 2: תסריט ריצה (run script)
תהא מכונה אי‑דטרמיניסטית. בכל צעד מחליטה על שלושה דברים: המצב הבא, התו שייכתב, וכיוון הזזת הראש. לכן כל ריצה של על קלט ניתנת לתיאור על ידי סדרה סופית של שלשות באורך מספר הצעדים בריצה. מחרוזת המקודדת סדרה כזו נקראת תסריט ריצה של על . מספר הביטים לתיאור שלשה אחת הוא כי לציון אחד מ‑ מצבים דרושים ביטים, לציון אחד מ‑ תווים דרושים ביטים, וכיוון ההזזה הוא ביט יחיד. ו‑ הם קבועים של המכונה ואינם תלויים בקלט.
אינטואיציה — המבוך ([00:40:43]–[00:43:31], מסירה 11). חשבו על מכונה אי‑דטרמיניסטית כעל מי שפותר מבוך: בכל התפצלות הוא בוחר לאן לפנות, והמבוך "פתיר" אם ורק אם קיימת סדרת בחירות שמוציאה החוצה. איזו עזרה מינימלית אני צריך לקבל לפני הכניסה כדי לוודא שאפשר לצאת? לא מצפן — אני לא יודע איפה היציאה. לא שלטים — הם כבר בפנים. מפה תספיק, אבל היא נותנת יותר מדי: היא מאפשרת לי לפתור את המבוך, לא רק לוודא פתרון. המינימום הנדרש הוא רשימת הפניות: "בצומת הראשון שמאלה, בשני ישר, בשלישי ימינה…". תסריט ריצה הוא בדיוק רשימת הפניות הזו.
הגדרה 3: מכונה אי‑דטרמיניסטית מנורמלת (בינארית)
מכונה אי‑דטרמיניסטית תיקרא מנורמלת אם לכל ולכל מתקיים — כלומר בכל מעבר יש לכל היותר שתי אפשרויות בחירה.
למה זה שימושי. במכונה מנורמלת, ביט אחד לכל צעד מספיק כדי לקבוע איזו בחירה בוצעה. זה מצמצם את תיאור הריצה מרצף שלשות לרצף ביטים, ומייתר את הצורך לוודא שהתסריט "חוקי" — כל מחרוזת ביטים מתארת ריצה חוקית כלשהי. משפט 3 יראה שאפשר תמיד להניח נרמול, במחיר קבוע כפלי בזמן הריצה.
מופע. המכונה למספרים פריקים (משפט 2) כפי שנכתבה במסירה 10 היא כמעט מנורמלת: בשלב כתיבת המספר יש לה בדיוק שלוש אפשרויות בכל צעד — לכתוב , לכתוב , או לסיים ולעבור לשלב הבא. אי‑מופע: מכונה שבמעבר מסוים מפצלת ל‑10 אפשרויות אינה מנורמלת; משפט 3 מראה איך להחליף אותה בשקולה מנורמלת.
משפטים והוכחות
משפט 1: המכונה מכריעה את באופן אי‑דטרמיניסטי, בזמן
טענה. המכונה שתוארה בסעיף (ה) של הרקע מכריעה את באופן אי‑דטרמיניסטי.
הוכחה. תהא נוסחה מצורת CNF.
מקרה . אזי קיימת השמה המספקת את . נסמן ב‑ את מספר המשתנים; מקודדת כמחרוזת בת ביטים. בשלב 2 המכונה כותבת מחרוזת שרירותית באורך באופן אי‑דטרמיניסטי, ולכן קיימת ריצה אפשרית של שבה היא כותבת בדיוק את הקידוד של . בריצה זו שלב 3 — דטרמיניסטי — בודק את על , מוצא שהיא מספקת, ולכן מקבלת.
מקרה . אזי אף השמה אינה מספקת את . תהא ריצה אפשרית כלשהי, ותהא ההשמה שנכתבה בה בשלב 2. מכיוון ש‑ אינה מספקת, שלב 3 מסיים בדחייה. זה נכון לכל ריצה אפשרית.
לפי הגדרת ההכרעה האי‑דטרמיניסטית, מכריעה את באופן אי‑דטרמיניסטי.
הרעיון בלב ההוכחה ([00:04:20], מסירה 11). בכל הוכחת הכרעה אי‑דטרמיניסטית התבנית זהה: בכיוון החיובי מספיק להצביע על אפשרות אחת לבחור נכון; בכיוון השלילי צריך לכסות את כל האפשרויות.
ניתוח סיבוכיות זמן ומקום
בהינתן , על המכונה הדו‑סרטית:
- ספירת המשתנים — מעבר ליניארי אחד: צעדים.
- כתיבת ההשמה — ביטים: צעדים.
- בדיקת הסיפוק — . הנימוק: עוברים על הנוסחה ליטרל אחר ליטרל, ולכל מופע של משתנה יש לגשת לתא המתאים בהשמה שעל הסרט השני. במקרה הגרוע המופעים מסודרים כך שהראש נאלץ לחצות את כל ההשמה בין מופע למופע (מופע של המשתנה הראשון, אחריו של האחרון, אחריו שוב של הראשון). מכפלת מספר המופעים ב‑אורך ההשמה נותנת .
סך הכל , ו‑ — המכונה כותבת רק את ההשמה.
מעבר לחד‑סרטית. למה בכלל חישבנו מקום? כי אנחנו רוצים חסם על מכונה חד‑סרטית, ולפי סעיף (ב) ברקע ([00:10:47], מסירה 11):
מסקנה. קיימת מכונה חד‑סרטית אי‑דטרמיניסטית המכריעה את באופן אי‑דטרמיניסטי, ולכל נוסחת CNF מתקיים . בפרט .
הערה: בהרצאה החסם נאמר בקיצור ("זה מגיע מזה שזה הספייס כפול הטיים"). הפירוט: אילו היינו משתמשים בחסם הגס היינו מקבלים . החסם דרך המקום הדוק יותר משום שהמכונה חסכנית במקום.
משפט 2: — ומה הכוח האי‑דטרמיניסטי קונה
זהו המהלך המקביל שנעשה במסירה 10 ([00:04:49]–[00:34:29]) במקום . הוא מובא כאן במלואו, גם מפני שהוא דוגמה שנייה בלתי תלויה לאותה תבנית, וגם מפני שהוא המקום היחיד בקורס שבו פונקציית המעברים של מכונה אי‑דטרמיניסטית נכתבת במפורש.
נגדיר
נקודת המוצא: כמה עולה הפתרון הדטרמיניסטי הנאיבי? האלגוריתם המתבקש עובר על כל המספרים בין ל‑ ומנסה לחלק. מספר המחלקים שיש לנסות הוא בסדר גודל עצמו — אבל מתקבל בקידוד בינרי, כלומר . לכן ביחס לאורך הקלט זמן הריצה הוא , ואם מוסיפים גם את עלות כל חילוק ( בכפל/חילוק ארוך) — עוד יותר. זה אקספוננציאלי באורך הקלט, לא פולינומי.
הערה: שני סטודנטים חידדו כאן נקודות אמיתיות ([00:11:41] ו‑[00:12:11], מסירה 10). הראשון שאל למה זה ולא — התשובה היא שהמדד תמיד נמדד ביחס לאורך הקלט: כדי לכתוב מיליון די בכ‑20 ביטים, ולכן מיליון פעולות הן פעולות ביחס לקלט באורך 20. השני שאל מה עם עלות החילוק עצמו — ואכן צריך להוסיף אותה, אך היא זניחה ביחס למספר האיטרציות ואינה משנה את המסקנה. המרצה ציין גם ([00:08:00]) שקיים אלגוריתם דטרמיניסטי פולינומי לבעיה, תוצאה מלפני כ‑20 שנה, אך הוא מסובך מאוד ואינו הנושא כאן.
המכונה האי‑דטרמיניסטית. נגדיר מכונה אי‑דטרמיניסטית בעלת ארבעה סרטים. על קלט (על הסרט הראשון):
- כתוב באופן אי‑דטרמיניסטי על הסרט השני מספר באורך לכל היותר .
- כתוב באופן אי‑דטרמיניסטי על הסרט השלישי מספר באורך לכל היותר .
- אם או או או — דחה.
- חשב את על הסרט הרביעי.
- אם — קבל; אחרת — דחה.
שוב, כמו במכונה של : שלבים 1–2 אי‑דטרמיניסטיים, שלבים 3–5 דטרמיניסטיים לחלוטין ([00:24:22], מסירה 10).
איך נראה שלב 1 ברמת ? זהו הפירוט שהמרצה נתן פעם אחת ואמר שלא נחזור עליו ([00:20:04]–[00:23:49], מסירה 10). נניח שהמכונה במצב והראש על הסרט הראשון קורא או . אז ל‑ יש שלוש אפשרויות:
- לכתוב על הסרט השני, להישאר ב‑, ולהזיז את שני הראשים ימינה;
- לכתוב על הסרט השני, להישאר ב‑, ולהזיז את שני הראשים ימינה;
- להחליט שסיימנו לכתוב, ולעבור ל‑ (שם הראשים מוחזרים לתחילת הסרטים ומתחיל שלב 2).
ואם הראש על הסרט הראשון קורא את התו הריק — כלומר עברנו את אורך הקלט — המכונה חייבת לעבור ל‑. זה בדיוק המימוש של "מספר באורך לכל היותר ", וזה גם מה שמבטיח שאין ריצות אינסופיות: התנאי הראשון בהגדרת ההכרעה האי‑דטרמיניסטית.
נכונות. ננסח כשרשרת של "אם ורק אם" ([00:29:41]–[00:31:17], מסירה 10): השוויון האחרון הוא בדיוק בנייתה של : היא בוחרת שני מספרים בטווח ובודקת את המכפלה, וזה המקרה היחיד שבו היא מקבלת. בכיוון אחד: אם פריק, קיימים כאלה, ולכן קיימת ריצה שבה בוחרת בדיוק אותם ומקבלת. בכיוון השני: אם קיימת ריצה מקבלת, אז בריצה זו נכתבו שעברו את בדיקת שלב 3 ומקיימים , ולכן פריק.
הערה מתודית מההרצאה ([00:31:17], מסירה 10): כשהשקילות נובעת ישירות מההגדרה מותר לכתוב אותה כשרשרת "אם ורק אם" כזו; בבעיות מורכבות יותר עדיף לפצל ולהוכיח כל כיוון בנפרד. שימו לב שגם כאן, כמו במשפט 4 בהמשך, שני הכיוונים נחוצים.
ניתוח זמן ומקום. יהי קלט, .
- שלב 1: לכל היותר צעדים (חסמנו את אורך ב‑).
- שלב 2: לכל היותר צעדים, ובנוסף החזרת הראשים — .
- שלב 3: השוואות בין מספרים באורך — .
- שלב 4: כפל ארוך של שני מספרים בני ביטים — : צריך להכפיל כל ספרה בכל אחת מהאחרות ולסכום.
- שלב 5: השוואה אחת — .
סך הכל . המקום: הסרטים מחזיקים את , את , את ואת המכפלה שאורכה — לכן .
מכיוון ש‑ חסום, בפרט כל ריצה עוצרת — התנאי הראשון בהגדרת ההכרעה מתקיים "בחינם" מתוך חסם הזמן ([00:29:10], מסירה 10).
מעבר לחד‑סרטית. היא רב‑סרטית, ואילו הגדרת נוסחה למכונה סטנדרטית. לפי סעיף (ב) ברקע:
מסקנה. .
מה הרווחנו. דטרמיניסטית‑נאיבית: . אי‑דטרמיניסטית: . במקום לעבור על כל המחלקים האפשריים, המכונה בוחרת אחד ובודקת רק אותו; מספיק שתהיה אפשרות לבחור נכון ([00:13:14], מסירה 10).
אזהרה מהמרצה ([00:37:36], מסירה 10): המודל האי‑דטרמיניסטי הוא מודל פיקטיבי. אין דבר כזה מכונה אי‑דטרמיניסטית במציאות; זהו כלי להבנת הקושי של בעיות. ההגדרה השקולה שנוכיח מיד היא זו שנותנת ל‑ משמעות ממשית.
משפט 3 (למת נרמול): אפשר להניח שתי אפשרויות בכל מעבר
טענה. לכל מכונה אי‑דטרמיניסטית קיימת מכונה אי‑דטרמיניסטית מנורמלת (כלומר לכל ) כך ש:
- לכל : קיימת ריצה מקבלת של על אם ורק אם קיימת ריצה מקבלת של על (שקילות סמנטית);
- לכל : .
הבנייה ([00:57:43]–[01:07:23], מסירה 10). נתבונן במעבר של שבו יש אפשרויות: נחליף אותו ב‑ מעברים בינאריים, בעזרת מצבי עזר חדשים : כאן פירושו "אל תזיז את הראש ואל תשנה את התו" — מעבר שמטרתו היחידה היא לדחות את ההחלטה. במילים: בכל שלב המכונה נשאלת שאלה בינרית — "לבצע את האפשרות הנוכחית, או לעבור למצב שאומר 'עכשיו תבחר מבין הנותרות'?" — וכך מצטמצם מספר האפשרויות באחת בכל פעם, עד שבמצב האחרון נותרת אפשרות יחידה.
נכונות (סעיף 1). לכל ולכל : כלומר הסדרה ואז . מכיוון שמצבי העזר אינם משנים את הסרט ואינם מזיזים את הראש, הקונפיגורציה בסוף השרשרת הזו זהה לקונפיגורציה שאליה מגיעה בצעד יחיד. באינדוקציה על מספר הצעדים: לכל ריצה של על מתאימה ריצה של העוברת באותן קונפיגורציות (עם קונפיגורציות ביניים), ולהפך. בפרט קיימת ריצה מקבלת ב‑ אם ורק אם קיימת ב‑.
חשבון הזמן (סעיף 2). על כל צעד יחיד של , המכונה מבצעת לכל היותר צעדים, כאשר . נחסום את : כל אפשרות היא שלשה מתוך , ולכן זהו קבוע התלוי רק ב‑ ולא ב‑ ([01:08:28]–[01:10:40], מסירה 10). לכן
הערה: בהרצאה נאמר במפורש שזו אינה הוכחה פורמלית מלאה אלא בנייה מלווה בהסבר ([01:04:09] ו‑[01:11:42], מסירה 10). הפירוט כאן — הניסוח המדויק של , טענת ההתאמה בין סדרות בחירה, האינדוקציה, וחסם — הוא ההשלמה. הבנייה עצמה, כולל מצבי העזר וחסם מספר השלשות, נאמרה בהרצאה.
מדוע זה משתלם. אחרי הנרמול, כדי לתאר ריצה מספיק ביט אחד לכל צעד, ולא שלשה שלמה. זה מה שמאפשר במשפט 4 לקחת בדיוק, ולא . חשוב מכך: בקידוד הביטים, כל מחרוזת מתארת ריצה חוקית, ולכן המוודא אינו צריך כלל לבדוק חוקיות — הוא רק מריץ.
משפט 4 (המשפט המרכזי):
ניסוח. תהא שפה. אזי אם ורק אם קיימים פולינומים ומכונה דטרמיניסטית כך ש:
- לכל קלט : ;
- לכל : שעבורו מקבלת את .
הערה מקדימה. ב‑(1)–(2) המכונה היא דטרמיניסטית, בניגוד להגדרה המקורית של שבה המכונה אי‑דטרמיניסטית. זה כל העניין: המשפט מחליף אי‑דטרמיניזם בעזרה חיצונית קצרה. (בסיכום זו הערה בכחול בשולי עמוד 2.) שימו לב גם ש‑(1) חוסם את זמן הריצה באורך הקלט המלא של — כלומר — ולא ב‑ ([01:14:20], מסירה 10).
כיוון א': מ‑verifier ל‑ (אם קיימים כנ"ל, אז )
הבנייה. נניח שקיימים המקיימים (1) ו‑(2). נבנה מכונה אי‑דטרמיניסטית . שימו לב ש‑ "מחזיקה את בבטן" — ידועה בזמן הבנייה ואינה חלק מהקלט ([00:30:03], מסירה 11). על קלט :
- מחשבת את .
- כותבת מחרוזת באופן אי‑דטרמיניסטי, על הסרט מיד אחרי .
- מריצה את על ומחזירה את אותה תשובה.
זה בדיוק מה שעשו שתי המכונות שראינו: ג'נרוט אובייקט באופן אי‑דטרמיניסטי, ואחריו בדיקה דטרמיניסטית ([00:28:30], מסירה 11; [01:24:07], מסירה 10). שלב 3 חוקי משום שמכונה אי‑דטרמיניסטית תמיד יכולה להריץ מכונה דטרמיניסטית — כל מכונה דטרמיניסטית היא בפרט אי‑דטרמיניסטית עם אפשרות יחידה בכל מעבר ([01:22:00], מסירה 10).
נכונות: מכריעה את באופן אי‑דטרמיניסטי. יהי .
אם : מתנאי (2), בכיוון "רק אם", קיימת כך ש‑ מקבלת את . מכיוון ששלב 2 כותב מחרוזת שרירותית באורך , קיימת ריצה אפשרית של על שבה נכתבת בדיוק אותה . בריצה זו שלב 3 מריץ את על , מקבל "קבל", ולכן מקבלת.
אם : מתנאי (2), בכיוון "אם", אף אינה גורמת ל‑ לקבל את — כלומר לכל המכונה דוחה. תהא ריצה אפשרית כלשהי של על , ותהא המחרוזת שנכתבה בה בשלב 2. שלב 3 מריץ את על , מקבל "דחה", ומחזיר אותה תשובה. לכן כל ריצה אפשרית של דוחה.
הערה: כאן הנקודה שהמרצה עצר עליה במפורש ([00:32:17]–[00:33:49], מסירה 11): תנאי (2) הוא אם ורק אם, ובהוכחה משתמשים בשני הכיוונים שלו — באחד כדי לייצר ריצה מקבלת כש‑, ובשני כדי לשלול ריצה מקבלת כש‑. אילו (2) היה גרירה חד‑כיוונית בלבד, הייתה עלולה לקבל קלטים שאינם ב‑. שתי המסירות מנסחות את הכיוון השני אחרת: מסירה 11 עושה זאת בשלילה (נניח שקיימת ריצה מקבלת, ונגיע לסתירה), ומסירה 10 ישירות ([01:33:36]). שתי הגרסאות תקפות; הגרסה הישירה מובאת למעלה, וגרסת השלילה שקולה לה.
לכן מכריעה את באופן אי‑דטרמיניסטי.
ניתוח יעילות. יהי , ונסמן .
- שלב 1 דורש צעדים. הנימוק: הוא פולינום, וכל פונקציה אלמנטרית כזו היא ישימה בזמן — ניתנת לחישוב בזמן מסדר הגודל של ערכה ([00:35:56], מסירה 11; [01:26:09], מסירה 10).
- שלב 2 דורש בדיוק צעדים: המכונה רק רושמת ביטים, ביט אחד לצעד.
- שלב 3 דורש לפי תנאי (1). הקידוד של הזוג הוא שרשור של ואחריו (עד כדי תו מפריד קבוע), ולכן , ומכאן
סך הכל, אם נגדיר , אז . פולינומים סגורים תחת סכום, מכפלה והרכבה ([00:38:03], מסירה 11; [01:28:51], מסירה 10) — ולכן הוא פולינום ב‑. קיבלנו מכונה אי‑דטרמיניסטית המכריעה את בזמן פולינומי, כלומר .
למה סגירות הפולינומים היא לב העניין ([01:29:21], מסירה 10). זו אחת הסיבות שמסתכלים דווקא על ו‑: אלגוריתם פולינומי שמריץ אלגוריתם פולינומי אחר נשאר פולינומי. אין דבר כזה בזמן ליניארי — אלגוריתם ליניארי שמריץ אלגוריתם ליניארי בתוך לולאה כבר ריבועי. כאן זה קריטי: שלב 3 של הוא בדיוק "הרצת אלגוריתם בתוך אלגוריתם".
למה החישוב עובד רק בגלל ששני החסמים פולינומיים. אילו היה, נניח, — שלב 2 לבדו היה דורש צעדים. ואילו לא היה פולינומי — שלב 3 היה הורג אותנו. שני החסמים נכנסים לחישוב, כל אחד במקומו.
כיוון ב': מ‑ ל‑verifier (אם אז קיימים כנ"ל)
נתון. : קיימת מכונה אי‑דטרמיניסטית ופולינום כך ש‑ מכריעה את באופן אי‑דטרמיניסטי, ולכל מתקיים . איננו יודעים דבר על אופן פעולתה של — רק את שתי העובדות האלה ([01:38:49], מסירה 10).
מה חסר ל‑verifier? הבעיה במכונה אי‑דטרמיניסטית היא בדיוק שהיא עושה בחירות עצמאיות. מכונה דטרמיניסטית שרוצה לדעת אם קיימת ריצה מקבלת חייבת, בלי עזרה, לסרוק עץ ריצות שגודלו אקספוננציאלי. העזרה המינימלית שתפתור לה את הבעיה היא רשימת הבחירות (הגדרה 2, אנלוגיית המבוך). בניסוח של מסירה 10 ([01:40:26]): זהו "להוציא את האי‑דטרמיניזם אל מחוץ למכונה" — במקום שהמכונה תבצע בחירות תוך כדי ריצה, היא מקבלת את כל הבחירות מראש, ומאותו רגע היא דטרמיניסטית לחלוטין.
יש שתי דרכים לממש את הרעיון, ושתי המסירות בחרו בשתיהן. נביא את שתיהן, כי ההבדל ביניהן מלמד.
דרך I — העד הוא תסריט ריצה מלא (מסירה 11 והסיכום)
אורך התסריט. מספר הצעדים בכל ריצה של על חסום ב‑, ולכן מספר ההחלטות חסום גם הוא ב‑. כל החלטה היא שלשה הנתונה ב‑ ביטים. נסמן פולינום ב‑, שכן הגורם הראשון קבוע התלוי רק ב‑.
הבנייה. מכונה דטרמיניסטית ; על קלט :
- מפרשת את כרשימת שלשות, ומוודאת ש‑ מתאר ריצה חוקית ומקבלת של על .
- אם כן — קבל; אחרת — דחה.
מה נבדק בשלב 1? מסמלצת: מחזיקה את הקונפיגורציה הנוכחית (מצב, תוכן סרט, מיקום ראש), מתחילה מהקונפיגורציה ההתחלתית של על , וקוראת את השלשות בזו אחר זו. לכל שלשה היא בודקת מול שהמעבר המבוקש הוא באמת אחת מהאפשרויות המותרות מהקונפיגורציה הנוכחית, ואם כן — מעדכנת. בסיום היא בודקת שהמצב הסופי ב‑ ([00:49:55]–[00:50:25], מסירה 11).
דרך II — העד הוא רצף ביטי בחירה (מסירה 10)
לפי משפט 3 נניח ש‑ מנורמלת: בכל מעבר לכל היותר שתי אפשרויות. (אם לא — נחליף אותה ב‑ מהמשפט, שזמן ריצתה , ונקרא לפולינום החדש .) כעת די בביט אחד לכל צעד, ולכן נסמן פשוט
הבנייה. מכונה דטרמיניסטית בעלת שני סרטים; על קלט :
- אתחול: העתק את אל הסרט השני ומחק אותו מהסרט הראשון, כך שעל הסרט הראשון נשאר רק .
- סימולציה: סמלץ את ריצת על ; בכל צעד שבו ל‑ יש בחירה בין שתי אפשרויות — אם הראש שעל הסרט השני קורא , בצע את האפשרות הראשונה; אם הוא קורא , בצע את השנייה. בסוף כל צעד הזז את הראש שעל הסרט השני ימינה. החזר את התשובה שאליה הגיעה הסימולציה.
למה זה חוקי. מכונה דטרמיניסטית אינה יכולה "להריץ" מכונה אי‑דטרמיניסטית — הכיוון ההפוך אפשרי, לא זה ([01:45:08], מסירה 10). הפתרון: בבנייה הזו אין ל‑ שום בחירה, כי כל בחירה נקבעת מראש על ידי הביט הנוכחי שעל הסרט השני. פורמלית, במקום מעבר אחד עם שתי אפשרויות יש ל‑ שני מעברים דטרמיניסטיים נפרדים, המובחנים לפי התו הנקרא על הסרט השני.
ההבדל המהותי בין שתי הדרכים. בדרך I יש מחרוזות שאינן מתארות ריצה חוקית כלל, ולכן המוודא חייב לבדוק חוקיות מול . בדרך II כל מתארת ריצה חוקית של — פשוט מפני שכל ביט בוחר בין שתי אפשרויות שקיימות ממילא — ולכן אין מה לבדוק, רק להריץ. זה מה שהלמה של משפט 3 קונה לנו.
נכונות (משותפת לשתי הדרכים)
יהי .
אם : מכיוון ש‑ מכריעה את אי‑דטרמיניסטית, קיימת ריצה מקבלת של על . נתבונן בריצה כזו. ראשית נחסום את אורכה: נתון ש‑, וזהו חסם על הריצה הארוכה ביותר; בפרט מספר הצעדים בריצה המקבלת הספציפית הזו הוא ([01:50:59]–[01:51:34], מסירה 10). לכן מספר הבחירות בה , ורצף הבחירות מתקודד ב‑ באורך : בדרך I כרצף שלשות, בדרך II כרצף ביטים שבו הביט ה‑ מתאים לבחירה שביצעה בצעד ה‑ ( לאפשרות הראשונה, לשנייה). על הקלט הסימולציה של עוברת בדיוק לאורך הריצה הזו ומסתיימת במצב מקבל, ולכן מקבלת.
אם : אזי אין ריצה מקבלת של על כלל. תהא כלשהי. בדרך II, מגדירה ריצה יחידה של על , ומכיוון שאין ריצה מקבלת — הריצה הזו דוחה, ולכן דוחה את . בדרך I, אם אינה חוקית תגלה זאת מול ותדחה; ואם היא חוקית, היא מתארת ריצה של , שאינה מקבלת, ולכן תדחה בסוף. בשני המקרים: לכל , המכונה דוחה.
קיבלנו בדיוק את תנאי (2): שעבורה מקבלת את .
הערה: המרצה במסירה 10 עצר כאן באמצע ותיקן את עצמו בקול ([01:56:24]–[01:57:25]): הוא הוכיח את שני הכיוונים אך לא סגר במפורש את המסקנה "ולכן ", ואמר "אולי צריך להוסיף — זה מקור הבלבול". הניסוח שלמעלה סוגר את השרשרת במפורש.
שאלה מהכיתה: מה מבטיח שהסימולציה תסתיים לפני ש‑ ייגמר? ([01:59:30]–[02:01:38], מסירה 10)
זו השאלה הטובה ביותר שנשאלה בשיעור. אם מתקדמת ביט אחד לכל צעד סימולציה, מה מונע מצב שבו הריצה המסומלצת עוד לא הסתיימה ו‑ כבר אזל?
התשובה: החסם הוא חסם על הריצה הארוכה ביותר של על — כלומר על כל ריצה, ולא משנה אילו בחירות בוצעו. לכן, יהיה אשר יהיה, הסימולציה עוצרת אחרי צעדים, וזה בדיוק אורך . שימו לב שהתשובה אינה נשענת על כך ש‑ מקבלת, ואינה נשענת על מבנה כלשהו של — היא נובעת אך ורק מהנתון על זמן הריצה. (סטודנטית אחרת הציעה שהדבר נובע מכך שהמכונה עוצרת במצב מקבל; זו אינה התשובה, כי היא לא הייתה מכסה ריצות דוחות.)
ניתוח יעילות
נעשה אותו לפי דרך II, שבה הוא נקי יותר. יהיו ו‑.
- שלב 1 (העתקת לסרט השני): מעבר אחד על הקלט — צעדים.
- שלב 2 (הסימולציה): לכל היותר צעדי סימולציה, וכל צעד עולה מספר קבוע של פעולות (קריאת ביט, התייעצות בטבלת , עדכון, הזזת שני הראשים).
נגדיר — פולינום. אז כאשר המעבר האחרון הוא חסם מלמעלה גס אך תקף: החלפנו ב‑, מה שרק מגדיל ([02:03:43]–[02:04:13], מסירה 10). כלומר זמן הריצה של פולינומי באורך הקלט שלה, כנדרש בתנאי (1).
לבסוף, היא דו‑סרטית; לפי סעיף (ב) ברקע קיימת חד‑סרטית שקולה שזמן ריצתה חסום ב‑ — עדיין פולינום. לכן קיימים (נניח ) ו‑ ומכונה דטרמיניסטית המקיימים (1) ו‑(2), כלומר .
סיכום הכיוון. בהינתן מכונה אי‑דטרמיניסטית המכריעה את , בנינו מוודא — מכונה שאינה מכריעה את אך יודעת לוודא אותה — שהעד שהיא מצפה לו הוא רצף הבחירות שיש לבצע כדי להגיע למצב מקבל.
מכיוון ששני הכיוונים הוכחו, .
מבט לאחור: ו‑ כמקרים פרטיים. אם מפעילים את כיוון ב' על המכונה של ממשפט 1, מקבלים verifier שהעד שלו הוא תסריט הריצה המלא. אבל למכונה ההיא מבנה מיוחד — האי‑דטרמיניזם מרוכז כולו בשלב 2 — ולכן כל הבחירות שמחוץ לשלב 2 נקבעות ביחידות ואפשר להשמיטן. מה שנשאר מהתסריט הוא בדיוק הביטים של ההשמה. באותו אופן בדיוק, במכונה של נשארים מהתסריט רק הביטים של ושל . זו הסיבה שהעד ה"טבעי" הוא ההשמה או זוג הגורמים, ולא היסטוריית החישוב: התסריט הוא הבנייה הכללית, וההשמה היא הדחיסה שלה במקרה הפרטי.
משפט 5: שני החסמים הכרחיים
(א) ויתור על החסם על אורך העד מוריד את ההגדרה ל‑. נגדיר: אם קיימת מכונה דטרמיניסטית הרצה בזמן פולינומי באורך כל הקלט שלה, כך ש‑, ללא כל חסם על . אזי .
הוכחה. () בהינתן כזו, המכונה שעל עוברת על כל בסדר לקסיקוגרפי ומריצה את , עוצרת ומקבלת ברגע שנמצאה מקבלת, מזהה את ; לכן . () תהא ותהא מכונה המזהה אותה. נגדיר שמקבלת אם ורק אם מקודדת חישוב מקבל של על — בדיקה פולינומית באורך , בדיוק כמו בכיוון ב'. אם אז עוצרת ומקבלת ולכן קיים כזה; אם אין חישוב מקבל ולכן אין .
זהו בדיוק המשפט מקורס החישוביות: אם ורק אם קיים פרדיקט דו‑מקומי כריע כך ש‑. הקשר הזה עלה בשתי המסירות באופן בלתי תלוי — במסירה 11 המרצה הצביע עליו מיוזמתו ([00:22:11]), ובמסירה 10 סטודנט שאל עליו ישירות ([00:43:55]). התשובה שם: "זה בדיוק אותו משפט אפיון, עד כדי כך ששם לא דיברנו על זמן ריצה… ב‑ הייתה לנו עדות לא מוגבלת באורך; כאן אורך העדות צריך להיות פולינומי, כי אני לא מאפשר הוכחות ארוכות מדי — אם כן, רק לקרוא אותה היה לוקח זמן אקספוננציאלי" ([00:44:26], מסירה 10). כלומר ההבדל היחיד בין האפיון של לבין האפיון של הוא שני החסמים הפולינומיים.
(ב) ויתור על החסם על זמן האימות מנפח את המחלקה. אם נדרוש פולינומי אך נרשה ל‑ לרוץ בזמן , המחלקה המתקבלת מכילה את במלואה: קחו (עד ריק) והריצו את המכריע האקספוננציאלי ישירות. מכיוון ש‑ ממשפט היררכיית הזמן, זו בבירור אינה המחלקה שביקשנו לאפיין.
המסקנה. ההגדרה חייבת את שני החסמים בו‑זמנית: העד קצר, והבדיקה מהירה.
דוגמאות ותרגילים מהשיעור
דוגמה 1: מעקב מלא אחרי המכונה של
תהא הנוסחה (משוחזרת; המרצה שרטט נוסחה בת חמישה משתנים על הלוח, [00:06:34], מסירה 11)
שלב 1 (דטרמיניסטי). סריקה וספירה: חמישה משתנים, .
שלב 2 (אי‑דטרמיניסטי). כתיבת חמישה ביטים על הסרט השני. יש ריצות אפשריות.
ריצה מקבלת. נניח שנכתב , כלומר — הביט ה‑ הוא הערך של ([00:07:06], מסירה 11).
- פסוקית 1: , , ⟶ מסופקת.
- פסוקית 2: ⟶ מסופקת.
- פסוקית 3: ⟶ מסופקת.
- פסוקית 4: ⟶ מסופקת.
כל הפסוקיות מסופקות, ולכן בריצה זו המכונה מקבלת, ומכאן .
ריצה דוחה. בריצה שבה נכתב : פסוקית 4 היא — אינה מסופקת, ולכן בריצה זו המכונה דוחה. זה אינו סותר את ההכרעה: להכרעה אי‑דטרמיניסטית מספיקה ריצה מקבלת אחת.
העד. בשפת משפט 4: הוא העד לשייכות , והמוודא הוא "הצב את ב‑ וחשב".
דוגמה 2: אותו מופע דרך תסריט ריצה (הכיוון ההפוך)
נפעיל את דרך I של כיוון ב' על המכונה של ועל אותו . תסריט הריצה של הענף המקבל הוא רצף השלשות של כל הצעדים: ראשית שלשות של שלב הספירה — כולן קבועות, כי השלב דטרמיניסטי; אחריהן חמש שלשות שבהן התו הנכתב הוא בהתאמה — אלה השלשות היחידות שבהן הייתה בחירה; ואחריהן שלשות של שלב הבדיקה, גם הן קבועות. המוודא מקבל את השרשור כ‑, מסמלץ שלשה‑שלשה מול , ורואה שהריצה חוקית ומסתיימת במצב מקבל.
בדרך II התמונה נקייה יותר: אחרי הנרמול, הביטים היחידים שיש בהם אינפורמציה הם חמשת הביטים — בדיוק העד מדוגמה 1. שאר הצעדים דטרמיניסטיים ולכן הביט שלהם נקבע ביחידות.
דוגמה 3: הוא פריק — מקצה לקצה בשני המודלים
במודל האי‑דטרמיניסטי (משפט 2). קלט (כלומר 8), .
- שלב 1: המכונה כותבת באופן אי‑דטרמיניסטי מספר באורך . באחת הריצות היא כותבת .
- שלב 2: באותה ריצה היא כותבת .
- שלב 3: בדיקה — , , , : עוברת.
- שלב 4: כפל ארוך — .
- שלב 5: השוואה ל‑: שווה ⟶ קבל.
בריצה אחרת המכונה כותבת : שלב 5 מגלה ⟶ דוחה. בריצה שלישית : שלב 3 דוחה מיד. אין בכך פגם — קיימת ריצה מקבלת, ולכן .
לעומת זאת עבור : כל זוג עם מקיים , ולכן כל ריצה דוחה, ובצדק .
במודל המוודא (הגדרה 1). העד הוא באורך , המפורש כשני מספרים בני ביטים כל אחד. עבור : , כלומר . המוודא (1) בודק ש‑ ו‑; (2) מחשב ; (3) משווה ל‑. שתיים ראשונות , הכפל — פולינומי. הפולינום שמגביל את אורך העד הוא ([00:50:45], מסירה 10). לכן , וממשפט 4 גם — הפעם בלי לבנות NTM כלל.
תיקון: בהקלטה, בגרסת המוודא, המרצה תיאר רק את הכפל וההשוואה והשמיט את בדיקת הטווח ([00:49:43]–[00:50:15], מסירה 10). בלעדיה העד היה מתקבל עבור כל , וכל מספר היה נראה פריק. הבדיקה כן מופיעה בגרסת ה‑NTM של אותה הרצאה (שלב 3, [00:17:29]), ולכן ברור שמדובר בהשמטה בעל פה. הוחזרה כאן.
דוגמה 4 (תוספת עורך):
. העד הוא רשימת קודקודים; אורכה — פולינומי בקלט. האימות: לוודא שכל הקודקודים שונים, שיש בדיוק מהם, ושכל אחד מ‑ הזוגות הוא קשת ב‑ — בדיקות. לכן . הדוגמה מובאת כתרגול נוסף לתבנית "עד + אימות" ולא נאמרה באף אחת מהמסירות.
תרגיל: המבוך כמודל ([00:41:16], מסירה 11)
השאלה שהמרצה שאל את הכיתה: נתון מבוך, ומכונה שבכל התפצלות בוחרת לאן לפנות. המבוך "פתיר" אם ורק אם קיימת סדרת בחירות שמוציאה החוצה. איזו עזרה מינימלית תספיק לי, לפני הכניסה, כדי לוודא שאפשר לצאת?
הפתרון המלא. לא מצפן — הוא מצביע צפונה, ואיני יודע היכן היציאה. לא שלטים — הם בתוך המבוך ולא אצלי. מפה מספיקה, אך נותנת יותר מדי: היא מאפשרת לי לפתור את המבוך, לא רק לוודא פתרון. העזרה המינימלית היא רשימת פניות באורך מספר הצמתים שאעבור: "שמאלה, ימינה, ישר, ישר, שמאלה…". איתה אני נכנס, ממלא אחר ההוראות, ורואה אם יצאתי — בלי לקבל אף החלטה בעצמי. התרגום: הרשימה היא תסריט הריצה, וכל "פנייה" היא בחירה ב‑. אחרי משפט 3 אפשר לומר יותר: אם בכל צומת יש בדיוק שתי אפשרויות, הרשימה היא מחרוזת ביטים באורך מספר הצמתים.
תרגיל: נרמול מכונה עם 10 אפשרויות ([00:58:15]–[01:00:22], מסירה 10)
השאלה שהמרצה שאל את הכיתה: נתון מעבר של מכונה אי‑דטרמיניסטית שבו יש 10 אפשרויות. איך מגדירים מכונה שקולה שבה לכל מעבר לכל היותר שתי אפשרויות?
הצעת סטודנט: "לעשות את מה שהמכונה עושה, או לא לעשות". זה הכיוון הנכון, אך צריך לוודא ששקילות נשמרת: אם למכונה המקורית 10 אפשרויות, המכונה החדשה חייבת לאפשר להגיע לכל אחת מהן.
הפתרון המלא. מפצלים את השאלה "בחר אחת מתוך 10" ל‑10 שאלות בינאריות שרשוריות: "האם לבצע את האפשרות הראשונה, או לעבור למצב שאומר 'בחר אחת מתוך התשע הנותרות'?" — וכן הלאה, עד שבמצב האחרון נשארת אפשרות יחידה. זו בדיוק הבנייה של משפט 3. המחיר: על כל צעד מקורי מבצעים לכל היותר צעדים — קבוע שאינו תלוי בקלט, ולכן זמן הריצה גדל לכל היותר בגורם קבוע.
שאלה מהכיתה: האם זה כמו fixer? ([00:33:49], מסירה 11)
השאלה: תנאי (2) נראה כמו הפעלת מכונה על שני ארגומנטים, כמו העיקרון של נקודת שבת.
התשובה: לא. במשפט נקודת השבת הפואנטה היא שמתקבלת אותה תשובה עבור אובייקט מקובע. כאן אינה מחויבת להחזיר את אותה תשובה על כל — להפך, זה כל העניין: על אחת היא מקבלת ועל אחרת דוחה. השאלה שאנחנו שואלים אינה "מה מחזירה" אלא "האם קיימת שעבורה היא מקבלת".
הערות מהשיעור
- [00:00:34] מסירה 11 / [00:19:33] מסירה 10 — אל תגידו "מגרילה". שני המרצים, בנפרד, הזהירו מפני המונח. האי‑דטרמיניזם אינו הגרלה, אינו דגימה ואינו אקראיות. המונח "מנחשת" נפוץ אך שניהם ממליצים להימנע ממנו: "הוא עצמו לא טעות, אבל הוא מקרב אתכם לטעות". במסירה 10 סטודנט שאל במפורש "האם זה אומר שהיא לוקחת מספר אקראי?", והתשובה: לא בדיוק — כשמדברים על אקראיות יש גם התפלגות הסתברות על התוצאות, וכאן אין. הניסוח המדויק: המכונה בוחרת או כותבת מחרוזת באופן אי‑דטרמיניסטי.
- [00:01:04] מסירה 11 / [00:24:22] מסירה 10 — איפה בדיוק האי‑דטרמיניזם. בשתי המכונות שראינו הוא מרוכז בשלב אחד בלבד; כל השאר דטרמיניסטי. זו התובנה שממנה נולד כל השיעור.
- [00:02:45] מסירה 11 — מול . פורמלית עובדים עם הקידוד, כי שפה היא קבוצת מחרוזות; בראש חושבים על הנוסחה.
- [00:14:17] מסירה 10 — עד כמה מפורט לכתוב מכונה. המרצה כתב את במפורש פעם אחת בכוונה, והדגיש: מכאן והלאה כותבים מכונות ברמת high level ("כתוב באופן אי‑דטרמיניסטי מספר באורך…"), ולא תראו את הכתיבה המפורטת בשום מקום אחר. אבל חשוב לראות אותה פעם אחת כדי להבין שההגדרות באמת עומדות מאחורי הניסוח המקוצר.
- [00:15:35] מסירה 11 — למה זו לא מכונת הכרעה. מכונה שמכריעה את מקבלת נוסחת CNF ומחזירה true/false. כאן שינינו את צורת הקלט — הוא הפך לזוג — ולכן זו כבר לא מכונת הכרעה אלא מוודא.
- [00:17:43] מסירה 11 / [00:39:10] מסירה 10 — "הגדרה שקולה" היא בעצם משפט. ברגע שמוסרים הגדרה שנייה לאותה מחלקה כבר טוענים טענה. במסירה 10 המרצה נזהר במיוחד וקרא למחלקה החדשה עד שהוכיח את השוויון.
- [00:26:23] מסירה 11 — ההברקה שמחברת בין שתי ההגדרות. ה"קיים " בהגדרת ה‑verifier מתחבר בדיוק ל"קיימת ריצה אפשרית מקבלת" שבהגדרת ההכרעה האי‑דטרמיניסטית. שני כמתי הקיום הם אותו כמת.
- [00:27:27] מסירה 11 — מה המכונה "מחזיקה בבטן". מקבלת כקלט רק את ; את היא אינה מקבלת כקלט — היא מקודדת בתוך הגדרתה. הדבר היחיד שחסר לה הוא .
- [00:37:36] מסירה 10 — המודל האי‑דטרמיניסטי פיקטיבי. אין מכונות אי‑דטרמיניסטיות במציאות. ההגדרה עם המוודא היא זו שנותנת ל‑ משמעות.
- [00:45:28]–[00:46:32] מסירה 10 — המשמעות הפילוסופית של מול . היא מחלקת הבעיות שבהן לקלטים בפנים יש עדות משכנעת, ולקלטים בחוץ אין אף עדות — כלומר "אי אפשר להוכיח טענות לא נכונות". לכן השאלה מול היא השאלה: האם יש משמעות להוכחות? האם כל דבר שאני יודע לבדוק הוכחה עבורו, אני גם יודע להוכיח בעצמי? האינטואיציה מהעולם היום‑יומי אומרת שקל יותר לבדוק הוכחה מאשר לכתוב אותה — כלומר שמשערים — אבל אין לכך הוכחה.
- [01:19:11] מסירה 10 — כיוון הבנייה. סטודנט הציע להפוך כל מצב אי‑דטרמיניסטי ל"סינגלטון". המרצה הבהיר שבכיוון הזה נתונה מכונה דטרמיניסטית ומבקשים לבנות אי‑דטרמיניסטית — ולכן אין מה "לצמצם"; מה שחסר הוא לייצר את . הבלבול טבעי, ושווה לשים לב לו: בכל אחד משני הכיוונים המכונה הנתונה והמכונה הנבנית מתחלפות בתפקידיהן.
- [01:45:08] מסירה 10 — אסימטריה שכדאי לזכור. מכונה אי‑דטרמיניסטית יכולה להריץ מכונה דטרמיניסטית (כל מכונה דטרמיניסטית היא בפרט אי‑דטרמיניסטית). ההפך אינו נכון — ולכן בכיוון ב' חייבים לספק את הבחירות מבחוץ.
- [00:38:34] מסירה 11 / [01:29:21] מסירה 10 — מה נדרש על פולינומים. סכום, מכפלה והרכבה של פולינומים הם פולינום. במסירה 10 המרצה הוסיף שזו אחת הסיבות שמסתכלים דווקא על ו‑: אלגוריתם פולינומי שמריץ אלגוריתם פולינומי נשאר פולינומי — תכונה שאינה מתקיימת בזמן ליניארי.
- [00:52:39] מסירה 11 — לגבי המבחן והתרגיל. הכיוון verifier לא נכתב במלואו במסירה 11, והמרצה אמר שיחזרו עליו. הוא ציין שיש שאלה בתרגיל הבית הנשענת על החומר, ושכדי לפתור אותה אין צורך בהוכחה עצמה — צריך את הרעיון של תסריט ריצה ואת ניסוח הטענה. במסירה 10 ([02:13:45]) נאמר שבסוף אותו תרגיל יש שתי שאלות שאי אפשר לפתור עד שיילמד הנושא הבא (טכניקת הריפוד).
פערים בין הסיכום להקלטה
- מקור: הקלטה 12 (
0_fFIUnWa4g). הפער: אינה שייכת לשיעור זה כלל — כולה טכניקת הריפוד: , , והמסקנה . ההכרעה: סומנהcoverage: none; החומר שייך לשיעור אחר בסדרה. - מקור: הקלטה 10 (
zcCQY3oT40Y) מול הקלטה 11. הפער: שתי המסירות בונות את אותו משפט על שתי דוגמאות שונות לגמרי — מסירה 11 על (בהמשך לשיעור 5), מסירה 10 על . אף אחת אינה מזכירה את הדוגמה של השנייה. ההכרעה: שתיהן נכללו במלואן (משפט 1 ומשפט 2), כי כל אחת מדגימה את אותה תבנית בהקשר אחר. הן מאשרות זו את זו: שתיהן מגיעות ל‑ באמצעות , בשתיהן האי‑דטרמיניזם מרוכז בשלב אחד. - מקור: הקלטה 10, [00:54:26]–[01:11:42]. הפער: למת הנרמול (לכל היותר שתי אפשרויות בכל מעבר, במחיר גורם קבוע) אינה מופיעה בסיכום ואינה מופיעה בהקלטה 11 כלל. ההכרעה: נוספה כמשפט 3 עם הבנייה המלאה, טענת ההתאמה, וחסם . היא משנה את חשבון אורך העד בכיוון ב' — ראו הבא.
- מקור: שתי המסירות. הפער: חשבון אורך העד בכיוון verifier שונה. מסירה 11 והסיכום (עמוד 3): העד הוא תסריט שלשות, . מסירה 10: אחרי נרמול העד הוא ביט אחד לצעד, . ההכרעה: שתיהן נכונות. הצגנו את שתיהן כ"דרך I" ו"דרך II", כאשר דרך I שומרת על סימון הסיכום ודרך II היא הטיפול העשיר יותר; ההבדל המהותי — שבדרך II כל מתארת ריצה חוקית ולכן אין מה לוודא — נכתב במפורש.
- מקור: עמוד 3 בסיכום. הפער: נכתב ללא חלקים עליונים. ההכרעה: תוקן ל‑; מספר ביטים חייב להיות שלם. אין השפעה על הפולינומיות.
- מקור: הקלטה 10, [00:49:43]–[00:50:15]. הפער: בגרסת המוודא ל‑ המרצה השמיט את בדיקת , ותיאר רק כפל והשוואה. זו שגיאה מתמטית: בלעדיה מתקבל לכל , וכל מספר נראה פריק. ההכרעה: הבדיקה הוחזרה בגוף הדוגמה. היא מופיעה בגרסת ה‑NTM של אותה הרצאה ([00:17:29]), ולכן ברור שמדובר בהשמטה בעל פה.
- מקור: עמוד 2 בסיכום מול הקלטה 10. הפער: בגוף ההגדרה בסיכום נכתב (אורך מדויק), ואילו בהערה הכחולה בצד נכתב (אורך כלשהו). ההבדל אינו קוסמטי: בלי חסם אורך המחלקה היא ולא . ההכרעה: הוכרע לטובת האורך המדויק — מסירה 10 מנסחת גם היא "מחרוזת בינרית באורך " ([00:40:15]), כלומר שני מקורות בלתי תלויים נגד ההערה הכחולה, שהיא קיצור בלתי‑פורמלי. הנקודה עצמה הפכה למשפט 5(א).
- מקור: שתי המסירות. הפער: שמות שני הפולינומים הפוכים. הסיכום ומסירה 11: = זמן הריצה, = אורך העד. מסירה 10: = זמן הריצה, = אורך העד. ההכרעה: אומץ סימון הסיכום לאורך כל הקובץ; ההבדל מתועד כאן וב‑
open_questionsכדי שקורא שיאזין להקלטה 10 לא יתבלבל. - מקור: הקלטה 11, [00:51:00]. הפער: הכיוון verifier נמסר שם כ"רעיון הוכחה" בלבד. ההכרעה: הפער נסגר לגמרי על ידי מסירה 10, שמוסרת את הכיוון הזה במלואו — הבנייה הדו‑סרטית, שני כיווני הנכונות, וניתוח הזמן ([01:37:48]–[02:05:50]). מה שהיה בגרסה הקודמת של הקובץ שחזור עורך הוא כעת חומר מוקלט.
- מקור: שני המקורות. הפער: בדרך I אף אחד מהם אינו מטפל בפער שבין "ריצה מקבלת עשויה להיות קצרה מ‑" לבין הדרישה בדיוק. ההכרעה: בדרך II הבעיה נעלמת — הסימולציה פשוט עוצרת, והביטים הנותרים אינם נקראים, וזו בדיוק תשובת המרצה לשאלת הסטודנט ב‑[01:59:30]. בדרך I מרפדים את התסריט לאורך ומגדירים את המוודא לעצור ולקבל ברגע שהסימולציה הגיעה למצב מקבל. הניסוח שקול.
- מקור: הקלטה 11, [00:06:34]. הפער: הנוסחה הקונקרטית בת חמישה המשתנים נכתבה על הלוח ואינה נשמעת. ההכרעה: נבדק גם מול מסירה 10 — שאינה עוסקת ב‑ כלל ולכן אינה יכולה לסייע. הנוסחה נותרת שחזור: נבחרה נוסחת CNF בת חמישה משתנים שההשמה שנאמרה בהקלטה אכן מספקת אותה.
- מקור: משפט 5, סעיף (א). הפער: בגרסה הקודמת של הקובץ סומן כתוספת עורך. ההכרעה: מסירה 10 מאשרת אותו — סטודנט שאל ישירות על הקשר לאפיון והמרצה אישר שזה "בדיוק אותו משפט אפיון", והסביר במפורש שחסם אורך העד הוא ההבדל ([00:43:55]–[00:44:56]). התיוג שונה מ"תוספת" ל"מבוסס מקור". סעיף (ב) נותר הרחבת עורך.
- מקור: כל מקורות השיעור. הפער: רביעיית המכונה אינה נכתבת במפורש באף אחד מהם, ובפרט מצב ההתחלה אינו מופיע. ההכרעה: אומצה הצורה המחייבת של הסדרה, , והמצבים המקבלים מסומנים במקום .
- מקור: עמוד 4 בסיכום. הפער: העמוד מכיל חמש שורות בלבד (סיום ההוכחה) וכותרת כחולה קצרה ומעט מטושטשת. ההכרעה: תוכן השורות ברור ושולב במלואו בכיוון ב'; הכותרת אינה נושאת מידע מתמטי ולא שוחזרה.
- מקור: תוספת עורך. הפער: דוגמת ומשפט 5(ב) אינם מופיעים באף מקור. ההכרעה: נכללו כתוספת מסומנת, כתרגול נוסף וכהשלמת התמונה "למה ההגדרה נראית כך".
סיכום ונקודות למבחן
מה חייבים לזכור בעל פה
- הניסוח המדויק של האפיון. ⟺ קיימים פולינומים ומכונה דטרמיניסטית הרצה בזמן על כל קלט , כך שלכל : ש‑ מקבלת את . אם שכחתם אחד מהשלושה — "דטרמיניסטית", " פולינומי", "אם ורק אם" — הניסוח שגוי.
- שתי הבניות. verifier ⟶ NTM: כתוב באופן אי‑דטרמיניסטי, הרץ . NTM ⟶ verifier: העד הוא רצף הבחירות; או עם תסריט שלשות ובדיקת חוקיות, או — אחרי נרמול — עם ביט לצעד ובלי בדיקת חוקיות.
- למת הנרמול. לכל NTM יש שקולה שבכל מעבר לכל היותר שתי אפשרויות, בעלות גורם קבוע בזמן.
- חשבון הזמן בכיוון א'. , וסגירות פולינומים לסכום והרכבה.
- שתי הדוגמאות עם החסם המספרי: ו‑, בשניהם מ‑.
מלכודות סטנדרטיות
- לומר ש‑ מכריעה את . לא — מקבלת , לא . היא מוודא.
- להשתמש רק בכיוון אחד של ה"אם ורק אם" בתנאי (2). בלי הכיוון "אם קיים אז " לא ניתן לשלול ריצה מקבלת עבור .
- לשכוח את החסם על אורך העד. בלי מקבלים , לא .
- לחסום את זמן האימות ב‑ במקום ב‑. ההגדרה חוסמת את זמן הריצה באורך הקלט המלא של , שהוא הזוג.
- לשכוח למה הסימולציה עוצרת. בכיוון ב' העצירה נובעת מ‑ — חסם על הריצה הארוכה ביותר, ולכן על כל ריצה — ולא מכך שהמכונה מקבלת.
- למדוד את הזמן ביחס למספר ולא לאורך הקידוד שלו. זו הטעות שהפילה את האלגוריתם הנאיבי ל‑: איטרציות הן ביחס לאורך הקלט.
- לומר "מגרילה" / "בוחרת אקראית". אין אקראיות במודל האי‑דטרמיניסטי.
- לבלבל בין העד לבין המפה. העד הוא המידע המינימלי המספיק לאימות, לא פתרון מלא.
צ'ק‑ליסט: מה סטודנט אמור לדעת לעשות אחרי השיעור
- לנסח את שתי ההגדרות של ולהסביר איזו מכונה דטרמיניסטית ואיזו לא.
- בהינתן שפה חדשה, להציע עד, להוכיח שאורכו פולינומי, לתאר את אלגוריתם האימות ולחסום את זמנו — ובכך להוכיח שייכות ל‑ בלי לבנות NTM כלל.
- בהינתן NTM פולינומית, לבנות ממנה verifier ולחשב את במפורש — בשתי הדרכים.
- בהינתן verifier, לבנות ממנה NTM ולהראות שזמן הריצה פולינומי, תוך ציון היכן נכנסת סגירות הפולינומים.
- לנרמל מכונה אי‑דטרמיניסטית לשתי אפשרויות למעבר ולחסום את מחיר הנרמול.
- לכתוב פעם אחת את של שלב אי‑דטרמיניסטי במפורש, ולהסביר איך "כתוב מחרוזת באופן אי‑דטרמיניסטי" מתורגם למעברים.
- להסביר מה קורה לכל אחת מההגדרות אם מסירים את החסם על אורך העד או על זמן האימות.
הסיכום הכתוב שעליו נשען הקובץ: גיא סופר.
