26חזרה למבחן ד׳: פתרון מטלה 4 — סגירות BPP לחיתוך, וארבעה אפיונים של המחלקות האקראיות

השיעור האחרון בקורס פותר את מטלה 4: מוכיחים ש‑BPP סגורה לחיתוך (עם העצמה מוקדמת ל‑9/10, כי (2/3)² קטן מחצי), ומכריעים ארבע וריאציות על ההגדרה ההסתברותית — שתיים מהן מתגלות כ‑RP ו‑P, אחת כמחלקת כל השפות, ואחת ככזו ששוויונה ל‑NP שקול לשאלה הפתוחה P=NP.

ביטחון: high1 הקלטות6 עמודי סיכוםexam-reviewbppamplificationrandomized-classeserror-probabilitymajority-vote

נשען על: שיעור 2, שיעור 16, שיעור 17

עמודי הסיכום בכתב יד

פתיחת עמוד 1 בגודל מלא

סיבוכיות שיעור 26.pdf

עמוד 1 מתוך 6 בסיכום הכתב יד

בקצרה

  • זהו המפגש האחרון של הקורס, וכולו פתרון תרגילים: מטלה 4, שאלה 1 סעיף (ג) ושאלה 3 על כל סעיפיה. אין בו תיאוריה חדשה — רק שימוש מדויק בהגדרות של שיעורים 16–17.
  • התוצאה המרכזית: BPP\mathrm{BPP} סגורה לחיתוך. ההוכחה איננה "נריץ את שתי המכונות ונחזיר AND" בלבד — הצירוף הזה מכפיל את הסתברויות ההצלחה, ו-(23)2=49\left(\frac23\right)^2=\frac49 קטן אפילו מ-12\frac12. לכן חייבים להעצים קודם ל-BPP ⁣(910,910)\mathrm{BPP}\!\left(\frac{9}{10},\frac{9}{10}\right), ורק אז (910)2=81100≥23\left(\frac9{10}\right)^2=\frac{81}{100}\ge\frac23.
  • שאלה 3 נותנת ארבע מחלקות C1,…,C4\mathrm{C}_1,\dots,\mathrm{C}_4 שכל אחת היא שינוי קטן בהגדרה ההסתברותית, ומבקשת להכריע לכל טענה: נכונה, שגויה, או שקולה לטענה פתוחה.
  • התשובות. C1=BPP(α,1)\mathrm{C}_1=\mathrm{BPP}(\alpha,1), ולכן עבור α=110\alpha=\frac1{10} מתקיים C1=RP\mathrm{C}_1=\mathrm{RP} — נכונה, ישירות מהעצמה חד-צדדית. C2=BPP(α,α)\mathrm{C}_2=\mathrm{BPP}(\alpha,\alpha), ולכן עבור α=110\alpha=\frac1{10} היא מחלקת כל השפות ובפרט C2≠BPP\mathrm{C}_2\ne\mathrm{BPP} — הטענה שגויה; אבל עבור α=1\alpha=1 מתקיים C2=P\mathrm{C}_2=\mathrm{P} — נכונה.
  • C3\mathrm{C}_3 היא BPP\mathrm{BPP} שבה המחרוזת האקראית באורך קבוע 55. עבור α=23\alpha=\frac23 מתקיים C3=P\mathrm{C}_3=\mathrm{P} — נכונה: עוברים על כל 3232 המחרוזות ומצביעים רוב. שני התנאים חיוניים: α>12\alpha>\frac12 (אחרת אין רוב) ואורך קבוע (אחרת זו בדיוק השאלה הפתוחה P=BPP\mathrm{P}=\mathrm{BPP}).
  • C4\mathrm{C}_4 דורשת הסתברות טעות קטנה מ-1∣Ω∣\frac1{|\Omega|}, ולכן קבוצת ה-rr-ים השגויים ריקה — מכאן C4=P\mathrm{C}_4=\mathrm{P}, והטענה "C4=NP\mathrm{C}_4=\mathrm{NP}" שקולה לשאלה הפתוחה P=NP\mathrm{P}=\mathrm{NP}.
  • הרעיון החוזר בכל הסעיפים: תרגמו הסתברות לספירה. במרחב אחיד סופי ∣E∣=Pr⁡[E]⋅∣Ω∣|E|=\Pr[E]\cdot|\Omega|, וגודל של קבוצה הוא מספר שלם — זה מה שהופך "הסתברות גדולה מספיק" ל"כל האפשרויות" או ל"רוב מוחלט".
  • הרבע האחרון של ההקלטה [01:19:20]–[01:27:10] הוא הנחיות המרצה לקראת המבחן; הן מרוכזות בסעיף האחרון של הקובץ.

אזהרת שמות. המחלקות C1,…,C4\mathrm{C}_1,\dots,\mathrm{C}_4 של השיעור הזה הן וריאציות על ההגדרה ההסתברותית BPP(α,β)\mathrm{BPP}(\alpha,\beta). הן אינן המחלקות C1,…,C5\mathrm{C}_1,\dots,\mathrm{C}_5 של שיעור 24, שהן וריאציות על הגדרת ה-verifier של NP\mathrm{NP}. השמות זהים במקרה — שתי המטלות מספרו את המחלקות שלהן באותו אופן — והתוצאות אינן ניתנות להצלבה.

רקע ותלויות

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

משפחת המחלקות BPP(α,β)\mathrm{BPP}(\alpha,\beta) (שיעור 16, הגדרה 3). יהיו α,β∈[0,1]\alpha,\beta\in[0,1]. A∈BPP(α,β)A\in\mathrm{BPP}(\alpha,\beta) אם מתקיים אחד משני התנאים השקולים:

נוסח א (מכונה אקראית). קיימת מכונת טיורינג אקראית MM הרצה בזמן פולינומי בגודל הקלט כך שלכל xx: x∈A ⟹ Pr⁡[M accepts x]≥α,x∉A ⟹ Pr⁡[M rejects x]≥β.x\in A\ \Longrightarrow\ \Pr\big[M\text{ accepts }x\big]\ge\alpha,\qquad x\notin A\ \Longrightarrow\ \Pr\big[M\text{ rejects }x\big]\ge\beta .

נוסח ב (מכונה דטרמיניסטית וסרט אקראי). קיימת מכונת טיורינג דטרמיניסטית MM הרצה בזמן פולינומי בגודל הקלט וקיים פולינום pp כך שלכל xx: x∈A ⟹ Pr⁡r∈{0,1}p(∣x∣)[M accepts (x,r)]≥α,x∉A ⟹ Pr⁡r∈{0,1}p(∣x∣)[M rejects (x,r)]≥β.x\in A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^{p(|x|)}}\big[M\text{ accepts }(x,r)\big]\ge\alpha,\qquad x\notin A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^{p(|x|)}}\big[M\text{ rejects }(x,r)\big]\ge\beta .

מרחב ההסתברות. האקראיות היא אך ורק המטבעות של המכונה, כלומר Ω=Ω(x)={0,1}p(∣x∣)\Omega=\Omega(x)=\{0,1\}^{p(|x|)}. הקלט xx אינו אקראי; הוא נתון ושרירותי. המרצה חזר על זה גם השיעור: "שים לב, אקראיות זה משהו שצריך להיכנס באופן מפורש. לא כתבתי פה שאני בוחר את xx באקראי" [00:20:21].

השמות (שיעור 16, הגדרה 4). BPP=BPP ⁣(23,23),RP=BPP ⁣(12,1),coRP=BPP ⁣(1,12).\mathrm{BPP}=\mathrm{BPP}\!\left(\tfrac23,\tfrac23\right),\qquad \mathrm{RP}=\mathrm{BPP}\!\left(\tfrac12,1\right),\qquad \mathrm{coRP}=\mathrm{BPP}\!\left(1,\tfrac12\right).

עוד משיעור 16 שנשתמש בו: מונוטוניות המשפחה (משפט 1), BPP⊆PSPACE\mathrm{BPP}\subseteq\mathrm{PSPACE} (משפט 4), והעובדה ש-BPP ⁣(12,12)\mathrm{BPP}\!\left(\frac12,\frac12\right) מכילה כל שפה (הערה שאחרי הגדרה 3).

משיעור 17: משפט ההעצמה החד-צדדית (משפט 1) ומשפט ההעצמה הדו-צדדית (משפט 2), וכן הצבעת הרוב (הגדרה 3).

משיעור 2: PSPACE\mathrm{PSPACE} מוגדרת דרך מכונות שמכריעות את השפה, ולכן כל שפה ב-PSPACE\mathrm{PSPACE} היא כריעה; HALT\mathrm{HALT} אינה כריעה, ולכן HALT∉PSPACE\mathrm{HALT}\notin\mathrm{PSPACE} (ראו שם את אי-הדוגמה שאחרי הגדרה 1).

הגדרות

השאלה מתחילה ב-"יהי α∈[0,1]\alpha\in[0,1]. נגדיר את מחלקות הסיבוכיות הבאות." ארבע ההגדרות מובאות כאן כלשונן בדף המודפס, פרט לתיקון x↦(x,r)x\mapsto(x,r) ב-C3\mathrm{C}_3 ו-C4\mathrm{C}_4 שהמרצה עשה בעצמו בשיעור [00:36:21] ושמופיע גם בכתב יד על גבי העמוד.

הגדרה 1: המחלקות C1\mathrm{C}_1 ו-C2\mathrm{C}_2

C1\mathrm{C}_1 היא מחלקת כל השפות AA עבורן קיימת מכונת טיורינג הסתברותית MM הרצה בזמן פולינומי בגודל הקלט, כך שלכל xx: x∈A ⟹ Pr⁡[M accepts x]≥α,x∉A ⟹ Pr⁡[M rejects x]=1.x\in A\ \Longrightarrow\ \Pr\big[M\text{ accepts }x\big]\ge\alpha,\qquad x\notin A\ \Longrightarrow\ \Pr\big[M\text{ rejects }x\big]=1 .

C2\mathrm{C}_2 היא אותה מחלקה בדיוק, אלא שהתנאי השני מוחלף ב-Pr⁡[M rejects x]≥α\Pr\big[M\text{ rejects }x\big]\ge\alpha.

התרגום המיידי. על גבי עמוד 3 בסיכום, בצד ההגדרות, כתוב בכתב יד בדיוק זה: C1=BPP(α,1),C2=BPP(α,α).\mathrm{C}_1=\mathrm{BPP}(\alpha,1),\qquad \mathrm{C}_2=\mathrm{BPP}(\alpha,\alpha). זה לא קיצור דרך אלא התאמת תבנית מילולית אחד-לאחד מול נוסח א של הגדרת BPP(α,β)\mathrm{BPP}(\alpha,\beta). המרצה הקדיש לזה שלב מפורש בפתרון: "השלב הראשון: ברמת ה-pattern matching אני בודק האם זה זהה להגדרה או לא, ואיפה ההבדל" [00:28:33]. עבור C1\mathrm{C}_1 ו-C2\mathrm{C}_2 אין הבדל, ולכן "אין לי מה לשחק עם זה יותר" [00:27:31].

אינטואיציה. C1\mathrm{C}_1 היא טעות חד-צדדית: על no-instance המכונה לעולם אינה טועה. C2\mathrm{C}_2 היא טעות דו-צדדית עם אותו סף בשני הצדדים.

מופע. כל שפה ב-P\mathrm{P} שייכת ל-C1\mathrm{C}_1 ול-C2\mathrm{C}_2 עבור כל α\alpha: המכונה הדטרמיניסטית שמכריעה אותה היא בפרט מכונה אקראית שאינה מטילה מטבעות, וההסתברויות שלה הן 1≥α1\ge\alpha.

אי-מופע מאלף. עבור α≤12\alpha\le\frac12 המחלקה C2\mathrm{C}_2 מפסיקה להיות אי-מופע של משהו — היא נהיית מחלקת כל השפות. זה בדיוק תוכן סעיף (ב) להלן.

הגדרה 2: המחלקה C3\mathrm{C}_3

C3\mathrm{C}_3 היא מחלקת כל השפות AA עבורן קיימת מכונת טיורינג דטרמיניסטית MM הרצה בזמן פולינומי בגודל הקלט, כך שלכל xx: x∈A ⟹ Pr⁡r∈{0,1}5[M accepts (x,r)]≥α,x∉A ⟹ Pr⁡r∈{0,1}5[M rejects (x,r)]≥α.x\in A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^{5}}\big[M\text{ accepts }(x,r)\big]\ge\alpha,\qquad x\notin A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^{5}}\big[M\text{ rejects }(x,r)\big]\ge\alpha .

מה השתנה. זהו בדיוק נוסח ב של BPP(α,α)\mathrm{BPP}(\alpha,\alpha), אלא שאורך המחרוזת האקראית אינו p(∣x∣)p(|x|) עבור פולינום כלשהו אלא הקבוע 55. לכן מרחב המדגם קבוע: ∣Ω∣=25=32|\Omega|=2^5=32, ללא תלות ב-xx.

למה המכונה דטרמיניסטית. המרצה הסביר שהבחירה מכוונת: "כשאני רוצה לעבור מ-C3\mathrm{C}_3 ל-P\mathrm{P} אני רוצה מכונה דטרמיניסטית, אז אני מעדיף שמראש תהיה לי מכונה דטרמיניסטית — ולכן הגדרתי את C3\mathrm{C}_3 עם מכונה דטרמיניסטית. וגם היה לי חשוב להראות שהיא עם חמישה ביטים" [00:37:27].

מופע. A=Σ∗A=\Sigma^* שייכת ל-C3\mathrm{C}_3 לכל α\alpha: המכונה שמתעלמת מ-rr ומקבלת תמיד נותנת הסתברות 11.

אי-מופע. אף שפה לא כריעה אינה ב-C3\mathrm{C}_3, כי לפי סעיף (ד) C3=P\mathrm{C}_3=\mathrm{P} כאשר α=23\alpha=\frac23. שימו לב שזה לא נכון ל-C2\mathrm{C}_2 עם α=110\alpha=\frac1{10} — ובדיוק שם ההבדל בין השניים.

הגדרה 3: המחלקה C4\mathrm{C}_4

C4\mathrm{C}_4 היא מחלקת כל השפות AA עבורן קיימת מכונת טיורינג דטרמיניסטית MM הרצה בזמן פולינומי בגודל הקלט, כך שקיים פולינום pp שעבורו לכל xx: x∈A ⟹ Pr⁡r∈{0,1}p(∣x∣)[M accepts (x,r)]≥1−12p(∣x∣)+1,x\in A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^{p(|x|)}}\big[M\text{ accepts }(x,r)\big]\ge1-\frac{1}{2^{p(|x|)+1}}, x∉A ⟹ Pr⁡r∈{0,1}p(∣x∣)[M rejects (x,r)]≥1−12p(∣x∣)+1.x\notin A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^{p(|x|)}}\big[M\text{ rejects }(x,r)\big]\ge1-\frac{1}{2^{p(|x|)+1}} .

הלב של ההגדרה. אותו פולינום pp מופיע פעמיים: פעם כאורך המחרוזת האקראית, ופעם במכנה של הסתברות הטעות. סטודנט זיהה את זה בכיתה [00:28:02]: "הפולינומים תלויים אחד בשני — הם מבוטאים אחד באמצעות השני". זה לא קישוט: ∣Ω∣=2p(∣x∣)|\Omega|=2^{p(|x|)}, והסתברות הטעות חסומה ב-12⋅2p(∣x∣)=12∣Ω∣\frac{1}{2\cdot2^{p(|x|)}}=\frac{1}{2|\Omega|} — כלומר קטנה מ-1∣Ω∣\frac{1}{|\Omega|}. משם נובע הכול.

אינטואיציה. "הסתברות ההצלחה גבוהה יותר מ-11 פחות 11 חלקי גודל מרחב המדגם, ולכן אין לי אפילו מספיק הסתברות כדי שיהיה rr אחד שעליו אני טועה" [01:20:57].

משפטים והוכחות

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

משפט 1: מונוטוניות במשפחה BPP(α,β)\mathrm{BPP}(\alpha,\beta) — שיעור 16, משפט 1

ניסוח. אם α^≥α\hat\alpha\ge\alpha ו-β^≥β\hat\beta\ge\beta אז BPP(α^,β^)⊆BPP(α,β)\mathrm{BPP}(\hat\alpha,\hat\beta)\subseteq\mathrm{BPP}(\alpha,\beta).

ההוכחה בשורה (המלאה בשיעור 16): אותה מכונה בדיוק מקיימת את התנאי החלש יותר, כי Pr⁡[… ]≥α^≥α\Pr[\dots]\ge\hat\alpha\ge\alpha. □\square

משפט 2: העצמה דו-צדדית — שיעור 17, משפט 2

ניסוח. לכל פולינום qq: BPP=BPP ⁣(1−12q(n), 1−12q(n))=BPP ⁣(12+1q(n), 12+1q(n)).\mathrm{BPP}=\mathrm{BPP}\!\left(1-\frac{1}{2^{q(n)}},\,1-\frac{1}{2^{q(n)}}\right)=\mathrm{BPP}\!\left(\frac12+\frac{1}{q(n)},\,\frac12+\frac{1}{q(n)}\right).

ההוכחה הכללית עוברת באי-שוויון צ'רנוף ואינה נדרשת בקורס; שיעור 17 הוכיח במלואו את המקרה הפרטי BPP=BPP ⁣(45,45)\mathrm{BPP}=\mathrm{BPP}\!\left(\frac45,\frac45\right) בחישוב בינומי ידני. מותר ונדרש להשתמש במשפט הזה בשם, ואפילו במילה אחת: "אמפליפיקציה" [00:11:22].

מסקנה 2.1 — הצורה שנשתמש בה בפועל.  BPP=BPP ⁣(910,910) \boxed{\ \mathrm{BPP}=\mathrm{BPP}\!\left(\tfrac9{10},\tfrac9{10}\right)\ }

הוכחה. נפעיל את משפט 2 עם הפולינום הקבוע q≡4q\equiv4 ונקבל BPP=BPP ⁣(1516,1516)\mathrm{BPP}=\mathrm{BPP}\!\left(\frac{15}{16},\frac{15}{16}\right). כעת שרשרת שתי הכלות ממשפט 1: BPP ⁣(1516,1516) ⊆ BPP ⁣(910,910) ⊆ BPP ⁣(23,23)=BPP,\mathrm{BPP}\!\left(\tfrac{15}{16},\tfrac{15}{16}\right)\ \subseteq\ \mathrm{BPP}\!\left(\tfrac9{10},\tfrac9{10}\right)\ \subseteq\ \mathrm{BPP}\!\left(\tfrac23,\tfrac23\right)=\mathrm{BPP}, הראשונה כי 1516=0.9375≥910\frac{15}{16}=0.9375\ge\frac9{10}, והשנייה כי 910≥23\frac9{10}\ge\frac23. האגף השמאלי ביותר שווה ל-BPP\mathrm{BPP}, ולכן כל ההכלות בשרשרת הן שוויונות. ■\blacksquare

הערה: בהרצה זה נאמר בקיצור — "ממשפט מהשיעור, AA ו-BB שייכות ל-BPP\mathrm{BPP} תשע עשיריות תשע עשיריות. סתם זרקתי מספר" [00:11:22]. הפירוט כאן הוא ההצדקה למה מותר "לזרוק מספר", ולמה דווקא מספר כזה.

משפט 3: HALT∉BPP\mathrm{HALT}\notin\mathrm{BPP}

ניסוח. בעיית העצירה אינה שייכת ל-BPP\mathrm{BPP}.

הוכחה. לפי שיעור 16, משפט 4, BPP⊆PSPACE\mathrm{BPP}\subseteq\mathrm{PSPACE}. לפי הגדרת PSPACE\mathrm{PSPACE} (שיעור 2, הגדרות 1 ו-4), כל שפה בה מוכרעת על ידי מכונה דטרמיניסטית שעוצרת על כל קלט; בפרט כל שפה ב-PSPACE\mathrm{PSPACE} היא כריעה. HALT\mathrm{HALT} אינה כריעה, ולכן HALT∉PSPACE\mathrm{HALT}\notin\mathrm{PSPACE}, ולכן HALT∉BPP\mathrm{HALT}\notin\mathrm{BPP}. ■\blacksquare

למה HALT\mathrm{HALT} ולא משהו אחר. המרצה ציין שיש עוד המון אפשרויות — "BPP\mathrm{BPP} מוכלת ב-PSPACE\mathrm{PSPACE}, אני יכול לקחת שפה ב-EXPSPACE\mathrm{EXPSPACE} שאינה ב-PSPACE\mathrm{PSPACE}" — "אבל HALT\mathrm{HALT} תמיד מאוד נוחה בקטע הזה, כי אני יודע וברור שהיא לא שייכת" [00:31:07]. וכלל אצבע: "תמיד יותר קל לי להראות אי-שייכות למחלקות דטרמיניסטיות" [00:31:38].

משפט 4: העצמה חד-צדדית — שיעור 17, משפט 1

ניסוח. לכל פולינום qq מתקיים  RP=BPP ⁣(1q(n),1)\ \mathrm{RP}=\mathrm{BPP}\!\left(\frac{1}{q(n)},1\right).

מה המשפט אומר. בטעות חד-צדדית, הסתברות ההצלחה בצד ה-yes יכולה להיות קטנה כרצוננו — ובלבד שהיא לפחות 1/poly1/\mathrm{poly} — והמחלקה לא משתנה. ההוכחה המלאה בשיעור 17: מריצים q(∣x∣)q(|x|) פעמים בלתי-תלויות ומקבלים אם התקבל accept ולו פעם אחת; הכלל הזה חוקי בדיוק מפני שבצד ה-no אין טעות כלל, ולכן accept אחד הוא הוכחה ולא עדות סטטיסטית.

מסקנה 4.1. עם הפולינום הקבוע q≡10q\equiv10:  BPP ⁣(110,1)=RP\ \mathrm{BPP}\!\left(\frac1{10},1\right)=\mathrm{RP}. □\square

משפט 5: מהסתברות לספירה במרחב אחיד סופי

ניסוח. יהי Ω\Omega מרחב מדגם סופי עם התפלגות אחידה, ותהי E⊆ΩE\subseteq\Omega. אזי ∣E∣=Pr⁡[E]⋅∣Ω∣.|E|=\Pr[E]\cdot|\Omega| .

הוכחה. התפלגות אחידה מוגדרת על ידי Pr⁡[E]=∣E∣∣Ω∣\Pr[E]=\frac{|E|}{|\Omega|}; כפל בשני האגפים ב-∣Ω∣|\Omega| נותן את הטענה. ■\blacksquare

הערה: סטודנט שאל בכיתה "האם יש משפט שאומר שהגודל של הקבוצה הוא כמות המאורעות כפול ההסתברות?" והתשובה הייתה: "זה לא משפט. זו ההגדרה של התפלגות אחידה" [01:18:49]. הפורמליות הזאת נראית זניחה, אבל היא הצעד היחיד בכל שלושת הסעיפים (ג), (ד) ו-(ה) שבו עוברים מעולם ההסתברות לעולם הקומבינטורי — ובלעדיו אין הוכחה.

מסקנה 5.1 (הכלי שנשתמש בו פעמיים). אם Pr⁡[E]<1∣Ω∣\Pr[E]<\frac{1}{|\Omega|} אז E=∅E=\emptyset. אכן, ∣E∣=Pr⁡[E]⋅∣Ω∣<1|E|=\Pr[E]\cdot|\Omega|<1, ו-∣E∣|E| הוא מספר שלם אי-שלילי, ולכן ∣E∣=0|E|=0. □\square

דוגמאות ותרגילים מהשיעור

תרגיל 1, סעיף (ג): לכל A,B∈BPPA,B\in\mathrm{BPP} מתקיים A∩B∈BPPA\cap B\in\mathrm{BPP}

הניסוח כפי שנתון. "הוכיחו את הטענות הבאות. (ג) לכל A,B∈BPPA,B\in\mathrm{BPP} מתקיים A∩B∈BPPA\cap B\in\mathrm{BPP}."

הניסיון הראשון, שנכשל — ולמה חשוב לראות אותו

השיעור התחיל בדיוק כמו שסטודנט היה מתחיל: פותחים את ההגדרה עם הקבועים המקוריים 23\frac23, בונים את המכונה הטבעית "הרץ את שתיהן וקבל אם שתיהן קיבלו", ואז מגיעים לניתוח הסמנטי ומקבלים Pr⁡[M accepts x]=(23)2=49.\Pr[M\text{ accepts }x]=\left(\tfrac23\right)^2=\tfrac49 . "זה לצערנו לא מספיק טוב. זה קטן ממש משני שליש — זה אפילו קטן מחצי" [00:10:10]. כלומר המכונה שבנינו גרועה ממטבע.

השלב הבא הוא הלקח המתודי המרכזי של השיעור [00:14:07]: חוזרים אחורה ומחפשים איפה נשארה חירות שלא נוצלה. החירות היא ההעצמה — לא היינו חייבים להתחיל מ-23\frac23. "לא להיבהל מזה. הוכחה, כשאני מתכנן אותה, יכולה להיות הרבה קדימה ואחורה."

כמה בדיוק צריך? נדרש α2≥23\alpha^2\ge\frac23, כלומר α≥2/3≈0.8165\alpha\ge\sqrt{2/3}\approx0.8165. שימו לב שאפילו 45\frac45 אינו מספיק: (45)2=1625=0.64<23\left(\frac45\right)^2=\frac{16}{25}=0.64<\frac23 (אם כי כן גדול מ-12\frac12). 910\frac9{10} עובד, ובנוחות: (910)2=81100=0.81≥23\left(\frac9{10}\right)^2=\frac{81}{100}=0.81\ge\frac23.

ההוכחה המלאה

תהיינה A,B∈BPPA,B\in\mathrm{BPP}.

שלב 0 — העצמה. לפי מסקנה 2.1, BPP=BPP ⁣(910,910)\mathrm{BPP}=\mathrm{BPP}\!\left(\frac9{10},\frac9{10}\right), ולכן A,B∈BPP ⁣(910,910)A,B\in\mathrm{BPP}\!\left(\frac9{10},\frac9{10}\right).

שלב 1 — פתיחת ההגדרות. לפי נוסח א, קיימת מכונה אקראית MAM_A הרצה בזמן פולינומי בגודל הקלט, כך שלכל xx: x∈A ⟹ Pr⁡[MA accepts x]≥910,x∉A ⟹ Pr⁡[MA rejects x]≥910.x\in A\ \Longrightarrow\ \Pr\big[M_A\text{ accepts }x\big]\ge\tfrac9{10},\qquad x\notin A\ \Longrightarrow\ \Pr\big[M_A\text{ rejects }x\big]\ge\tfrac9{10}. כמו כן קיימת מכונה אקראית MBM_B הרצה בזמן פולינומי בגודל הקלט, כך שלכל xx: x∈B ⟹ Pr⁡[MB accepts x]≥910,x∉B ⟹ Pr⁡[MB rejects x]≥910.x\in B\ \Longrightarrow\ \Pr\big[M_B\text{ accepts }x\big]\ge\tfrac9{10},\qquad x\notin B\ \Longrightarrow\ \Pr\big[M_B\text{ rejects }x\big]\ge\tfrac9{10}.

שלב 2 — הבנייה. נבנה מכונה MM באופן הבא. על קלט xx:

  1. הרץ את MAM_A על xx.
  2. הרץ את MBM_B על xx, באופן בלתי תלוי בשלב 1.
  3. אם MAM_A קיבלה את xx וגם MBM_B קיבלה את xx — קבל; אחרת — דחה.

שלב 3 — ניתוח זמן ריצה. יהי xx. זמן הריצה של MAM_A על xx פולינומי ב-∣x∣|x|; זמן הריצה של MBM_B על xx פולינומי ב-∣x∣|x|; שלב 3 הוא השוואה בעלות O(1)O(1). סכום של שני פולינומים הוא פולינום, ולכן timeM(x)\mathrm{time}_M(x) פולינומי ב-∣x∣|x|.

שלב 4 — ניתוח סמנטי. יהי xx.

מקרה א: x∈A∩Bx\in A\cap B. אז x∈Ax\in A וגם x∈Bx\in B, ולכן Pr⁡[MA accepts x]≥910,Pr⁡[MB accepts x]≥910.\Pr\big[M_A\text{ accepts }x\big]\ge\tfrac9{10},\qquad \Pr\big[M_B\text{ accepts }x\big]\ge\tfrac9{10}. לפי שלב 3 בבנייה, MM מקבלת את xx אם ורק אם MAM_A מקבלת את xx וגם MBM_B מקבלת את xx. לכן Pr⁡[M accepts x]=Pr⁡[MA accepts x ∧ MB accepts x]=Pr⁡[MA accepts x]⋅Pr⁡[MB accepts x]≥(910)2=81100≥23.\Pr\big[M\text{ accepts }x\big]=\Pr\big[M_A\text{ accepts }x\ \wedge\ M_B\text{ accepts }x\big]=\Pr\big[M_A\text{ accepts }x\big]\cdot\Pr\big[M_B\text{ accepts }x\big]\ge\left(\tfrac9{10}\right)^2=\tfrac{81}{100}\ge\tfrac23 . המעבר האמצעי — פירוק המכפלה — חוקי בזכות שלב 2 בבנייה בלבד: שתי ההרצות משתמשות בסיביות אקראיות טריות, ולכן שני המאורעות בלתי תלויים.

חשבון תקציב הטעות, במפורש. הסתברות הטעות של MM על yes-instance היא 1−81100=19100=0.19≤131-\frac{81}{100}=\frac{19}{100}=0.19\le\frac13. לחלופין, בלי להיעזר באי-תלות כלל, חסם האיחוד נותן Pr⁡[M rejects x]=Pr⁡[MA rejects x ∨ MB rejects x]≤Pr⁡[MA rejects x]+Pr⁡[MB rejects x]≤110+110=15≤13.\Pr\big[M\text{ rejects }x\big]=\Pr\big[M_A\text{ rejects }x\ \vee\ M_B\text{ rejects }x\big]\le\Pr\big[M_A\text{ rejects }x\big]+\Pr\big[M_B\text{ rejects }x\big]\le\tfrac1{10}+\tfrac1{10}=\tfrac15\le\tfrac13 . זה הלב הכמותי של כל הסעיף: הצירוף מכפיל את הסתברויות ההצלחה ולכן מחבר את הסתברויות הטעות. עם 23\frac23 מקבלים תקציב טעות 13+13=23\frac13+\frac13=\frac23 — יותר מהכול, ולכן שום דבר. עם 910\frac9{10} מקבלים תקציב 15\frac15, ונשאר מרווח. ההעצמה היא בדיוק הכלי שקונה את המרווח הזה.

מקרה ב: x∉A∩Bx\notin A\cap B. אז x∉Ax\notin A או x∉Bx\notin B. זו טענת "או", והיא משרה את החלוקה למקרים.

מקרה ב.1: x∉Ax\notin A. אז Pr⁡[MA rejects x]≥910\Pr\big[M_A\text{ rejects }x\big]\ge\frac9{10}. לפי שלב 3 בבנייה ולפי דה-מורגן, MM דוחה את xx אם ורק אם MAM_A דוחה את xx או MBM_B דוחה את xx. לכן Pr⁡[M rejects x]=Pr⁡[MA rejects x ∨ MB rejects x] ≥ Pr⁡[MA rejects x] ≥ 910 ≥ 23.\Pr\big[M\text{ rejects }x\big]=\Pr\big[M_A\text{ rejects }x\ \vee\ M_B\text{ rejects }x\big]\ \ge\ \Pr\big[M_A\text{ rejects }x\big]\ \ge\ \tfrac9{10}\ \ge\ \tfrac23 . אי-השוויון הראשון הוא מונוטוניות ההסתברות: המאורע {MA rejects x}\{M_A\text{ rejects }x\} מוכל במאורע {MA rejects x∨MB rejects x}\{M_A\text{ rejects }x\vee M_B\text{ rejects }x\}, ואם E⊆FE\subseteq F אז Pr⁡[E]≤Pr⁡[F]\Pr[E]\le\Pr[F]. במקרה הזה אין צורך באי-תלות כלל.

מקרה ב.2: x∉Bx\notin B. בדומה, בהחלפת התפקידים A↔BA\leftrightarrow B ו-MA↔MBM_A\leftrightarrow M_B בלבד: Pr⁡[M rejects x] ≥ Pr⁡[MB rejects x] ≥ 910 ≥ 23.\Pr\big[M\text{ rejects }x\big]\ \ge\ \Pr\big[M_B\text{ rejects }x\big]\ \ge\ \tfrac9{10}\ \ge\ \tfrac23 .

בשני המקרים Pr⁡[M rejects x]≥23\Pr[M\text{ rejects }x]\ge\frac23.

מסקנה. MM היא מכונה אקראית פולינומית שמקיימת את שני תנאי BPP ⁣(23,23)\mathrm{BPP}\!\left(\frac23,\frac23\right) עבור A∩BA\cap B, ולכן A∩B∈BPPA\cap B\in\mathrm{BPP}. ■\blacksquare

שלוש הערות שנולדו משאלות בכיתה

(1) "מי אמר שאין תלות?" [00:08:29]. אי-תלות אינה מתנה — צריך לבנות אותה ולציין אותה. התשובה: "תמיד אפשר, כי אני פשוט לוקח source של אקראיות ומושך ממנו מחדש" [00:09:04]. ולכן המילים "באופן בלתי תלוי" בשלב 2 אינן קישוט; בלעדיהן שלב הכפל בניתוח הסמנטי אינו מוצדק.

(2) למה רק בשלב 2 כתוב "באופן בלתי תלוי"? [00:16:44]. כי MAM_A רצה ראשונה ואין לה במה להיות תלויה. המודל שהמרצה נתן: "תחשבו על האקראיות כאילו יש לי מטבעות. האלגוריתם כל פעם מטיל מטבע, ואני אומר ל-MBM_B: תתעלמי מכל המטבעות שהוטלו עד עכשיו — צריכה מטבע? תטילי מטבע חדש" [00:17:15]. מבחינה הסתברותית התמונה סימטרית, אבל מבחינה אלגוריתמית יש סדר ביצוע, וההערה שייכת למקום שבו התלות הייתה יכולה להיווצר.

(3) הווריאציה עם קיצור דרך. סטודנט הציע לנסח את המכונה כ-"הרץ את MAM_A; אם דחתה — דחה; אחרת הרץ את MBM_B והחזר את תשובתה" [00:14:07]. המרצה: "בעיקרון הניתוח יעבוד, אבל אתה צודק שהייתי מעדיף לעשות ככה." ההצדקה: אפשר לחשוב שתיאורטית מריצים את שתיהן מראש, והמכונה פשוט לא משתמשת בהרצה השנייה — ההתפלגות אינה משתנה. "זה לא באמת משפיע על הניתוח ההסתברותי, אבל יותר קשה לראות את זה" [00:15:42]. המסקנה המעשית: במבחן, נסחו את הבנייה בצורה שהניתוח שלה מיידי.

(4) "אפשר במקום להעצים פשוט להריץ הרבה פעמים?" [00:15:42]. אפשר — אבל אז אתם מוכיחים את משפט ההעצמה מחדש בידיים. "אני מעדיף להימנע, אם יש לי את זה כבר מוכן. זה בעצם השלב שהכנסתי לתוך קופסה שחורה" [00:16:14].

תרגיל 3: פתיחה — איך ניגשים לארבע המחלקות

לפני כל סעיף, המרצה עשה שלב שהוא שווה תרגיל בפני עצמו: סריקה של ארבע ההגדרות מול ההגדרות המוכרות, בלי לטעון דבר [00:27:01]–[00:29:05].

מחלקההיחס להגדרה המוכרתההבדל
C1\mathrm{C}_1=BPP(α,1)=\mathrm{BPP}(\alpha,1)אין הבדל — התאמה אחד-לאחד
C2\mathrm{C}_2=BPP(α,α)=\mathrm{BPP}(\alpha,\alpha)אין הבדל — התאמה אחד-לאחד
C3\mathrm{C}_3דומה ל-BPP(α,α)\mathrm{BPP}(\alpha,\alpha) נוסח באורך rr קבוע (55) ולא p(∥x∥)p(\|x\|)
C4\mathrm{C}_4דומה ל-BPP\mathrm{BPP} נוסח בהסף אינו קבוע, ואותו pp מופיע באורך rr ובמכנה הטעות

"עכשיו אני יודע ש-C3\mathrm{C}_3 ו-C4\mathrm{C}_4 אינן זהות להגדרות של BPP\mathrm{BPP} בשום צורה ועם שום הסתברויות, ואני יודע גם איפה ההבדל. עכשיו השאלה מה אני יכול להגיד על זה" [00:29:05].

תרגיל 3, סעיף (א): אם α=110\alpha=\frac1{10} אז C1=RP\mathrm{C}_1=\mathrm{RP} — נכונה

פתרון. לפי הגדרה 1, C1=BPP ⁣(110,1)\mathrm{C}_1=\mathrm{BPP}\!\left(\frac1{10},1\right). לפי משפט 4 (שיעור 17, משפט 1) עם הפולינום הקבוע q≡10q\equiv10: BPP ⁣(110,1)=RP.■\mathrm{BPP}\!\left(\tfrac1{10},1\right)=\mathrm{RP}. \qquad\blacksquare

זהו כל הפתרון. "הטענה נכונה. למה? כי הוכחנו אותה בשיעור. במילה אחת: אמפליפיקציה" [00:29:36]. סעיף זה נפתר בעל פה בלבד ואינו בסיכום.

ההרחבה שהמרצה נתן. בטעות חד-צדדית אפשר להעצים גם מהסתברות הצלחה זעירה: "אם זה היה BPP ⁣(1n,1)\mathrm{BPP}\!\left(\frac1n,1\right) זה עדיין היה RP\mathrm{RP}, כי הטעות חד-צדדית" [00:30:07]. לעומת זאת בטעות דו-צדדית נדרש ששני הצדדים יהיו גדולים מ-12\frac12 באופן משמעותי — "חצי ועוד 11 חלקי פולינום; זה לא יכול להיות חצי ועוד 12n\frac{1}{2^n}" [00:30:07]. ההבדל הזה הוא בדיוק ההבדל בין משפט 4 למשפט 2, והוא הנקודה שהסעיפים (א) ו-(ב) בונים עליה יחד.

תרגיל 3, סעיף (ב): אם α=110\alpha=\frac1{10} אז C2=BPP\mathrm{C}_2=\mathrm{BPP} — שגויה

זהו הסעיף הראשון שנפתר בכתב, בעמוד 3 בסיכום.

מה צריך להראות. אי-שוויון בין קבוצות, כלומר: שפה השייכת לאחת ולא לשנייה [00:31:07]. הכיוון הנוח הוא למצוא שפה ב-C2\mathrm{C}_2 שאינה ב-BPP\mathrm{BPP}.

נתבונן ב-HALT\mathrm{HALT}.

חלק ראשון: HALT∉BPP\mathrm{HALT}\notin\mathrm{BPP}. זה משפט 3 לעיל: HALT∉PSPACE\mathrm{HALT}\notin\mathrm{PSPACE} ולכן HALT∉BPP\mathrm{HALT}\notin\mathrm{BPP}.

חלק שני: HALT∈C2\mathrm{HALT}\in\mathrm{C}_2. נגדיר מכונה אקראית MM באופן הבא. על קלט xx:

  1. הגרל r∈{0,1}r\in\{0,1\} באופן אחיד.
  2. אם r=1r=1 — קבל; אחרת — דחה.

זמן ריצה. MM מטילה מטבע אחד ומחליטה; זמן הריצה שלה קבוע, ובפרט פולינומי ב-∣x∣|x|.

ניתוח סמנטי. יהי xx.

  • אם x∈HALTx\in\mathrm{HALT}:  Pr⁡[M accepts x]=12≥110\ \Pr\big[M\text{ accepts }x\big]=\frac12\ge\frac1{10}.
  • אם x∉HALTx\notin\mathrm{HALT}:  Pr⁡[M rejects x]=12≥110\ \Pr\big[M\text{ rejects }x\big]=\frac12\ge\frac1{10}.

שני התנאים של C2\mathrm{C}_2 עם α=110\alpha=\frac1{10} מתקיימים, ולכן HALT∈C2\mathrm{HALT}\in\mathrm{C}_2.

מסקנה. HALT∈C2∖BPP\mathrm{HALT}\in\mathrm{C}_2\setminus\mathrm{BPP}, ולכן C2≠BPP\mathrm{C}_2\ne\mathrm{BPP}. הטענה שגויה. ■\blacksquare

מה באמת קרה כאן. המכונה MM אפילו לא מסתכלת בקלט. הניסוח של המרצה: "אם הסתברות ההצלחה היא סך הכול גדולה שווה עשירית — I might as well flip a coin" [00:34:48]. למעשה ההוכחה מראה יותר מהנדרש: לכל שפה AA (ולא רק HALT\mathrm{HALT}) אותה מכונה מוכיחה A∈C2A\in\mathrm{C}_2, ולכן עבור כל α≤12\alpha\le\frac12 המחלקה C2=BPP(α,α)\mathrm{C}_2=\mathrm{BPP}(\alpha,\alpha) היא מחלקת כל השפות — בדיוק כפי ששיעור 16 ציין עבור BPP ⁣(12,12)\mathrm{BPP}\!\left(\frac12,\frac12\right).

הערה על אנלוגיה שהמרצה הזכיר. ב-[00:34:48] הוא ציין ש"זה מאוד מזכיר את מה שעשינו עם NP\mathrm{NP} בפעם הקודמת, עם ה'קיים וקיים'" — שם גם כן מחלקה שנראתה כמו NP\mathrm{NP} התגלתה כמחלקת כל השפות, ו-HALT\mathrm{HALT} שימשה כעד. זו אנלוגיה מתודית בלבד; המחלקה ההיא (שיעור 24) היא אובייקט אחר לגמרי, ואין להצליב את התוצאות.

תרגיל 3, סעיף (ג): אם α=1\alpha=1 אז C2=P\mathrm{C}_2=\mathrm{P} — נכונה

סעיף זה נפתר בעל פה [00:35:19]–[00:36:21] ואינו בסיכום. C2=BPP(1,1)\mathrm{C}_2=\mathrm{BPP}(1,1).

כיוון C2⊆P\mathrm{C}_2\subseteq\mathrm{P}. תהא A∈BPP(1,1)A\in\mathrm{BPP}(1,1). לפי נוסח ב קיימת מכונה דטרמיניסטית MAM_A הרצה בזמן פולינומי וקיים פולינום pp כך שלכל xx: x∈A⟹Pr⁡r∈{0,1}p(∣x∣)[MA accepts (x,r)]≥1,x∉A⟹Pr⁡r∈{0,1}p(∣x∣)[MA rejects (x,r)]≥1.x\in A\Longrightarrow\Pr_{r\in\{0,1\}^{p(|x|)}}\big[M_A\text{ accepts }(x,r)\big]\ge1,\qquad x\notin A\Longrightarrow\Pr_{r\in\{0,1\}^{p(|x|)}}\big[M_A\text{ rejects }(x,r)\big]\ge1 . הסתברות אינה עולה על 11, ולכן אלה שוויונות. במרחב אחיד סופי, מאורע בהסתברות 11 הוא כל המרחב (משפט 5 עם המשלים): קבוצת ה-rr-ים שעליהם המכונה טועה היא בגודל 0⋅2p(∣x∣)=00\cdot2^{p(|x|)}=0, כלומר ריקה. לכן לכל r∈{0,1}p(∣x∣)r\in\{0,1\}^{p(|x|)} המכונה MAM_A עונה נכון על (x,r)(x,r).

נבנה מכונה דטרמיניסטית MM. על קלט xx:

  1. חשב p(∣x∣)p(|x|) וכתוב r=0p(∣x∣)r=0^{p(|x|)}.
  2. הרץ את MAM_A על (x,r)(x,r) והחזר את תשובתה.

זמן ריצה. pp פולינום קבוע וניתן לחישוב בזמן פולינומי, וכתיבת 0p(∣x∣)0^{p(|x|)} אורכת O(p(∣x∣))O(p(|x|)); הרצת MAM_A על (x,r)(x,r) פולינומית ב-∣x∣+p(∣x∣)|x|+p(|x|), שהוא פולינומי ב-∣x∣|x|. לכן timeM(x)\mathrm{time}_M(x) פולינומי ב-∣x∣|x|.

ניתוח סמנטי. לפי הקודם MAM_A צודקת על כל rr, ובפרט על r=0p(∣x∣)r=0^{p(|x|)}. לכן MM מקבלת את xx אם ורק אם x∈Ax\in A, כלומר MM מכריעה את AA בזמן פולינומי, ולכן A∈PA\in\mathrm{P}. □\square

כיוון P⊆C2\mathrm{P}\subseteq\mathrm{C}_2. תהא A∈PA\in\mathrm{P} ותהי MAM_A מכונה דטרמיניסטית פולינומית שמכריעה אותה. MAM_A היא בפרט מכונה אקראית שאינה מטילה אף מטבע, ולכן לכל xx: אם x∈Ax\in A אז Pr⁡[MA accepts x]=1\Pr[M_A\text{ accepts }x]=1, ואם x∉Ax\notin A אז Pr⁡[MA rejects x]=1\Pr[M_A\text{ rejects }x]=1. שני התנאים של BPP(1,1)\mathrm{BPP}(1,1) מתקיימים, ולכן A∈C2A\in\mathrm{C}_2. □\square

מכאן C2=P\mathrm{C}_2=\mathrm{P}. ■\blacksquare

הניסוח של המרצה [00:36:21]: "אם הסתברות ההצלחה היא אחת, גם בדחייה וגם בקבלה — היא תמיד צודקת. איך אני מראה שזה P\mathrm{P}? אני בונה מכונה דטרמיניסטית שפשוט מכניסה למכונה האקראית מחרוזת אקראית קבועה, ובגלל שהסתברות ההצלחה היא אחת אני יודע שזה יחזיר את התשובה הנכונה."

תרגיל 3, סעיף (ד): אם α=23\alpha=\frac23 אז C3=P\mathrm{C}_3=\mathrm{P} — נכונה

זהו הסעיף הארוך בסיכום (עמודים 4–5) ובהקלטה [00:45:18]–[01:10:14].

כיוון ראשון: C3⊆P\mathrm{C}_3\subseteq\mathrm{P}

תהא A∈C3A\in\mathrm{C}_3. אזי קיימת מכונת טיורינג דטרמיניסטית MAM_A הרצה בזמן פולינומי בגודל הקלט, כך שלכל xx: x∈A ⟹ Pr⁡r∈{0,1}5[MA accepts (x,r)]≥23,x∉A ⟹ Pr⁡r∈{0,1}5[MA rejects (x,r)]≥23.x\in A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^5}\big[M_A\text{ accepts }(x,r)\big]\ge\tfrac23,\qquad x\notin A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^5}\big[M_A\text{ rejects }(x,r)\big]\ge\tfrac23 .

נבנה מכונה דטרמיניסטית MM באופן הבא. על קלט xx:

  1. לכל r∈{0,1}5r\in\{0,1\}^5: 1.1. הרץ את MAM_A על (x,r)(x,r).
  2. החזר את התשובה של MAM_A שחזרה על עצמה הכי הרבה פעמים (הצבעת רוב).

ניתוח זמן ריצה. בהרצת MM על xx, מספר האיטרציות בלולאה הוא ∣{0,1}5∣=25=32|\{0,1\}^5|=2^5=32 — קבוע, שאינו תלוי ב-xx, כי אורך rr קבוע. זמן הריצה של כל איטרציה: MAM_A רצה על (x,r)(x,r) שאורכו ∣x∣+5|x|+5, ולכן פולינומי ב-∣x∣|x|. ניהול שני המונים עולה O(1)O(1) לאיטרציה. לכן timeM(x) ≤ 32⋅poly(∣x∣)+O(1) = poly(∣x∣).\mathrm{time}_M(x)\ \le\ 32\cdot\mathrm{poly}(|x|)+O(1)\ =\ \mathrm{poly}(|x|).

הערה: בהרצה הנקודה הזאת עוררה ויכוח קצר [00:50:18]: "זמן קבוע?" — "לא, הזמן אינו קבוע, כי אני מריץ את המכונה על כל rr, והמכונה רצה בזמן פולינומי. מספר האיטרציות הוא הקבוע." הבחנה קטנה, אבל היא בדיוק ההבדל בין טענה נכונה לטענה שגויה.

ניתוח סמנטי. יהי xx.

מקרה א: x∈Ax\in A. אז Pr⁡r∈{0,1}5[MA accepts (x,r)]≥23\Pr_{r\in\{0,1\}^5}\big[M_A\text{ accepts }(x,r)\big]\ge\frac23. כאן עוברים מהסתברות לקומבינטוריקה (משפט 5), כי rr נדגם אחיד ממרחב בגודל 3232: ∣{r∈{0,1}5 : MA accepts (x,r)}∣ = Pr⁡r[MA accepts (x,r)]⋅32 ≥ 23⋅32 = 643 > 16.\Big|\big\{r\in\{0,1\}^5\ :\ M_A\text{ accepts }(x,r)\big\}\Big|\ =\ \Pr_r\big[M_A\text{ accepts }(x,r)\big]\cdot32\ \ge\ \tfrac23\cdot32\ =\ \tfrac{64}{3}\ >\ 16 . בסך הכול יש 3232 מחרוזות, ויותר מ-1616 מהן מובילות ל-accept; לכן accept היא הרוב המוחלט, ולכן MM מקבלת את xx.

מקרה ב: x∉Ax\notin A. בדומה, בהחלפת accept ב-reject: ∣{r∈{0,1}5 : MA rejects (x,r)}∣ ≥ 23⋅32 > 16,\Big|\big\{r\in\{0,1\}^5\ :\ M_A\text{ rejects }(x,r)\big\}\Big|\ \ge\ \tfrac23\cdot32\ >\ 16 , ולכן reject היא הרוב המוחלט ו-MM דוחה את xx.

לכן MM מכריעה את AA בזמן פולינומי, כלומר A∈PA\in\mathrm{P}. □\square

כיוון שני: P⊆C3\mathrm{P}\subseteq\mathrm{C}_3

תהא A∈PA\in\mathrm{P}. אזי קיימת מכונה דטרמיניסטית MAM_A שמכריעה את AA בזמן פולינומי בגודל הקלט.

נבנה מכונה דטרמיניסטית MM שהקלט שלה הוא הזוג (x,r)(x,r):

  1. הרץ את MAM_A על xx והחזר את אותה תשובה (התעלם מ-rr).

ניתוח זמן ריצה. בריצתה על (x,r)(x,r), MM מריצה את MAM_A על xx; זמן הריצה פולינומי ב-∣x∣|x|, ובפרט פולינומי ב-∣(x,r)∣=∣x∣+5|(x,r)|=|x|+5.

ניתוח סמנטי. יהי xx.

  • אם x∈Ax\in A: MAM_A מקבלת את xx, ולכן MM מקבלת את (x,r)(x,r) עבור כל rr, ומכאן  Pr⁡r∈{0,1}5[M accepts (x,r)]=1≥23\ \Pr_{r\in\{0,1\}^5}\big[M\text{ accepts }(x,r)\big]=1\ge\frac23.
  • אם x∉Ax\notin A: MAM_A דוחה את xx, ולכן MM דוחה את (x,r)(x,r) עבור כל rr, ומכאן  Pr⁡r∈{0,1}5[M rejects (x,r)]=1≥23\ \Pr_{r\in\{0,1\}^5}\big[M\text{ rejects }(x,r)\big]=1\ge\frac23.

לכן A∈C3A\in\mathrm{C}_3. □\square

משני הכיוונים: C3=P\mathrm{C}_3=\mathrm{P}. ■\blacksquare

ארבע מלכודות בסעיף הזה, כולן מההקלטה

(1) הממשק — המלכודת המרכזית [01:04:12], [01:05:19]. בכיוון P⊆C3\mathrm{P}\subseteq\mathrm{C}_3 מפתה לכתוב "נתבונן ב-MAM_A עצמה". זה שגוי. "האינטרפייס שלה עם העולם הוא לא האינטרפייס הנכון. אני חייב מכונה שהקלט שלה הוא הזוג" — הגדרת C3\mathrm{C}_3 מדברת על Pr⁡r[M accepts (x,r)]\Pr_r[M\text{ accepts }(x,r)], ולכן MM חייבת לקבל (x,r)(x,r). "הקלט של MM צריך להיות xx ו-rr. זה החזות של המחלקה הזאת. על זה לא ליפול."

(2) "יהי xx" ולא "יהי (x,r)(x,r)" [01:07:32]. בניתוח הסמנטי של הכיוון השני, מה הכמת הראשון? "תשימו לב להגדרה של C3\mathrm{C}_3: כתוב לכל xx. אז אם אני רוצה להוכיח ש-A∈C3A\in\mathrm{C}_3 אני אתחיל ב'יהי xx' ולא ב'יהי xx ו-rr'. בסופו של דבר הכול חוזר להגדרה; השאלה היא רק על איזו הגדרה להסתכל."

(3) למה α>12\alpha>\frac12 הכרחי [00:42:41]–[00:45:18]. סטודנט שאל אם ל-α\alpha יש בכלל משמעות. יש — הוא חייב להיות גדול מחצי, אחרת אין רוב. נניח α=110\alpha=\frac1{10}: כל מה שנתון הוא שהתשובה הנכונה חוזרת לפחות ב-110\frac1{10} מהמקרים. "היא יכולה להיות עשירית, היא יכולה להיות שלושת רבעי — אני לא יודע. אני לא יודע אם היא יותר מחצי או פחות מחצי." ולכן:

  • כלל "קבל אם קיים rr אחד שמקבל" אינו עובד בטעות דו-צדדית: גם על x∉Ax\notin A קיימת הסתברות חיובית ש-MAM_A תקבל, ואז תיפול על אותו rr ותטעה.
  • כלל הרוב עובד רק כאשר α>12\alpha>\frac12: אז "התשובה הנכונה תחזור על עצמה לפחות שני שלישים מהפעמים, ולכן היא בהכרח תהיה התשובה שחזרה הכי הרבה פעמים."
  • הערה מעניינת [00:45:18]: אילו היה נתון ש-ההסתברות שווה בדיוק 110\frac1{10}, אפשר היה לקחת את התשובה שחזרה הכי מעט פעמים — כלומר לעשות flip — ולקבל הסתברות הצלחה 910\frac9{10}. "בשוויון, ה-11 פחות נשאר עם שוויון; ב-'גדול שווה' ה-11 פחות הופך ל-'קטן שווה'." זה בדיוק המקום שבו כמת ≥\ge הורס את הטיעון.

(4) למה אורך rr הקבוע הכרחי, ומה בדיוק הגבול [00:51:24]–[00:52:59]. שאלת סטודנט: מה היה קורה אילו ∣r∣|r| לא היה קבוע?

  • אם ∣r∣=p(∣x∣)|r|=p(|x|) פולינומי: מספר האיטרציות הוא 2p(∣x∣)2^{p(|x|)} — מעריכי, וההוכחה קורסת. ולא במקרה: זו בדיוק הוכחת BPP⊆PSPACE\mathrm{BPP}\subseteq\mathrm{PSPACE} משיעור 16, ו-"P=BPP\mathrm{P}=\mathrm{BPP}? זו שאלה פתוחה."
  • אם ∣r∣=c⋅log⁡∣x∣|r|=c\cdot\log|x|: אז מספר האיטרציות הוא 2clog⁡∣x∣=∣x∣c2^{c\log|x|}=|x|^c — פולינומי. מכפלה של פולינום (מספר איטרציות) בפולינום (זמן לאיטרציה) היא פולינום. ההוכחה עדיין עוברת, ולכן גם עם אורך אקראיות לוגריתמי המחלקה שווה ל-P\mathrm{P}.

(5) "קבוע הוא פולינום, אז אפשר להגיד מיד C3⊆BPP\mathrm{C}_3\subseteq\mathrm{BPP}?" [00:55:43]–[00:56:44]. כן, ובצדק: 55 הוא פולינום קבוע, ולכן לפי נוסח ב מתקיים C3⊆BPP\mathrm{C}_3\subseteq\mathrm{BPP} ישירות מההגדרה. אבל "כל קבוע הוא פולינום; לא כל פולינום הוא קבוע", ולכן ההכלה היא בכיוון אחד בלבד והיא לא הדוקה. "הקבוע נותן לי אקסטרה אינפורמציה, ולכן אני יכול להוכיח משהו יותר חזק" — והמשהו החזק הוא C3=P\mathrm{C}_3=\mathrm{P}.

(6) קאונטר מפורש מול "רוב" [00:59:31]–[01:01:36]. בשיעור מוקדם יותר בסמסטר, בהוכחה מקבילה, המרצה כתב במפורש מונה והשווה ל-23⋅2p(∣x∣)\frac23\cdot2^{p(|x|)}; כאן הוא כתב פשוט "החזר את התשובה שחזרה הכי הרבה פעמים". שתי הצורות נכונות. הנימוק להבדל: "אז היה שלב מוקדם יותר בסמסטר ורציתי להדגיש איך אני עושה את זה; שם המספר היה 2p(∣x∣)2^{p(|x|)} ורציתי על הדרך להזכיר לכם שאני צריך להיות מסוגל לחשב את p(∣x∣)p(|x|) בזמן ובמקום. עכשיו אנחנו גדולים יותר ואפשר לעשות את זה טיפה יותר אימפליציטית." הכלל שנשאר: כל פונקציה מספרית שאתם מחשבים בתוך בנייה — ודאו שהיא ישימה בזמן ובמקום, ואמרו את זה כשזה מהותי. כאן זה לא: 1616 הוא קבוע.

תרגיל 3, סעיף (ה): C4=NP\mathrm{C}_4=\mathrm{NP} — שקולה לטענה פתוחה

סעיף זה נפתר בעל פה [01:10:48]–[01:19:20] ואינו בסיכום.

הטענה שנוכיח. C4=P\mathrm{C}_4=\mathrm{P}.

כיוון ראשון: C4⊆P\mathrm{C}_4\subseteq\mathrm{P}

תהא A∈C4A\in\mathrm{C}_4 עם מכונה דטרמיניסטית פולינומית MAM_A ופולינום pp כבהגדרה 3. יהי xx, ונסמן Ω={0,1}p(∣x∣),∣Ω∣=2p(∣x∣),\Omega=\{0,1\}^{p(|x|)},\qquad |\Omega|=2^{p(|x|)}, ותהי E⊆ΩE\subseteq\Omega קבוצת ה-rr-ים שעליהם MAM_A טועה — כלומר דוחה את (x,r)(x,r) כאשר x∈Ax\in A, או מקבלת את (x,r)(x,r) כאשר x∉Ax\notin A. הקלט xx קבוע, ולכן "מקבלת" ו"דוחה" הם מאורעות משלימים באותו מרחב (שיעור 16, ההערה שאחרי הגדרה 3), ולכן בשני המקרים Pr⁡r∈Ω[r∈E] ≤ 1−(1−12p(∣x∣)+1) = 12p(∣x∣)+1.\Pr_{r\in\Omega}[r\in E]\ \le\ 1-\left(1-\frac{1}{2^{p(|x|)+1}}\right)\ =\ \frac{1}{2^{p(|x|)+1}} . לפי משפט 5: ∣E∣ = Pr⁡[E]⋅∣Ω∣ ≤ 12p(∣x∣)+1⋅2p(∣x∣) = 12.|E|\ =\ \Pr[E]\cdot|\Omega|\ \le\ \frac{1}{2^{p(|x|)+1}}\cdot2^{p(|x|)}\ =\ \frac12 . ∣E∣|E| הוא מספר שלם אי-שלילי שקטן או שווה ל-12\frac12, ולכן ∣E∣=0|E|=0 (מסקנה 5.1). כלומר: MAM_A צודקת על כל r∈Ωr\in\Omega, ללא יוצא מן הכלל.

לכן נבנה מכונה דטרמיניסטית MM. על קלט xx:

  1. חשב p(∣x∣)p(|x|) וכתוב r=0p(∣x∣)r=0^{p(|x|)}.
  2. הרץ את MAM_A על (x,r)(x,r) והחזר את תשובתה.

זמן ריצה. כמו בסעיף (ג): חישוב p(∣x∣)p(|x|) וכתיבת המחרוזת פולינומיים, והרצת MAM_A על קלט באורך ∣x∣+p(∣x∣)|x|+p(|x|) פולינומית ב-∣x∣|x|.

ניתוח סמנטי. מהחלק הקודם, MAM_A צודקת על (x,r)(x,r) עבור כל rr, ובפרט עבור r=0p(∣x∣)r=0^{p(|x|)}. לכן MM מכריעה את AA, ומכאן A∈PA\in\mathrm{P}. □\square

כיוון שני: P⊆C4\mathrm{P}\subseteq\mathrm{C}_4

תהא A∈PA\in\mathrm{P} עם מכונה דטרמיניסטית פולינומית MAM_A שמכריעה אותה. נבחר p(n)=1p(n)=1 ונגדיר מכונה MM שעל קלט (x,r)(x,r) מריצה את MAM_A על xx ומחזירה את תשובתה. אז לכל xx, הסתברות התשובה הנכונה היא 11, ובוודאי 1 ≥ 1−12p(∣x∣)+1.1\ \ge\ 1-\frac{1}{2^{p(|x|)+1}} . לכן A∈C4A\in\mathrm{C}_4. □\square

מכאן C4=P\mathrm{C}_4=\mathrm{P}.

ומכאן ההכרעה של הטענה

הטענה "C4=NP\mathrm{C}_4=\mathrm{NP}" שקולה לטענה "P=NP\mathrm{P}=\mathrm{NP}", שהיא בעיה פתוחה. לכן התשובה בסעיף היא: שקולה לטענה פתוחה. ■\blacksquare

מה זה לא שקול לו [01:19:54]–[01:20:26]. סטודנט הציע שאולי אפשר לקשור את זה ל-P=BPP\mathrm{P}=\mathrm{BPP}. המרצה: "לא. C4\mathrm{C}_4 הוא P\mathrm{P} — אין קשר ל-BPP\mathrm{BPP}. אתה לא תצליח להראות שזה שקול בלי להראות ש-P=BPP\mathrm{P}=\mathrm{BPP}, ואת זה אני לא יודע." כלומר: ברגע שהראינו C4=P\mathrm{C}_4=\mathrm{P}, כל שאלה על C4\mathrm{C}_4 מול מחלקה D\mathcal{D} מתורגמת לשאלה "P=D\mathrm{P}=\mathcal{D}?" — ולכן צריך לבחור את הבעיה הפתוחה הנכונה.

דוגמה: תרגיל הצעצוע שהמרצה הוציא מהחישוב

כדי לבודד את הרעיון של סעיף (ה) מהפרמטרים, המרצה נתן את המקרה הבא [01:14:04]–[01:18:19].

הנתון. תהי A⊆{1,2,…,10}A\subseteq\{1,2,\dots,10\} קבוצה שרירותית — לא ידוע עליה דבר, והיא אינה אקראית. נתון שאם דוגמים xx אחיד מ-{1,…,10}\{1,\dots,10\} אז Pr⁡[x∈A] ≥ 1920.\Pr[x\in A]\ \ge\ \tfrac{19}{20}.

מה אפשר להסיק? ש-A={1,…,10}A=\{1,\dots,10\}.

הפתרון. נסמן B={1,…,10}∖AB=\{1,\dots,10\}\setminus A. אז Pr⁡[x∈B]≤1−1920=120\Pr[x\in B]\le1-\frac{19}{20}=\frac1{20}, ולפי משפט 5 ∣B∣ = Pr⁡[x∈B]⋅10 ≤ 120⋅10 = 12.|B|\ =\ \Pr[x\in B]\cdot10\ \le\ \tfrac1{20}\cdot10\ =\ \tfrac12 . ∣B∣|B| שלם אי-שלילי, ולכן ∣B∣=0|B|=0, ולכן A={1,…,10}A=\{1,\dots,10\}. ■\blacksquare

ההתאמה לסעיף (ה). {1,…,10}↔{0,1}p(∣x∣)\{1,\dots,10\}\leftrightarrow\{0,1\}^{p(|x|)},  120↔12p(∣x∣)+1\ \frac1{20}\leftrightarrow\frac{1}{2^{p(|x|)+1}},  B↔\ B\leftrightarrow קבוצת ה-rr-ים השגויים. בשני המקרים החסם על ההסתברות קטן מ-1∣Ω∣\frac{1}{|\Omega|}, ולכן הקבוצה החריגה ריקה.

הערות מהשיעור

  • [00:02:05] "ברגע שהתחלתי לכתוב אני בתנועה." ההנחיה החוזרת ביותר בשיעור: לכתוב את ההגדרות במלואן, גם את מה שנראה מובן מאליו. "לא להסתפק ב'אוקיי, אני יודע את ההגדרה, אבל איך אני אמשיך?' — ברגע שהתחלתי לכתוב אני בתנועה, ואז אני רק צריך לשמור על אינרציה. לא לדלג על השלב הזה."
  • [00:14:07] ההוכחה אינה קו ישר. "מה שקרה זה שהתחלתי, נתקעתי, חזרתי אחורה לראות איפה אני יכול לתקן, איפה יש לי עדיין חופש שלא השתמשתי בו. לא להיבהל מזה." זו הסיבה שהוא בכוונה התחיל מ-23\frac23 ולא מ-910\frac9{10}.
  • [00:05:50] "נכונות" מול "ניתוח סמנטי". המרצה מעדיף את המונח "ניתוח סמנטי": "נכונות יכול להיות כל דבר, זה תלוי מה אני רוצה להגיד. ניתוח סמנטי אומר מה אני בעצם רוצה לעשות פה."
  • [00:18:49] חלוקה למקרים. "כשאתם עושים חלוקה למקרים, תמיד תדאגו לעשות מקרה בשלילתו — אלא אם כן החלוקה למקרים מובנית בתוך ההוכחה. ברגע שיש לי טענת או, היא משרה לי חלוקה למקרים; אני לא צריך להגיד 'נניח xx לא שייך ל-AA, נניח xx כן שייך ל-AA'."
  • [00:19:51] מה בכלל אקראי כאן. לשאלה "האם צריך לכתוב את ההסתברות בהינתן ש-x∉Ax\notin A?" — "לא, זה לא נתון. הדבר הזה לא אקראי בכלל. הקלט אינו אקראי, הוא שרירותי; השייכות שלו אינה אקראית. זה שאני לא יודע את התשובה לא אומר שזה אקראי. אקראיות היא משהו שצריך להיכנס באופן מפורש."
  • [00:21:24] מתי צריך אי-תלות ומתי לא. "המקום היחיד שהתלות משחקת בו תפקיד הוא כשאני רוצה 'וגם' ולכפול. באי-תלות במקרה של האיחוד — היא לא נכנסת בכלל למשחק." לשאלת סטודנט "אבל המאורעות לא זרים" — נכון, ולכן אסור לכתוב סכום; אבל כאן צריך רק ש-E⊆F⇒Pr⁡[E]≤Pr⁡[F]E\subseteq F\Rightarrow\Pr[E]\le\Pr[F], "וזה הוכחנו ביחד".
  • [00:24:00] מתי מותר לכתוב "בדומה". "אם ההוכחות זהות עד כדי שינוי אותיות אתה יכול לכתוב 'בדומה'. כל דבר אחר — תכתוב את ההוכחה." טוב לדעת שאפשר להשתמש בזה במבחן, אם נזהרים.
  • [00:11:22] האם צריך לצטט את המשפט שהשתמשתם בו. כשמשתמשים במשפט שהוכח בשיעור אין חובה לנקוב בשמו הרשמי, "אבל מה שכן שווה לכתוב, רק כדי לוודא, זה 'אמפליפיקציה'".
  • [00:36:21] המרצה מתקן את דף התרגיל שלו. "זו הייתה טעות שלי. ב-C3\mathrm{C}_3 וב-C4\mathrm{C}_4 היה צריך להיות 'MM מקבלת את (x,r)(x,r)' ו-'MM דוחה את (x,r)(x,r)', כי המכונה דטרמיניסטית והיא צריכה לקבל את rr מבחוץ."
  • [00:38:30] שתי הדרכים לטפל באקראיות. "יש לי שתי דרכים: אחת — מכונה אקראית, ואז אני משחק עם ההסתברויות; והשנייה — מכונה דטרמיניסטית שמקבלת את הקלט האקראי מבחוץ, כלומר אני מעביר את האקראיות החוצה." ולשאלת סטודנטית: "המכונה עם שני הסרטים והסרט האקראי היא בעצם מכונה דטרמיניסטית, ומי שדואג לאקראיות הוא מי שממלא את הסרט השני. אני עושה סוג של דלגציה לאקראיות החוצה."
  • [01:07:32] הכלל שמסכם את כל שאלה 3. "בסופו של דבר הכול חוזר להגדרה. השאלה היא רק על איזו הגדרה להסתכל."
  • [01:21:28] דחייה אינה כישלון. "תחשוב שדחייה זה הצלחה. זה מבלבל כי זה נשמע שלילי, אבל דחייה כש-x∉Ax\notin A היא הצלחה. לא לבלבל בין דחייה לכישלון."
  • [01:18:19] פורמליות שאינה עולה כלום. על השאלה אם ∣E∣=Pr⁡[E]⋅∣Ω∣|E|=\Pr[E]\cdot|\Omega| הוא משפט: "זה לא משפט, זו ההגדרה של התפלגות אחידה: Pr⁡[A]=∣A∣∣Ω∣\Pr[A]=\frac{|A|}{|\Omega|}, ולכן ∣A∣=Pr⁡[A]⋅∣Ω∣|A|=\Pr[A]\cdot|\Omega|."

פערים בין הסיכום להקלטה

  • מקור: הדף המודפס של שאלה 3, עמוד 3 בסיכום. הפער: בהגדרות C3\mathrm{C}_3 ו-C4\mathrm{C}_4 כתוב "MM accepts xx" ו-"MM rejects xx", אף שהמכונה דטרמיניסטית וההסתברות נלקחת על פני rr. ההכרעה: זו טעות שהמרצה תיקן בעצמו בכיתה [00:36:21] ושתוקנה בכתב יד על גבי העמוד; הגוף כאן מביא את הנוסח המתוקן (x,r)(x,r) בכל מקום.
  • מקור: ההקלטה [00:10:10]–[00:13:34] מול עמוד 1 בסיכום. הפער: הסיכום מציג את ההוכחה כשהיא כבר מועצמת ל-910\frac9{10}; ההקלטה מראה שהניסיון הראשון היה עם 23\frac23 ונכשל ((23)2=49<12\left(\frac23\right)^2=\frac49<\frac12). ההכרעה: הניסיון הכושל נכלל כאן במפורש, כי הוא ההצדקה היחידה לכך שהמספר 910\frac9{10} אינו שרירותי; הוספתי גם את החישוב שמראה ש-45\frac45 אינו מספיק ואת הסף המדויק 2/3\sqrt{2/3}.
  • מקור: ההקלטה [00:11:22]. הפער: המרצה קרא ל-910\frac9{10} "סתם זרקתי מספר" ולא הצדיק מאיזה משפט העצמה בדיוק הוא נובע. ההכרעה: מסקנה 2.1 כאן מוכיחה BPP=BPP ⁣(910,910)\mathrm{BPP}=\mathrm{BPP}\!\left(\frac9{10},\frac9{10}\right) בשתי שורות ממשפט 17.2 עם q≡4q\equiv4 וממונוטוניות (16.1).
  • מקור: ההקלטה [00:31:38]. הפער: התמלול האוטומטי מפיל את השלילה וכותב "הלט שייכת ל-PSPACE, לכן הלט לא שייכת ל-BPP" — מה שאינו עקבי בפני עצמו. ההכרעה: הסיכום (עמוד 3) כותב את הנוסח הנכון, "HALT∉PSPACE\mathrm{HALT}\notin\mathrm{PSPACE} ולכן HALT∉BPP\mathrm{HALT}\notin\mathrm{BPP}", והוא זה שנכתב כאן (משפט 3).
  • מקור: הסיכום, עמודים 1–2 מול ההקלטה. הפער: הסיכום מסתמך על אי-תלות בלבד, ואינו מזכיר את חסם האיחוד. ההכרעה: הצגתי את חשבון הטעות בשתי הדרכים — המכפלה (910)2\left(\frac9{10}\right)^2 כמו במקור, וגם חסם האיחוד 110+110=15\frac1{10}+\frac1{10}=\frac15, שאינו זקוק לאי-תלות כלל. שתיהן נותנות טעות ≤13\le\frac13.
  • מקור: הסיכום, עמוד 1. הפער: הסיכום מציין רק "באופן בלתי תלוי" ליד שלב 2, בלי הסבר. ההכרעה: ההסבר מההקלטה [00:08:29]–[00:09:37] ו-[00:16:44] נוסף בגוף — כולל מדוע ההערה מיותרת בשלב 1.
  • מקור: ההקלטה מול הסיכום, כיסוי. הפער: בסיכום מופיעים רק שני סעיפים משאלה 3 — (ב) ו-(ד). סעיפים (א), (ג) ו-(ה) נפתרו בעל פה בלבד: (א) ב-[00:29:05], (ג) ב-[00:35:19], (ה) ב-[01:10:48]. ההכרעה: שוחזרו מההקלטה ונכתבו כאן במלואם, עם ציון מפורש שאינם בסיכום. הניסוח המילולי המדויק שלהם אינו זמין; ראו open_questions.
  • מקור: ההקלטה, סביב [00:35:50] ו-[00:41:07]. הפער: בהקלטה יש בלבול חוזר בין "סעיף ג'" של שאלה 1 לבין "סעיף ג'" של שאלה 3, והמרצה מתקן את עצמו פעמיים. ההכרעה: המספור כאן צמוד לשאלה: "תרגיל 1 סעיף (ג)" מול "תרגיל 3 סעיף (ג)".
  • מקור: הסיכום, עמוד 1 שורה ראשונה. הפער: הסיכום נפתח באמצע שאלה 1, ישירות בסעיף (ג); סעיפים (א) ו-(ב) של אותה שאלה אינם בו, וההקלטה מתחילה כשסעיף (ג) כבר על הלוח. ההכרעה: לא שוחזרו, ולא הומצאו.
  • מקור: ההקלטה [00:51:24]–[00:52:59] ו-[00:55:43]–[00:56:44]. הפער: שתי הרחבות מהותיות לסעיף (ד) — הגבול ∣r∣=clog⁡∣x∣|r|=c\log|x|, וההכלה הלא-הדוקה C3⊆BPP\mathrm{C}_3\subseteq\mathrm{BPP} — אינן בסיכום כלל. ההכרעה: נכללו כמלכודות (4) ו-(5) בסעיף התרגיל, כי הן בדיוק סוג ההרחבה שנשאלת במבחן.
  • מקור: עמוד 6 בסיכום. הפער: העמוד ריק לחלוטין. ההכרעה: אין ממה לשחזר; לא נכתב עליו דבר.
  • מקור: קונבנציית הסימון של הקורס (§2a). הפער: בעמודים אלה לא מופיעה שום שביעיית מכונה מפורשת, ולכן אין מקום שבו הושמט qstartq_{start}. ההכרעה: אין תיקון נדרש; כל שמות המחלקות והבעיות נכתבו כאן ב-\mathrm{} (כולל HALT\mathrm{HALT}), גם היכן שהסיכום כתב אותם בכתב יד רגיל.
  • מקור: שמות המחלקות. הפער: C1\mathrm{C}_1–C4\mathrm{C}_4 כאן חולקות שם עם C1\mathrm{C}_1–C5\mathrm{C}_5 של שיעור 24, שהן אובייקטים שונים לחלוטין (וריאציות על NP\mathrm{NP} ולא על BPP\mathrm{BPP}). ההכרעה: נוספה אזהרה בראש הקובץ, וההצלבה היחידה לשיעור 24 היא אנלוגיה מתודית שהמרצה עצמו עשה, המסומנת ככזו במפורש.

סיכום ונקודות למבחן

מה לזכור בעל פה

  1. BPP\mathrm{BPP} סגורה לחיתוך (וגם לאיחוד ולמשלים, באותה טכניקה) — אבל רק אחרי העצמה. הצירוף "וגם" מכפיל הסתברויות הצלחה; (23)2=49<12\left(\frac23\right)^2=\frac49<\frac12, ואפילו (45)2=0.64<23\left(\frac45\right)^2=0.64<\frac23. הסף המדויק הוא α≥2/3≈0.8165\alpha\ge\sqrt{2/3}\approx0.8165, ו-910\frac9{10} הוא הבחירה הנוחה.
  2. BPP(α,1)=RP\mathrm{BPP}(\alpha,1)=\mathrm{RP} לכל α≥1q(n)\alpha\ge\frac1{q(n)} (העצמה חד-צדדית, שיעור 17 משפט 1), אבל BPP(α,α)\mathrm{BPP}(\alpha,\alpha) עם α≤12\alpha\le\frac12 היא מחלקת כל השפות. זה ההבדל היחיד והמכריע בין טעות חד-צדדית לדו-צדדית.
  3. BPP(1,1)=P\mathrm{BPP}(1,1)=\mathrm{P}: הסתברות 11 במרחב סופי משמעה כל rr, ולכן אפשר לקבע rr שרירותי.
  4. אקראיות באורך קבוע (או לוגריתמי) אינה אקראיות: עוברים על כל המחרוזות ומצביעים רוב, ומקבלים P\mathrm{P}. אקראיות באורך פולינומי — זו כבר BPP\mathrm{BPP}, ו-P=BPP\mathrm{P}=\mathrm{BPP} פתוחה.
  5. הסתברות טעות קטנה מ-1∣Ω∣\frac{1}{|\Omega|} פירושה אפס טעויות. ∣E∣=Pr⁡[E]⋅∣Ω∣<1|E|=\Pr[E]\cdot|\Omega|<1 ו-∣E∣|E| שלם.
  6. BPP⊆PSPACE\mathrm{BPP}\subseteq\mathrm{PSPACE}, ולכן כל שפה ב-BPP\mathrm{BPP} כריעה, ולכן HALT\mathrm{HALT} היא העד המהיר ביותר לכך שמחלקה כלשהי אינה BPP\mathrm{BPP}.

מלכודות סטנדרטיות

  • להריץ שתי מכונות ולשכוח את תקציב הטעות. הבדיקה בת השורה: חשבו את הסתברות הטעות המצטברת ובדקו שהיא ≤13\le\frac13.
  • לכפול הסתברויות בלי לומר "בלתי תלוי". שלב הכפל אינו חוקי בלי זה.
  • לחבר הסתברויות של מאורעות לא זרים. במקרה ה-"או" צריך מונוטוניות (E⊆F⇒Pr⁡[E]≤Pr⁡[F]E\subseteq F\Rightarrow\Pr[E]\le\Pr[F]) ולא סכום.
  • ממשק שגוי של המכונה הנבנית. להוכחת שייכות למחלקה שמנוסחת עם Pr⁡r[M(x,r)]\Pr_r[M(x,r)] — המכונה חייבת לקבל את הזוג. להוכחת שייכות ל-P\mathrm{P} — המכונה חייבת לקבל את xx בלבד, ולכן הלולאה על rr נכנסת אליה.
  • לפתוח ניתוח סמנטי ב-"יהי (x,r)(x,r)". הכמת נקבע על ידי ההגדרה שאתם מוכיחים אליה, וזו כתובה "לכל xx".
  • לחשוב ש-xx אקראי. האקראיות היא רק המטבעות. xx נתון, שרירותי, גרוע ביותר.
  • להצביע רוב כאשר α≤12\alpha\le\frac12. אין רוב. ולהפך — לקבל על סמך rr אחד כאשר הטעות דו-צדדית.
  • לבלבל בין "דחייה" ל"כישלון". על no-instance, דחייה היא הצלחה.

צ'ק-ליסט: מה צריך לדעת לעשות אחרי השיעור הזה

  1. לתרגם מחלקה מנוסחת-מילולית ל-BPP(α,β)\mathrm{BPP}(\alpha,\beta) תוך זיהוי איפה ההבדל מההגדרה המוכרת (pattern matching), לפני שטוענים משהו.
  2. להוכיח סגירות של BPP\mathrm{BPP} לפעולה בוליאנית, כולל בחירת רמת ההעצמה הנכונה והצדקתה.
  3. לעבור מהסתברות לספירה במרחב אחיד ובחזרה, ולנצל את שלמות הגודל.
  4. להכריע בין שלוש התשובות האפשריות — נכונה / שגויה / שקולה לטענה פתוחה — ולדעת לאיזו בעיה פתוחה השקילות היא.
  5. לבנות מכונה עם הממשק הנכון לכיוון ההכלה שמוכיחים, ולנתח זמן ריצה במפורש (מספר איטרציות ×\times זמן לאיטרציה).

הנחיות המרצה לקראת המבחן [01:19:20]–[01:27:10]

מבנה המבחן [01:21:59]. שלוש שעות. שתי שאלות פתוחות ושש שאלות סגורות (אמריקאיות); ייתכן שיהיו סעיפים בשאלות הפתוחות. חלוקת הניקוד לא נמסרה — "אתם צריכים לענות על הכול" [01:22:31].

איך ללמוד [01:23:01]. "כל השיעורים, כל מה שעשינו בשיעור, כל תרגילי הבית — לעבור, לראות שאתם יודעים אותם פרפקט." לגבי מבחנים קודמים: "שאלות ממבחנים לפעמים חוזרות על עצמן, אבל בערך 80% מהמבחן הוא שאלות שמבוססות על החומר, ובערך 20% משהו שהיה פעם באיזה מבחן. לעבור על מלא מבחנים ולהזניח את הלימוד של החומר זה לא הדבר הנכון מבחינת השקעת משאבים." והמשפט שהוא אומר כל סמסטר: "כל סמסטר אחרי המבחן מגיעים אליי סטודנטים ואומרים 'אתה לא מבין כמה מבחנים חרשתי ועדיין היה לי קשה' — כן, כי לא למדתם כמו שאמרתי ללמוד. תלמדו את החומר של הקורס; אחרי שתדעו אותו, תפתרו מבחנים כמה שתרצו."

איך לגשת לשאלות האמריקאיות [01:24:34]. "תתייחסו אליהן כמו לשאלות פתוחות. ההבדל היחיד הוא שאני לא צריך לכתוב את ההוכחה למישהו אחר שיקרא. כל סעיף בשאלה סגורה — תחשבו עליו כאילו הוא שאלה פתוחה, ותפתרו אותו כך. לא לחשוב על זה בכלל בתור שאלות סגורות." לגבי ההיסקים: מסתכלים על התשובות האפשריות ושואלים "מה הייתי מוכיח, או מפריך, אילו זו הייתה שאלה פתוחה".

חלוקת הזמן [01:26:40]. "קצת יותר מחצי מהזמן על השאלות הפתוחות, קצת פחות מחצי על הסגורות — בערך שעתיים ושעה. לא להקדיש פחות מעשר דקות לשאלה סגורה. לא לנסות להמר, לא לנסות אלימינציה. לעבור על הסעיפים ולראות שאתם יודעים למה אתם בוחרים את מה שאתם בוחרים."

והמשפט האחרון של הקורס [01:27:10]: "שיהיה לכולנו בהצלחה."

שאלות שנשארו פתוחות

  • התנגשות שמות: המחלקות C₁–C₄ כאן הן וריאציות הסתברותיות על BPP(α,β), ואינן קשורות למחלקות C₁–C₅ של שיעור 24, שהן וריאציות על הגדרת ה‑verifier של NP. אין להצליב תוצאות בין שני הקבצים.
  • הסיכום פותח באמצע שאלה 1, בסעיף (ג); סעיפים (א) ו‑(ב) של אותה שאלה אינם בסיכום, וההקלטה מתחילה כשסעיף (ג) כבר על הלוח.
  • הניסוח המילולי המדויק של סעיפי (א), (ג) ו‑(ה) בשאלה 3 אינו מופיע בסיכום — הם נפתרו בעל פה בלבד; שוחזרו מההקלטה, ובפרט הערך α=1/10 בסעיף (א) נלמד מכך שהמרצה נימק אותו ב‑BPP(1/10,1)=BPP(1/2,1).
  • הדף המודפס של שאלה 3 כותב בהגדרות C₃ ו‑C₄ ‏'M accepts x' במקום '(M accepts (x,r'; זו טעות שהמרצה תיקן בעצמו [00:36:21] ושתוקנה בכתב יד על גבי העמוד. הגוף כאן מביא את הנוסח המתוקן.
  • עמוד 6 בסיכום ריק לחלוטין.