בקצרה
- זהו מפגש חזרה למבחן: אין בו תיאוריה חדשה, אלא פתרון מלא של שאלה אחת מתרגיל הבית — שאלה שכולה ברמת ההגדרה, כדברי המרצה: "אין שם שום דבר פרט להגדרה" [00:00:30].
- נתונות שלוש מחלקות , שכל אחת מהן נראית כמעט בדיוק כמו הגדרת ה‑verifier של (שיעור 6), ולכל אחת יש להכריע שלוש שאלות נפרדות: האם היא מכילה את , האם היא מוכלת ב‑, והאם היא שווה לה.
- התשובות: (ההבדל היחיד הוא "דוחה" במקום "מקבלת", והוא ניתן לגישור על ידי היפוך מצבי הקבלה והדחייה); , ולמעשה היא מחלקת כל השפות (ההבדל הוא "לכל" שהוחלף ב"קיים", והוא ניתן לגישור רק בכיוון אחד); (העד מקוצר לאורך קבוע, ולכן אפשר לעבור על כולו), ולכן נכון, בעוד ש‑ שקול לשאלה הפתוחה .
- מעבר לתשובות, השיעור הוא בעיקרו שיעור בשיטה. המרצה מפרק את פתרון שאלות מהסוג הזה לארבעה שלבים קבועים, שניים מחשבתיים ושניים טכניים [00:05:45]–[00:06:17]; מי שמפנים אותם מקבל מתכון לכל שאלה כזו במבחן.
- שני כשלים לוגיים חוזרים מתועדים כאן במפורש: המעבר מ"לכל" ל"קיים" מותר רק כשהתחום אינו ריק [00:32:54], והטענה "ממשפט ההיררכיה קיימת שפה שאינה ב‑" בלי להסביר איך — תשובה חלקית בלבד [00:53:30].
- קו הגבול העדין ביותר בשיעור: להוכיח קיום צריך להציג עצם אחד; להוכיח הכלה צריך לצטט את ההגדרה. המרצה מסרב במכוון להוכיח יותר ממה שנדרש, גם כשהטענה החזקה יותר נכונה [00:57:10].
רקע ותלויות
(א) בנוסח ה‑verifier (ראו שיעור 6). זו ההגדרה שכל השאלה סובבת סביבה, ולכן היא מובאת כאן במלואה. שפה שייכת ל‑ אם קיים וקיימת מכונת טיורינג דטרמיניסטית עם זמן ריצה פולינומי, כך שלכל : המכונה נקראת verifier, המחרוזת נקראת עד (witness). שיעור 6 הוכיח שהגדרה זו שקולה להגדרה דרך מכונה אי‑דטרמיניסטית פולינומית, כלומר ; כאן נשתמש בשתי הצורות בלי להבדיל ביניהן.
שימו לב לניסוח: בשיעור 6 החסם על אורך העד נכתב כפולינום , וכאן הוא נכתב כ‑. זה אותו דבר — כל פולינום נחסם על ידי עבור גדול דיו, ואת מספר סופי של הערכים הקטנים אפשר תמיד "לצרוב" בתוך המכונה [00:22:12]. המרצה חוזר ומדגיש: היצמדו לניסוח שבו נכתבה השאלה [00:09:30] — אם השאלה כותבת , כתבו .
(ב) ומשמעות "מכריעה" (ראו שיעורים 1–2). . מכונה מכריעה שפה אם לכל היא עוצרת, מקבלת אם ודוחה אם . הממשק חשוב: מכונה מכריעה מקבלת רק את , ואילו verifier מקבל את הזוג ולכן אינו מכריע דבר [00:30:17].
(ג) שרשרת ההכלות הגסות (ראו שיעורים 2–4). מהסיכום, עמוד 2, במסגרת מודגשת: הוכח בשיעור 2, בשיעורים 2–3, בשיעור 4, בשיעור 8, ו‑ ממשפט ההיררכיה בזמן בשיעור 3.
(ד) ו‑ (מקורס החישוביות). היא מחלקת השפות הכריעות, ו‑ — בעיית העצירה — אינה בה. כדברי המרצה [00:42:15]: "בכל הקורס הזה היינו בתוך , ופירקנו את לכל מיני מחלקות כשהשאלה הייתה על המחיר". כל המחלקות שראינו — גם האי‑דטרמיניסטיות, גם ההסתברותיות — הן מחלקות של שפות כריעות.
(ה) הרכבת פולינומים (ראו שיעור 6). סכום, מכפלה והרכבה של פולינומים הם פולינום. זהו הצעד השקוף שכל ניתוח זמן ריצה בקובץ הזה נשען עליו.
הגדרות
הגדרה 1: המחלקה (סעיף א' בשאלה)
היא מחלקת השפות עבורן קיים כך שקיימת מכונת טיורינג דטרמיניסטית עם זמן ריצה פולינומי, כך שלכל מתקיים:
אינטואיציה. זו מילה במילה הגדרת ה‑verifier של , כשההבדל היחיד הוא שבמקום " מקבלת את " כתוב " דוחה את ". במילים: העד אינו מחרוזת שמשכנעת את הבודק לומר "כן", אלא מחרוזת שגורמת לו לומר "לא". מכיוון שהמכונה דטרמיניסטית ופולינומית — ולכן עוצרת תמיד — "לא לקבל" ו"לדחות" הם אותו אירוע, ואפשר להחליף ביניהם על ידי החלפת שני מצבי העצירה.
מופע. : קחו את ה‑verifier הרגיל של (הצב את ההשמה בנוסחה) והחליפו בו את מצב הקבלה במצב הדחייה. אי‑מופע (למראית עין): אין כאן אף שפה שהיא ב‑ ולא ב‑ — זו בדיוק תוצאת סעיף א'.
הגדרה 2: המחלקה (סעיף ב' בשאלה)
היא מחלקת השפות עבורן קיים כך שקיימת מכונת טיורינג דטרמיניסטית עם זמן ריצה פולינומי, כך שלכל מתקיים:
- אם אז שעבורו מקבלת את ;
- אם אז שעבורו דוחה את .
אינטואיציה. גם כאן ההשוואה היא ל‑, וההבדל הוא כמתי: בהגדרת הצד השני הוא "אם אז לכל המכונה דוחה", וכאן הוא הוחלף ב"קיים שעבורו היא דוחה" [00:17:57]. זו החלשה דרמטית: תנאי "קיים" בשני הצדדים אינו מחייב את המכונה להבחין בין ל‑ בכלל. די שהמכונה תדע לקבל על עד אחד ולדחות על עד אחר — וזה משהו שכל מכונה טיפשית יודעת לעשות.
מופע. כל שפה שהיא. אי‑מופע. אין. זו בדיוק המסקנה שסטודנט העלה בכיתה [00:52:59]: " זה בעצם קבוצת כל השפות" — והמרצה אישר שהטענה נכונה, אך סירב להוכיח אותה כי אין בה צורך (ראו הערות).
הגדרה 3: המחלקה (סעיף ג' בשאלה)
היא מחלקת השפות עבורן קיים כך שקיימת מכונת טיורינג דטרמיניסטית עם זמן ריצה פולינומי, כך שלכל מתקיים:
אינטואיציה. ההגדרה זהה אות באות להגדרת , למעט מקום אחד: אורך העד הוא ולא — כלומר קבוע שאינו תלוי בקלט כלל [00:58:53]. וזה משנה הכול: מספר העדים האפשריים הוא , שהוא קבוע, ולכן אפשר פשוט לעבור על כולם בזמן פולינומי. העד מפסיק להיות "עזרה מבחוץ" והופך לפרט טכני שאפשר לנחש בכוח.
מופע. כל שפה ב‑ (הוכחה בתרגיל 3 להלן). אי‑מופע. , אלא אם — כלומר אנחנו לא יודעים להצביע על אי‑מופע קונקרטי, וזה בדיוק תוכן החלק האחרון של הסעיף.
הגדרה 4:
מקורס החישוביות: . זו השפה שתשמש אותנו כ"עד" לכך ש‑ אינה מוכלת ב‑.
משפטים והוכחות
משפט 1: היפוך מצבי הקבלה והדחייה
טענה. תהי מכונת טיורינג דטרמיניסטית העוצרת על כל קלט, ותהי המכונה המתקבלת מ‑ על ידי החלפת מצב הקבלה ומצב הדחייה זה בזה. אזי לכל קלט : מקבלת את אם ורק אם דוחה את ; ו‑.
הוכחה. זהה ל‑ בכל רכיביה — , , , , — למעט תיוג שני מצבי העצירה. לכן על כל קלט שתי המכונות עוברות את אותה סדרת קונפיגורציות בדיוק, ובפרט עוצרות באותו מספר צעדים ובאותו מצב עצירה. מכיוון ש‑ עוצרת על כל קלט, מצב העצירה הוא בהכרח אחד משני המצבים ; ומכיוון שהתיוג הוחלף, מקבלת בדיוק כאשר דוחה.
הערה: בהרצאה זה נאמר במשפט אחד — "כי המכונה דטרמיניסטית, אני יכול להפוך את ה‑accept וה‑reject" [00:03:41]; הפירוט כאן. שימו לב היכן נכנסת הדטרמיניסטיות: במכונה אי‑דטרמיניסטית "לא מקבלת" פירושו "כל הריצות דוחות", ואילו "דוחה" של ריצה בודדת הוא אירוע אחר לגמרי — היפוך המצבים היה הופך "קיימת ריצה מקבלת" ל"קיימת ריצה דוחה", שאינה שלילת המקור. המשפט הזה נכשל למכונות אי‑דטרמיניסטיות.
הערת סגנון של המרצה [00:07:20]–[00:08:27]. כשמציגים את אין לכתוב "נגדיר מכונה"; הניסוח הנכון הוא "נסמן ב‑ את המכונה המתקבלת מ‑ על ידי החלפת מצבי הקבלה והדחייה". הסיבה: לא כתבנו אלגוריתם חדש, שינינו תיוג. "נגדיר" אינו טעות, זה עניין של סגנון — אבל הוא מטשטש את מה שבאמת קורה.
משפט 2: מ"לכל" ל"קיים" מעל תחום לא ריק
טענה. תהי קבוצה לא ריקה ותהי תכונה. אם לכל מתקיים , אז קיים שעבורו .
הוכחה. , ולכן קיים . מההנחה מתקיים.
למה זה לא טריוויאלי, ולמה חייבים לומר את זה במפורש [00:32:54]. הטענה "כל מספר שריבועו שלילי מתחלק ב‑3" היא נכונה (ריקנית), ובכל זאת לא קיים מספר שריבועו שלילי. לכן המעבר מ"לכל" ל"קיים" אינו כלל לוגי חופשי — הוא דורש את אי‑ריקות התחום. בכל השימושים בקובץ הזה התחום הוא , שהוא לעולם אינו ריק (יש בו מחרוזות), ולכן המעבר תקף.
המלצת המרצה [00:33:25]: במקום להסתמך על המעבר הזה, פשוט הציגו איבר קונקרטי. אם ידוע שכל מקיים משהו וצריך להוכיח שקיים כזה — כתבו "נתבונן ב‑". זה קצר יותר, נצמד לתבנית ההוכחה של טענת קיום, ואינו מסתמך על צעד לוגי שקל לשגות בו.
משפט 3:
טענה. .
הוכחה. לפי שיעור 8, . כל שפה ב‑ ניתנת להכרעה — קיימת לה מכונה שעוצרת על כל קלט ומכריעה אותה במקום פולינומי — ולכן . נשרשר: מקורס החישוביות , ולכן .
מסלול חלופי שהוצג בכיתה [00:41:14]–[00:46:30]. אפשר לא לצאת מ‑ בכלל. ממשפט ההיררכיה במקום (שיעור 3), באותה הוכחה בדיוק שנתנה , מקבלים : מראים , כשההכלה האמצעית ממש היא בדיוק משפט ההיררכיה. לכן קיימת , ומכיוון ש‑ נובע . המרצה ציין שהוא מרגיש פחות בנוח עם המסלול הזה, אך הוא תקף לגמרי.
מה אי אפשר לעשות [00:43:17]. אי אפשר להסיק ישירות מ‑ שקיימת שפה מחוץ ל‑: הכלה ממש בין הקצוות של שרשרת אינה אומרת לנו איזו מן ההכלות בפנים היא ממש, ולכן לא נובע ממנה כלום על עצמה. צריך משפט היררכיה שמפריד שתי מחלקות ש‑ יושבת בין הקטנה שבהן לבין עצמה.
משפט 4: — הפניה לשיעור 8, והמכונה שנשתמש בה שוב
טענה. . הוכחה: ראו שיעור 8, משפט 1.
הסיבה שמזכירים אותה כאן היא לא הטענה אלא המכונה: בהינתן verifier ופולינום לאורך העד, בונים מכונה שעל קלט עוברת על כל , מריצה את על , ומקבלת אם אחת ההרצות קיבלה. מספר האיטרציות הוא — מעריכי, ולכן מקבלים ולא . בתרגיל 3 להלן נשתמש באותו מנגנון בדיוק, אך מספר האיטרציות יהיה — קבוע — ולכן נקבל . כדברי המרצה [01:09:12]: "המכניזם הוא אותו מכניזם, רק שפה מספר האיטרציות של הלולאה קטן יותר".
דוגמאות ותרגילים מהשיעור
עמוד 1 נושא כותרת ירוקה — "פתרון מטלה 2" — וחמשת העמודים כולם הם פתרון של שאלה 3 במטלה. ניסוח השאלה, כפי שהוא מודפס בראש עמוד 1:
3. עבור כל אחת ממחלקות הסיבוכיות שלהלן קבעו האם היא מכילה את המחלקה , האם היא מוכלת בה, והאם היא שווה לה (אם ידוע; אחרת הוכיחו כי השאלה שקולה לשאלה פתוחה).
שימו לב שיש כאן שלוש שאלות נפרדות לכל מחלקה, ולא אחת. המרצה חזר על כך שלוש פעמים בסוף השיעור [01:19:38], [01:23:22], [01:24:27]: תשובה שמתייחסת רק לשוויון — גם אם היא נכונה — אינה עונה על מה שנשאל.
שיטת הפתרון בארבעה שלבים [00:05:45]–[00:06:17]:
- לזהות איזו הגדרה מוכרת קרובה ביותר להגדרה שניתנה. (מחשבתי)
- לכתוב את שתי ההגדרות אחת מול השנייה, ולאתר את ההבדל ברמת ה‑pattern matching. (טכני)
- להכריע האם אפשר לגשר על ההבדל, ובאיזה כיוון. (מחשבתי — כאן נמצא כל התוכן)
- לכתוב את ההוכחה לפי התבנית. (טכני)
"החלק שנופלים עליו הוא דווקא השלב הקודם" [00:03:09] — כלומר שלב 2, ההשוואה. המרצה מדגיש שהוא עצמו כותב את שתי ההגדרות זו לצד זו על דף, כי הוא לא מסוגל לראות את ההבדל בראש [00:02:07].
תרגיל 1 (סעיף א'): — האם מכילה, מוכלת, שווה?
זיהוי ההבדל. ההגדרה הקרובה ביותר היא בנוסח ה‑verifier. ההשוואה:
| כך ש‑ מקבלת את | כך ש‑ דוחה את |
ההבדל הוא מילה אחת, וניתן לגשר עליו לפי משפט 1.
חלק א':
תהא . לכן קיימת מכונה הרצה בזמן פולינומי, וכן קיים , כך שלכל :
נסמן ב‑ את המכונה המתקבלת מ‑ על ידי החלפת מצבי הקבלה והדחייה. לפי משפט 1, רצה בזמן פולינומי (אותו זמן ריצה בדיוק), ולכל קלט : מקבלת את אם ורק אם דוחה אותו.
נתבונן ב‑ ונתבונן ב‑. אכן רצה בזמן פולינומי, ואכן .
יהי .
כיוון ראשון. נניח . לכן קיים כך ש‑ דוחה את . נתבונן ב‑ זה. אכן (הוא התקבל מתוך ההגדרה של , ולכן באורך הנכון), ומכיוון ש‑ דוחה את , לפי משפט 1 המכונה מקבלת את .
כיוון שני. נניח . לפי ההגדרה של (בשלילת הצד הימני של האם‑ורק‑אם), לכל המכונה אינה דוחה את , ומכיוון שהיא עוצרת תמיד — היא מקבלת את . יהי ; לפי משפט 1, דוחה את .
סיכום התבנית. קיבלנו: קיימת מכונה הרצה בזמן פולינומי וקיים כך שלכל — אם אז קיים ש‑ מקבלת את , ואם אז לכל המכונה דוחה את . זו בדיוק הגדרת , ולכן .
מכאן .
על שתי השורות האחרונות [00:13:44]. המרצה רשם את "סיכום התבנית" הזה על הלוח בשחור, מסגרת נפרדת, למרות שהוא רק חוזר על מה שהוכח. הסיבה: "כשמביאים את זה ככה, המבנה קופץ החוצה" — הקישור בין ההוכחה להגדרה נעשה ברמה תחבירית ולא ברמה של אינטואיציה. אפשר לכתוב במקום זה את הצורה המקוצרת ("ולכן לכל המכונה דוחה"), וזה נכון מתמטית ומקובל, אבל המבנה פחות נראה [00:14:47].
חלק ב':
הסיכום כותב "ובאותו אופן"; ההרצאה אמרה "הכיוון השני זה אותו דבר בדיוק, אני לא חושב שאנחנו צריכים" [00:16:56]. הנה הוא במלואו.
תהא . לכן קיימת מכונה הרצה בזמן פולינומי וקיים כך שלכל : אם ורק אם קיים ש‑ מקבלת את . נסמן ב‑ את המכונה המתקבלת מ‑ בהחלפת מצבי הקבלה והדחייה; לפי משפט 1 היא פולינומית, ולכל היא דוחה את אם ורק אם מקבלת אותו.
נתבונן ב‑ ונתבונן ב‑. יהי .
- אם : קיים ש‑ מקבלת את , ולכן דוחה את — כלומר קיים שעבורו דוחה.
- אם : לכל המכונה דוחה את , ולכן מקבלת את — כלומר אין אף שעבורו דוחה.
שני התנאים יחד נותנים בדיוק , כלומר . מכאן .
התשובה לשלוש השאלות
- האם מוכלת ב‑? כן — חלק א'.
- האם מכילה את ? כן — חלק ב'.
- האם שווה ל‑? כן, משתי ההכלות. אף אחת מהשאלות אינה פתוחה.
תרגיל 2 (סעיף ב'): — האם מכילה, מוכלת, שווה?
זיהוי ההבדל [00:17:57]. שוב ההגדרה הקרובה היא . כשכותבים אותן זו מול זו:
| accepts | accepts |
| rejects | rejects |
ההבדל: "קיים" פעמיים במקום "לכל" וְ"קיים". הגישור אפשרי רק בכיוון אחד: מ"לכל" ל"קיים" (משפט 2, התחום אינו ריק), ולא להפך. לכן התחושה המיידית היא , וכנראה הכלה ממש [00:26:54].
חלק א':
תהא . לכן קיימת מכונה הרצה בזמן פולינומי וקיים כך שלכל :
נתבונן ב‑ ונתבונן ב‑ — אותה מכונה ואותו קבוע, אין צורך לבנות דבר. אכן רצה בזמן פולינומי ואכן .
יהי .
המקרה . לפי ההגדרה קיים ש‑ מקבלת את . זו בדיוק הטענה שצריך להוכיח, ולכן עוצרים כאן [00:31:21].
המקרה . לפי ההגדרה, לכל המכונה אינה מקבלת את ; מכיוון ש‑ פולינומית ולכן עוצרת — היא דוחה את . עלינו להוכיח טענת קיום, ולכן נציג עד קונקרטי: נתבונן ב‑. אכן (זו מחרוזת בינרית באורך ), ולפי הנ"ל דוחה את .
לכן , ומכאן .
שאלת סטודנט [00:35:29]: האם היה עובד גם? כן — כל מחרוזת בקבוצה עובדת, כי הטענה מתקיימת לכל . ו‑ הן פשוט הכתיבות הקצרות ביותר.
חלק ב':
צריך להציג שפה שהיא ב‑ ואינה ב‑. נתבונן ב‑. לפי משפט 3, . נותר להראות .
נבנה מכונה , שעל קלט :
- אם התו הראשון של הוא — קבל.
- אחרת — דחה.
נתבונן ב‑ ונתבונן ב‑. אכן . רצה בזמן פולינומי בגודל הקלט — למעשה בזמן קבוע, היא קוראת תו אחד [00:50:13].
יהי .
המקרה . נתבונן ב‑. אכן . התו הראשון של הוא , ולכן מקבלת את .
המקרה . נתבונן ב‑. אכן . התו הראשון של אינו , ולכן דוחה את .
לכן מקיימת את הגדרת , כלומר . מכיוון ש‑, נובע .
השלמה: הקלט הריק. אם אז , העד היחיד הוא המחרוזת הריקה, ואין לה "תו ראשון". שלב 1 אינו מתקיים ולכן דוחה — וזה בדיוק מה שצריך, כי בקידודים המקובלים אינו קידוד חוקי של זוג ולכן . שני המקורות עוברים על המקרה הזה בשתיקה; ראו סעיף הפערים.
מסקנה:
מחלק א' , ומחלק ב' , ולכן ההכלה ממש:
- האם מכילה את ? כן, וממש.
- האם מוכלת ב‑? לא.
- האם שווה ל‑? לא. אף אחת מהשאלות אינה פתוחה.
מה באמת קורה כאן: היא מחלקת כל השפות
סטודנט הצביע על כך בכיתה [00:52:59], והמרצה אישר שהטענה נכונה [00:57:10]. הנימוק: אותה מכונה בדיוק ("אם התו הראשון של הוא 1 קבל, אחרת דחה") מקיימת את הגדרת עבור כל שפה , כי היא כלל אינה מסתכלת על — ולכל יש עד שגורם לה לקבל ועד שגורם לה לדחות. תהא כלשהי: אם ניקח והמכונה מקבלת, ואם ניקח והמכונה דוחה. לכן , כלומר
ואף על פי כן המרצה סירב לכתוב את זה [00:57:10]. הסיבה מתודית: השאלה דורשת להוכיח קיום של שפה ב‑, ותבנית ההוכחה של טענת קיום היא "נתבונן ב‑", לא "תהא שפה כלשהי". הוכחת הטענה החזקה יותר אינה שגויה ואינה מפסידה נקודות — "בתנאי שאתה לא טועה שם" — אבל היא עבודה מיותרת שמגדילה את שטח הפנים לשגיאות.
תרגיל 3 (סעיף ג'): — האם מכילה, מוכלת, שווה?
זיהוי ההבדל [00:58:53]. ההגדרה זהה להגדרת למעט אורך העד: במקום — אורך קבוע שאינו תלוי ב‑.
הגישור. מספר העדים האפשריים הוא . "זה נראה מעריכי, זה מעריכי — אבל לא ב‑" [00:59:55]. מה שקובע הוא האם הביטוי מעריכי כפונקציה של אורך הקלט, ו‑ הוא קבוע. לכן אפשר להריץ את ה‑verifier על כל העדים ועדיין להישאר בזמן פולינומי. המרצה הפנה כאן לאחור, לשיעור הקודם, שבו נדון באותו הקשר הביטוי : "לא כל מה שיש לו צורה מעריכית אומר שזה מעריכי" [00:59:55].
חלק א':
תהא . לכן קיימת מכונה הרצה בזמן פולינומי וקיים כך שלכל :
נגדיר מכונה באופן הבא, על קלט :
- לכל :
- 1.1 הרץ את על .
- 1.2 אם קיבלה — קבל.
- דחה.
(שימו לב לממשק: מקבלת רק את , כי היא אמורה להכריע את [01:01:32].)
ניתוח זמן ריצה. יהי .
- לכל , זמן הריצה של על פולינומי ב‑. מכיוון ש‑ קבוע, זהו פולינום ב‑.
- מריצה את בדיוק פעמים. מספר הפעמים אינו תלוי ב‑ — זהו קבוע של המכונה.
- כתיבת המונה ומעבר על עולים .
סך הכול , שהוא פולינום ב‑ (מכפלה בקבוע והרכבת פולינומים).
נכונות. יהי .
נניח . אז קיים כך ש‑ מקבלת את . מכיוון ש‑ עוברת על כל , קיימת בריצה שלה על איטרציה שבה נבחר בדיוק ה‑ הזה; באיטרציה זו שלב 1.2 מתקיים ו‑ מקבלת את .
נניח . אזי לכל המכונה אינה מקבלת את , ומכיוון שהיא עוצרת — היא דוחה. יהי ; שלב 1.2 אינו מתקיים באיטרציה שלו. מכיוון שזה נכון לכל , הלולאה מסתיימת ו‑ דוחה את בשלב 2.
מכאן מכריעה את בזמן פולינומי, ולכן . מכאן .
תיקון שעלה בכיתה [01:07:39]. בכתיבה הראשונה על הלוח המרצה כתב במקרה ישירות " דוחה את " בלי לכמת. סטודנט העיר שחסר "יהי " — כי כדי להסיק ש‑ דוחה צריך להראות שהמקרה נכשל לכל , לא ל‑ אחד. המרצה קיבל: "אתה צודק, שאלה טובה". התיקון מופיע בגוף ההוכחה למעלה, וגם בסיכום.
הקשר לשיעור 8 [01:02:35], [01:09:12]. זו אותה מכונה בדיוק שבנינו כדי להוכיח — "נבנה מכונה שתעבור על כל העדים". שם מספר האיטרציות היה , ולכן יכולנו לטעון רק על המקום (בתנאי שכל איטרציה משתמשת באותם תאים). כאן מספר האיטרציות קבוע, ולכן אנחנו מקבלים חסם על הזמן. אילו אורך העד היה היו לנו איטרציות והטיעון היה קורס.
חלק ב':
תהא . לכן קיימת מכונה המכריעה את בזמן פולינומי.
נגדיר מכונה באופן הבא, על קלט :
- הרץ את על והחזר את אותה תשובה. (העד נזרק.)
נתבונן ב‑ ונתבונן ב‑. אכן .
רצה בזמן פולינומי ב‑, ומכיוון ש‑, המכונה רצה בזמן פולינומי בגודל הקלט שלה [01:14:41]. (המרצה הדגיש שאין שום צורך "להיכנס פנימה" ולחלץ את הפולינום או הקבוע של — מריצים את אותה מכונה על אותו קלט, ואין מה לנתח.)
יהי .
נניח . אזי מקבלת את . נתבונן ב‑. אכן , ו‑ מריצה את על ומחזירה קבלה, כלומר מקבלת את .
נניח . אזי דוחה את . יהי . אזי מריצה את על ומחזירה דחייה, כלומר דוחה את . זה נכון לכל .
לכן , כלומר . מכאן .
טעות בזמן אמת, ותיקונה [01:16:26]–[01:16:56]. המרצה כתב תחילה , ומיד תיקן ל‑: "חשבתי על ה‑ מההוכחה הקודמת". מכיוון שבחרנו , קבוצת העדים היא , ולכן העד הוא ביט בודד. זו טעות טיפוסית שנולדת מהעתקת תבנית מהסעיף הקודם בלי לבדוק את הפרמטר שנבחר.
התשובה לשלוש השאלות
משני החלקים:
- האם מוכלת ב‑? כן, וזו טענה ידועה. (שיעור 4). זו אינה שאלה פתוחה.
- האם מכילה את ? שאלה פתוחה. מכיוון ש‑, הטענה שקולה לטענה ; ומכיוון ש‑ תמיד, זו בדיוק השאלה .
- האם שווה ל‑? שקול ל‑, כלומר שאלה פתוחה.
למה לפרק את השוויון לשתי הכלות [01:19:08]–[01:24:27]. סטודנט שאל למה לא לכתוב פשוט " אם ורק אם , ולכן שאלה פתוחה". התשובה: זה נכון ולא שגוי, אבל הוא מחביא מידע. השוויון הוא צירוף של שתי הכלות, שאחת מהן ידועה (ונכונה) והשנייה פתוחה. השאלה במפורש ביקשה להתייחס לשלוש הטענות בנפרד, ולכן התשובה צריכה להצביע איזה חלק של השוויון הוא הפתוח. המרצה הודה שניסוח השאלה יכול היה להיות בהיר יותר [01:20:43].
תרגיל 4 (סעיף ה'): — נדון בעל פה בלבד
הסעיף הזה אינו בסיכום; הוא נפתר בעל פה בעשר הדקות האחרונות [01:24:27]–[01:29:44] לבקשת סטודנט, בלי לכתוב על הלוח. הוא מובא כאן בקצרה כי הוא משתמש בדיוק באותה טכניקה.
ההגדרה. היא מחלקת השפות עבורן קיים קבוע כך שקיימת מכונה אי‑דטרמיניסטית עם זמן ריצה פולינומי המכריעה את , וכך שלכל מספר הבחירות האי‑דטרמיניסטיות בריצה על אינו עולה על .
זיהוי ההבדל. ההגדרה הקרובה היא בנוסח האי‑דטרמיניסטי, וההבדל הוא הגבלה על מספר נקודות הבחירה (לא על זמן הריצה, שנשאר פולינומי).
התשובה: . נזכיר מתסריט הריצה של שיעור 6: נסמן ב‑ את מספר האפשרויות המרבי בנקודת בחירה. הוא קבוע של המכונה — הוא נחסם על ידי ואינו תלוי ב‑. לתיאור בחירה אחת דרושים ביטים, ולכן לתיאור ריצה שלמה דרושים ביטים, ומספר העדים האפשריים הוא כלומר פולינומי ב‑. עכשיו מפעילים בדיוק את המכונה מחלק א' של תרגיל 3: עוברים על כל תסריטי הריצה, מסמלצים את על כל אחד מהם דטרמיניסטית, ומקבלים אם אחת הסימולציות קיבלה. מספר האיטרציות פולינומי וכל סימולציה פולינומית, ולכן הסימולציה כולה פולינומית, ומכאן . הכיוון ההפוך, , מיידי: מכונה דטרמיניסטית היא מכונה אי‑דטרמיניסטית עם אפס בחירות.
האינטואיציה של המבוך [01:26:04]. מכונה אי‑דטרמיניסטית היא מבוך; העד הוא רשימת ההוראות "בצומת הראשון שמאלה, בשני ימינה". ב‑ צריך הוראה לכל צעד — לכן העד ארוך פולינומית ומספר העדים מעריכי. כאן יש רק צמתים שבהם בכלל יש ברירה, ולכן רשימת ההוראות קצרה לוגריתמית ומספר הרשימות האפשריות הוא רק פולינומי.
הערות מהשיעור
-
[00:00:30] רמת הקושי. "השאלות האלה אינן קלות, הן מאוד טריקיות — אבל מה שחשוב להבין הוא שהן ברמת ההגדרה בלבד. אין שם שום דבר פרט להגדרה." אין צורך בשום משפט מהקורס מעבר לתשתית; כל התוכן הוא השוואה מדוקדקת בין שתי הגדרות.
-
[00:02:07] הכלי הפיזי. המרצה כותב את שתי ההגדרות זו לצד זו על דף, ולא בראש: "אני באופן אישי לא מסוגל לראות את הדברים האלה בראש". ב‑[00:25:17] הוא מסביר למה הוא כותב על דפים ולא על טאבלט — הוא רוצה הרבה דברים מול העיניים בו זמנית.
-
[00:04:12]–[00:05:14] מה זה בכלל עד. התשובה לשאלה "מה תפקידו של ": ה‑verifier אינו מכריע את ; הוא מכונה שאם נותנים לה קצת עזרה היא יודעת לוודא. הדוגמה: לשכנע שמספר הוא פריק דורש פירוק לגורמים, שהוא יקר — אבל בהינתן גורם, מספיק חילוק ארוך. " זה כל הבעיות שבהינתן עד לא מאוד גדול אני יכול לוודא אותן בזמן פולינומי. השאלה מול היא כמו לשאול מה יותר קשה — לפתור מבחן או לבדוק אותו" [00:05:14].
-
[00:10:00] סדר כמתים. אפשר להחליף בין שני כמתים מאותו סוג ( או ) בלי לשנות את המשמעות; אסור להחליף בין כמתים משני סוגים. בהגדרות שכאן זה מתיר לכתוב "קיים כך שקיימת " או "קיימת כך שקיים " באותה מידה.
-
[00:19:32]–[00:22:43] מול פולינום . סטודנטית שאלה למה מותר להחליף ביניהם, ובצדק: לא כל פולינום הוא מהצורה . התשובה בשני חלקים: (א) לכל פולינום קיים כך ש‑ אסימפטוטית, ואם העד ארוך יותר — האלגוריתם פשוט מתעלם מהזנב; (ב) עבור מספר סופי של ערכי קטנים שבהם החסם עדיין לא תופס, המכונה יכולה "לזכור בעל פה" את התשובות. מסקנה: שתי הצורות שקולות, ובכתיבה נצמדים לניסוח של השאלה.
-
[00:30:17] אזהרה חוזרת. ה‑verifier אינה מכריעה את , וזה לא עניין של יעילות אלא של ממשק: הקלטים שלה הם זוגות , ולא אובייקטים שאנחנו שואלים לגביהם שייכות. "היא לא מקבלת בכלל את ככלט" — זו מכונת verification.
-
[00:53:30]–[00:54:03] מה מקבל נקודות. לכתוב "ממשפט ההיררכיה קיימת שאינה ב‑" — תשובה חסרה, לא שגויה: "אתה צודק שזה נובע ממשפט ההיררכיה, אבל איך?". לכתוב "ממשפט ההיררכיה קיימת שאינה ב‑, ומכיוון ש‑ היא אינה ב‑" — תשובה מלאה.
-
[00:55:37]–[00:56:39] מה המכונה בסעיף ב' לא מתיימרת לעשות. סטודנטית התקשתה: המכונה שבנינו ל‑ אינה מכריעה את , אפילו לא חלקית, ולא מזהה בה כלום — אז מה בעצם הוכחנו? התשובה: הגדרת אינה דורשת הכרעה. היא דורשת רק ש‑לכל בשפה תהיה אפשרות שהמכונה תקבל, ולכל מחוץ לשפה תהיה אפשרות שהיא תדחה. "אני מצייט להגדרה, אני לא צריך יותר מזה." זה בדיוק מה שמבלבל בתרגיל.
-
[01:16:26] אזהרה על העתקת תבניות. הטעות במקום בסעיף ג' נולדה מהעתקת הצורה מהסעיף הקודם. הלקח: אחרי שבוחרים , לבדוק פיזית מהי קבוצת העדים שנוצרה.
-
[00:15:20] על הפורמליות. "המטרה אינה שזה יהיה מסודר כי זה קדוש. המטרה היא שזה ייצור לכם בהירות מחשבתית." מותר לכתוב זורם יותר אם אתם בטוחים — "על אחריות המשתמש".
פערים בין הסיכום להקלטה
- מקור: ההקלטה, [01:24:27]–[01:29:44]. הפער: סעיף ה' של אותה שאלה ( — הגבלת מספר הבחירות האי‑דטרמיניסטיות ל‑) נפתר בעל פה ואינו מופיע כלל בחמשת עמודי הסיכום. ההכרעה: נכלל כאן כתרגיל 4, בקצרה ובסימון מפורש שהוא לא נכתב על הלוח, כי הוא מדגים את אותה טכניקה בדיוק ועשוי להופיע במבחן.
- מקור: ההקלטה, [01:29:44] מול הסיכום. הפער: סעיף ד' של השאלה נדחה במפורש לשיעור הבא ("אנחנו נתחיל בסעיף ד' בשיעור הבא") ואינו בסיכום ולא בהקלטה. ההכרעה: לא נכתב כאן דבר עליו. בדיקה שנעשתה לאחר מכן על פני כל הקורפוס העלתה שהסעיף אינו מופיע גם בסיכום 25 ולא בהקלטות 29 או 30: הקלטה 29 נפתחת כבר בתוך תרגיל 3, כלומר תחילת אותו מפגש אינה מוקלטת, ושם נלמד הסעיף ככל הנראה. המחלקות C₁–C₄ שבהקלטה 30 הן וריאציות הסתברותיות על BPP ([00:29:05]) — התנגשות שמות בלבד, ואינן קשורות לסעיף זה. מסקנה: לסעיף ד' אין תיעוד בקורפוס.
- מקור: ההקלטה, [00:52:59]–[00:57:42]. הפער: הסיכום אינו מזכיר כלל ש‑ היא מחלקת כל השפות; זו תוצאה של דיון כיתה. ההכרעה: נכללה כתת‑סעיף נפרד בתרגיל 2, יחד עם ההסבר המתודי מדוע המרצה בחר לא להוכיח אותה.
- מקור: ההקלטה, [00:41:14]–[00:46:30]. הפער: הסיכום מנמק רק דרך ; ההקלטה מציגה גם מסלול חלופי דרך משפט ההיררכיה במקום, ומזהירה מפני שימוש שגוי ב‑. ההכרעה: שני המסלולים והאזהרה נכתבו במשפט 3.
- מקור: הסיכום, עמוד 2, וההקלטה [00:47:35]–[00:52:28]. הפער: הבנייה "אם התו הראשון של הוא 1 — קבל" אינה מטפלת בקלט , שעבורו נותן עד ריק שאין לו תו ראשון. ההכרעה: הבנייה נשמרה כפי שהיא (שלב 2 דוחה במקרה זה), והוספה הערה מפורשת בגוף: המקרה תקין כי בקידודים המקובלים.
- מקור: הסיכום, עמוד 1, סוף העמוד. הפער: הכיוון נכתב כ"באותו אופן" בלבד, וההקלטה [00:16:56] דילגה עליו במפורש. ההכרעה: נכתב כאן במלואו (תרגיל 1, חלק ב'), לפי דרישת הפירוט המלא.
- מקור: ההקלטה, [01:07:39]. הפער: בכתיבה על הלוח חסר היה הכימות "יהי " במקרה בהוכחת ; סטודנט תיקן והמרצה אישר. הסיכום כן כולל את השורה. ההכרעה: נכתב עם הכימות, והתיקון תועד כהערה כי הוא מדגים בדיוק את סוג הפער שהתבנית נועדה למנוע.
- מקור: ההקלטה, [01:16:26]. הפער: על הלוח נכתב לרגע במקום בהוכחת . ההכרעה: בגוף נכתב (שכן ), והטעות תועדה כהערה — היא כשל טיפוסי של העתקת תבנית.
- מקור: הסיכום, עמוד 1, כותרת ירוקה, מול ההקלטה [00:00:00]. הפער: הכותרת קצרה ומקוצרת. הקריאה שנבחרה היא "פתרון מטלה 2", והיא מאושרת מההקלטה — המרצה פותח ב"תפתחו את תרגיל הבית… נתתי לכם פה ארבע מחלקות", ובסוף השיעור [01:29:44] מכריז על מעבר ל"תרגיל שלוש", כלומר למטלה הבאה. ההכרעה: צוטטה בגוף כ"פתרון מטלה 2".
- מקור: שני המקורות. הפער: אין בעמודים האלה שום נתון מזהה של סטודנט. ההכרעה: לא נדרש טיפול.
- מקור: מוסכמות הסימון של הפרויקט. הפער: הסיכום כותב את שמות המחלקות ללא
\mathrm. ההכרעה: בקובץ זה שמות מחלקות ובעיות נכתבו ב‑\mathrmלפי §2a, בעוד שאותיות המשתנים (, , , , , ) נשמרו בדיוק כבמקור.
סיכום ונקודות למבחן
התוצאות שכדאי לזכור.
| מחלקה | ההבדל מהגדרת | התשובה | מכילה את ? | מוכלת ב‑? | שווה? |
|---|---|---|---|---|---|
| "דוחה" במקום "מקבלת" | כן | כן | כן | ||
| "קיים" במקום "לכל" בצד השלילי | = כל השפות | כן, וממש | לא | לא | |
| במקום | פתוח ( vs ) | כן | פתוח | ||
| בחירות אי‑דטרמיניסטיות | פתוח | כן | פתוח |
המנוע שמאחורי כל השורות. בכל שורה יש הבדל תחבירי אחד מהגדרת , והשאלה היחידה היא האם ניתן לגשר עליו ובאיזה כיוון:
- היפוך קבלה/דחייה — ניתן לגישור בשני הכיוונים, כי המכונה דטרמיניסטית ועוצרת. שוויון.
- החלפת ב‑ — ניתן לגישור בכיוון אחד בלבד (מ‑ ל‑, מעל תחום לא ריק). הכלה ממש.
- קיצור העד לאורך שאינו תלוי בקלט — הופך את "לנחש" ל"לעבור על הכול" בזמן פולינומי. קריסה ל‑.
מלכודות סטנדרטיות.
- לענות על שאלה אחת במקום שלוש. "האם היא שווה ל‑" אינה מכסה את "האם היא מכילה" ואת "האם היא מוכלת". פרקו את השוויון לשתי הכלות ואמרו על כל אחת בנפרד: נכונה / שגויה / שקולה לשאלה פתוחה.
- מעבר מ"לכל" ל"קיים" בלי לומר למה. אם אתם עושים אותו — כתבו "הקבוצה אינה ריקה". עדיף פשוט להציג עד קונקרטי.
- "ממשפט ההיררכיה קיימת שפה מחוץ ל‑" בלי לפרט את שרשרת ההכלות — תשובה חלקית.
- בלבול בין לבין הפרדה שימושית. הכלה ממש בין קצוות שרשרת אינה אומרת איזו הכלה פנימית היא ממש.
- להעתיק את צורת העד מהסעיף הקודם. אחרי שבוחרים , בדקו מהי בפועל הקבוצה .
- לשכוח שהמכונה עוצרת. כל הטיעונים "אינה מקבלת ⟸⟹ דוחה" נשענים על כך שהמכונה פולינומית ולכן עוצרת. במכונה אי‑דטרמיניסטית זה נשבר.
רשימת בדיקה — מה צריך לדעת לעשות אחרי השיעור הזה.
- לכתוב את הגדרת ה‑verifier של מהזיכרון, בדיוק, כולל שני החסמים הנפרדים (אורך העד וזמן האימות).
- בהינתן הגדרה חדשה שדומה ל‑, לזהות את ההבדל התחבירי היחיד ולנסח בעצמכם האם ניתן לגשר עליו ובאיזה כיוון.
- להוכיח בשני הכיוונים, כולל ההצדקה מדוע היפוך המצבים חוקי דווקא במכונה דטרמיניסטית.
- להציג שפה מחוץ ל‑ בשתי דרכים: דרך , ושפה מ‑ דרך משפט ההיררכיה במקום.
- לבנות את המכונה שעוברת על כל העדים, ולדעת בדיוק מתי היא נותנת (עד פולינומי) ומתי (עד קבוע או לוגריתמי).
- לנסח תשובה לשאלה "האם המחלקה שווה ל‑" בצורה שמפרידה בין החלק הידוע לחלק הפתוח.
