16Randomized Turing Machines: the Formal Model, RP, coRP and BPP

מגדירים פורמלית את מודל החישוב האקראי בשתי צורות שקולות, מגדירים דרכו את משפחת המחלקות $\mathrm{BPP}(\alpha,\beta)$ ואת $\mathrm{RP},\mathrm{coRP},\mathrm{BPP}$, ומוכיחים $\mathrm{RP}\subseteq\mathrm{NP}$, $\mathrm{BPP}\subseteq\mathrm{PSPACE}$ ואת העצמת ההסתברות בטעות חד-צדדית.

confidence: high2 recording(s)7 summary pagesrandomized-computationprobabilistic-turing-machinesbpprpcorppspace

Builds on: lesson 4, lesson 6, lesson 15

The handwritten summary pages

Open page 1 full size

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

Page 1 of 7 of the handwritten summary

בקצרה

  • עד עכשיו האקראיות בקורס הייתה תכונה של אלגוריתם ("נדגום וקטור באקראי"), ולא של מודל חישוב. השיעור הזה סוגר את הפער ומגדיר מכונת טיורינג אקראית באופן פורמלי, בשתי צורות שקולות: אקראיות בתוך המכונה, או מכונה דטרמיניסטית שקוראת סרט אקראי מבחוץ.
  • ההבחנה המרכזית של השיעור: מכונה אקראית היא מודל לא דטרמיניסטי (הקלט אינו קובע ביחידות את הפלט), אבל היא אינה מכונה אי-דטרמיניסטית. באי-דטרמיניזם המכונה "בוחרת" ואיננו יודעים איך; באקראיות אנחנו יודעים בדיוק איך — הטלת מטבע הוגן. זה כל ההבדל, והוא מהותי.
  • מגדירים משפחת מחלקות אחת, BPP(α,β)\mathrm{BPP}(\alpha,\beta), שממנה נגזרות שלוש מחלקות בשמות מוכרים: BPP=BPP(23,23)\mathrm{BPP}=\mathrm{BPP}(\frac23,\frac23), RP=BPP(12,1)\mathrm{RP}=\mathrm{BPP}(\frac12,1), coRP=BPP(1,12)\mathrm{coRP}=\mathrm{BPP}(1,\frac12).
  • ההסתברות היא תמיד ורק על מטבעות המכונה, עבור כל קלט קבוע בנפרד. אין כאן שום התפלגות על הקלטים. זו הנקודה שבה נופלים הכי הרבה, ובגללה Pr⁡[accept]\Pr[\text{accept}] ו-Pr⁡[reject]\Pr[\text{reject}] אינם מאורעות משלימים כשמדובר בקלטים שונים — אבל כן משלימים כשהקלט קבוע.
  • מוכיחים שלוש תוצאות: מונוטוניות ההכלה במשפחה BPP(α,β)\mathrm{BPP}(\alpha,\beta); RP⊆NP\mathrm{RP}\subseteq\mathrm{NP} (המחרוזת האקראית משמשת כ-witness); ו-BPP⊆PSPACE\mathrm{BPP}\subseteq\mathrm{PSPACE} (מריצים את המכונה על כל המחרוזות האקראיות, וסופרים).
  • מוכיחים את ההעצמה החד-צדדית: לכל פולינום qq,  RP=BPP ⁣(1−12q(n),1)\ \mathrm{RP}=\mathrm{BPP}\!\left(1-\frac{1}{2^{q(n)}},1\right) — ולכן בפרט גם RP=BPP ⁣(1−1q(n),1)\mathrm{RP}=\mathrm{BPP}\!\left(1-\frac{1}{q(n)},1\right). הסף 12\frac12 בהגדרת RP\mathrm{RP} אינו חלק מהתוכן.
  • מסדרים סופית את מה שנשאר פתוח בשיעור 15: בעיית וידוא כפל המטריצות (MATMUL\mathrm{MATMUL}) שייכת ל-coRP\mathrm{coRP}, וההוכחה היא בדיוק התאמה בין הערבויות של Freivalds לבין ההגדרה של BPP(1,12)\mathrm{BPP}(1,\frac12).

רקע ותלויות

מודלים לא דטרמיניסטיים (ראו שיעור 4). מכונת טיורינג אי-דטרמיניסטית היא שישייה M=(Q,qstart,F,Σ,Γ,δ)M=(Q,q_{start},F,\Sigma,\Gamma,\delta) שבה פונקציית המעברים מחזירה קבוצה של אפשרויות, δ(q,α)⊆Q×Γ×{L,R}\delta(q,\alpha)\subseteq Q\times\Gamma\times\{L,R\}, כך שממצב וקריאה נתונים ייתכנו כמה צעדים המשך. המכונה מקבלת את xx אם קיימת ריצה מקבלת. חשוב לזכור את השישייה כולה, כולל qstartq_{start} — בלעדיו אין בכלל מושג "הריצה של MM על xx".

למת הנרמול הבינארי (ראו שיעור 6, משפט 3). לכל מכונה אי-דטרמיניסטית NN קיימת מכונה אי-דטרמיניסטית שקולה N^\hat N שבה ∣δ^(q,α)∣≤2|\hat\delta(q,\alpha)|\le 2 לכל q,αq,\alpha, וזמן הריצה גדל רק בפקטור קבוע 2∣Q∣∣Γ∣2|Q||\Gamma|. המשמעות: אפשר להניח שבכל צעד ההחלטה היא בינארית, ולכן ריצה שלמה מתוארת על ידי ביט אחד לכל צעד. זה בדיוק מה שיאפשר לנו להחליף "בחירה" ב"הטלת מטבע הוגן".

ההגדרה השקולה של NP\mathrm{NP} (ראו שיעור 6, משפט 4). A∈NPA\in\mathrm{NP} אם ורק אם קיימים פולינומים p,qp,q ומכונה דטרמיניסטית MM כך ש-timeM(a)≤p(∣a∣)\mathrm{time}_M(a)\le p(|a|) לכל קלט aa, ולכל xx x∈A  ⟺  ∃ w∈{0,1}q(∣x∣)  s.t. M accepts (x,w).x\in A \iff \exists\, w\in\{0,1\}^{q(|x|)}\ \text{ s.t. } M \text{ accepts } (x,w). בכיוון ה-yes יש קיום של עד, ובכיוון ה-no יש לכל — כל עד נדחה. השלד הזה הוא בדיוק מה שנחפש כשנוכיח RP⊆NP\mathrm{RP}\subseteq\mathrm{NP}.

אלגוריתמים אקראיים (ראו שיעור 15). שם ראינו שני אלגוריתמים — בעיית המזכיר ואלגוריתם Freivalds לווידוא כפל מטריצות (MATMUL\mathrm{MATMUL}) — אבל, כדברי המרצה בפתיחה, "לא הגדרנו במדויק את המודל... נתנו אלגוריתם ואמרנו שהוא יכול לדגום באקראי" [00:00:00]–[00:01:34]. נזכיר את הערבות שהוכחה שם ונשתמש בה כלשונה: על קלט A,B,CA,B,C מסדר n×nn\times n, האלגוריתם הדוגם r∈{0,1}nr\in\{0,1\}^n באופן אחיד ובודק אם A⋅(B⋅r)=C⋅rA\cdot(B\cdot r)=C\cdot r רץ בזמן O(n2)O(n^2) ומקיים

  1. אם A⋅B=CA\cdot B=C אז הוא מקבל בהסתברות 11 (למעשה לכל rr בלי יוצא מן הכלל);
  2. אם A⋅B≠CA\cdot B\ne C אז הוא דוחה בהסתברות לפחות 12\frac12.

שיעור 15 ציין שהבעיה "שייכת ל-coRP\mathrm{coRP}" ודחה את ההצדקה הפורמלית לכאן; משפט 3 להלן הוא ההצדקה.

הכלים ההסתברותיים. מרחב מדגם סופי עם התפלגות אחידה; מונוטוניות ההסתברות; אי-תלות של מאורעות (Pr⁡[⋂Ei]=∏Pr⁡[Ei]\Pr[\bigcap E_i]=\prod\Pr[E_i]); והתרגום היסודי שהמרצה חזר עליו במפורש [00:51:42]–[00:54:30]: כשההתפלגות אחידה, הסתברות היא קומבינטוריקה, כלומר "רצוי חלקי הכול", ולכן ∣{good outcomes}∣  =  Pr⁡[good]⋅∣Ω∣.|\{\text{good outcomes}\}| \;=\; \Pr[\text{good}]\cdot|\Omega| .

סגירות הפולינומים. משתמשים בזה לאורך כל הקורס וגם כאן: הפולינומים סגורים לחיבור, לכפל ולהרכבה. לכן אם ∣r∣|r| פולינומי ב-∣x∣|x| אז ∣(x,r)∣|(x,r)| פולינומי ב-∣x∣|x|, ומכונה שרצה בזמן פולינומי באורך הקלט שלה רצה בזמן פולינומי ב-∣x∣|x|. המרצה הדגיש שזו תכונה שהפונקציות המעריכיות אינן מקיימות [01:19:41].


הגדרות

הגדרה 1: מכונת טיורינג אקראית — המודל הפנימי

ניסוח. מכונת טיורינג אקראית היא שישייה M=(Q,qstart,F,Σ,Γ,δ)M=(Q,q_{start},F,\Sigma,\Gamma,\delta) שבה, בהינתן מצב qq ותו נקרא α\alpha, יש שתי אפשרויות לצעד הבא: δ(q,α)={(q1,β1,d1), (q2,β2,d2)},\delta(q,\alpha)=\{(q_1,\beta_1,d_1),\,(q_2,\beta_2,d_2)\}, והבחירה ביניהן נעשית על ידי הטלת מטבע הוגן — כל אפשרות בהסתברות 12\frac12, בלתי תלוי בכל שאר ההטלות בריצה. אם ∣δ(q,α)∣=1|\delta(q,\alpha)|=1 הצעד דטרמיניסטי לגמרי.

אינטואיציה, ומדוע דווקא שתיים. מבחינת האובייקט הסינטקטי, זו בדיוק מכונת טיורינג אי-דטרמיניסטית מנורמלת של שיעור 6: אותה שישייה, אותו δ\delta רב-ערכי, אותה הנחת בינאריות. מה שהשתנה הוא כלל הקריאה של הריצה. באי-דטרמיניזם אמרנו "המכונה בוחרת", ולא אמרנו איך — ולכן דיברנו על קיום ריצה מקבלת. כאן אנחנו אומרים בדיוק איך: מטבע הוגן. ולכן אפשר לדבר על הסתברות שהמכונה מקבלת. ההנחה שיש בדיוק שתי אפשרויות אינה מגבילה בזכות למת הנרמול (שיעור 6, משפט 3), והיא זו שמאפשרת לתאר את כל האקראיות של ריצה באורך tt כמחרוזת של tt ביטים אחידים ובלתי תלויים.

הערה: בסיכום ובהקלטה [00:04:00]–[00:04:34] ההגדרה נמסרת מילולית — "מכונה שבה יש אפשרות לעבור למצב הבא ממצב נתון על ידי בחירה אקראית או הטלת מטבע" — בלי לרשום שישייה. המרצה עצמו אמר "זה לא מרגיש לגמרי פורמלי, ובצדק" ולא הידק יותר. השישייה כאן נלקחת משיעור 4 לשם אחידות הסדרה.

האזהרה המרכזית של השיעור [00:05:05]–[00:06:43]. יש להבחין בין שני מונחים שקל לבלבל ביניהם:

  • מודל לא דטרמיניסטי (non-deterministic במובן הרחב) הוא כל מודל שבו הקלט אינו קובע ביחידות את הפלט. מכונה אי-דטרמיניסטית היא כזו; מכונה אקראית היא כזו.
  • מודל אי-דטרמיניסטי (nondeterministic במובן הצר של שיעור 4) הוא מודל ספציפי שבו המכונה "מחליטה" ואין לנו שום תיאור של איך.

המרצה הדגיש שהוא נזהר לאורך כל הקורס לומר על מכונה אי-דטרמיניסטית "תנחש באופן אי-דטרמיניסטי", ולא "תגריל" — "כי אני יודע איפה טעויות הולכות לקרות" [00:14:42]. במכונה אקראית מותר ורצוי לומר תגריל, תדגום, תטיל מטבע. סטודנט שאל אם אפשר לקרוא למודל האקראי "מודל אי-דטרמיניסטי עם בחירה אקראית", והמרצה השיב שזה "לא שגוי לגמרי, אבל זה ייצור בלבול — תשמור מרחק בין שני המודלים" [00:14:09]–[00:15:12].

מופע. האלגוריתם של Freivalds משיעור 15, כשמממשים אותו כמכונה: בכל אחד מ-nn הצעדים שבהם נבחרת קואורדינטה של הווקטור rr, המכונה מטילה מטבע.

אי-מופע. המכונה האי-דטרמיניסטית של שיעור 6 שמכריעה את SAT\mathrm{SAT} על ידי ניחוש השמה אינה מכונה אקראית — לא כי המבנה שלה שונה, אלא כי המשמעות שאנחנו נותנים ל-δ\delta רב-ערכי שונה. אם נקרא אותה כמכונה אקראית, היא כבר לא מכריעה את SAT\mathrm{SAT}: על נוסחה ספיקה עם השמה מספקת יחידה מתוך 2n2^n, ההסתברות שהיא תקבל היא 2−n2^{-n} ולא 11.

הגדרה 2: מכונת טיורינג אקראית — מודל הסרט האקראי

ניסוח. מכונת טיורינג אקראית היא מכונה דו-סרטית MM שבה:

  • סרט 11 הוא סרט עבודה רגיל (עליו מגיע הקלט, ועליו המכונה קוראת וכותבת חופשית);
  • סרט 22 מכיל מחרוזת אינסופית של ביטים; המכונה יכולה רק לקרוא ממנו, ולא לכתוב, והראש עליו זז רק ימינה;
  • סרט 22 נקרא הסרט האקראי.

המכונה עצמה דטרמיניסטית לחלוטין: ברגע שקבענו את xx ואת תוכן הסרט האקראי, כל הריצה נקבעת.

אינטואיציה. חשבו על הסרט השני כעל אינסוף הטלות מטבע שמישהו הטיל מראש והניח לפנינו [00:07:50]. המכונה "מתייעצת" איתו. שימו לב שהמרצה הדגיש: הסרט הזה אינו באמת אקראי — הוא מגיע מבחוץ, ואיננו יודעים מאיפה. הוא נקרא "אקראי" רק כי בניתוח נשאל: אילו התוכן שלו היה נבחר באקראי אחיד, מה ההסתברות שהמכונה צודקת? [00:12:04], [00:13:38].

חשבון זמן ומקום. למרות שהמכונה דו-סרטית, אין צורך בתרגום "דו-סרטי לחד-סרטי": הסרט השני מוגבל מאוד — קריאה בלבד, תנועה ימינה בלבד — ולכן כל צעד קורא לכל היותר ביט אחד ממנו, וזמן הריצה אינו מושפע [00:08:54]. המרצה תיאר את המכונה כ"חצי דו-סרטית".

הצורה שנשתמש בה. אם המכונה רצה בזמן פולינומי, היא קוראת לכל היותר פולינום ביטים מהסרט האקראי (קריאת ביט עולה צעד). לכן נסמן: קיים פולינום pp כך שבריצה על xx המכונה קוראת לכל היותר p(∣x∣)p(|x|) ביטים, נסמן אותם r∈{0,1}p(∣x∣)r\in\{0,1\}^{p(|x|)}, ונכתוב M(x,r)M(x,r). שאר הביטים על הסרט אינם משפיעים כלל, ולכן אפשר להגריל רק את p(∣x∣)p(|x|) הראשונים [00:27:17].

מתי משתמשים בכל מודל — זו נקודת המפתח של השיעור.

  • מודל 1 (אקראיות בפנים) נוח כשרוצים להציג אלגוריתם ולהראות תוצאה חיובית. "זה מודל שיותר נוח לתכנת בו, פשוט ככה" [00:10:57].
  • מודל 2 (סרט אקראי, מכונה דטרמיניסטית) נוח כשרוצים לדבר על קשר בין מחלקות — למשל להראות שמחלקה אקראית מוכלת במחלקה דטרמיניסטית. "תמיד נוח לי לעבוד עם מכונות דטרמיניסטיות... המעברים הרבה יותר קלים כשהמכונה היא מראש דטרמיניסטית" [00:11:28]–[00:13:07].

בקורס לא מוכיחים את שקילות שני המודלים [00:10:26]; היא מונחת. אנחנו נשתמש בכל אחד מהם היכן שנוח, בדיוק כפי שנעשה בשיעור עם NP\mathrm{NP} מול NP′\mathrm{NP}' (ראו שיעור 6) — וזו הייתה ההקבלה המפורשת שהמרצה בנה עליה את כל המבנה [00:02:22]–[00:02:55].

הגדרה 3: משפחת המחלקות BPP(α,β)\mathrm{BPP}(\alpha,\beta)

יהיו α,β∈[0,1]\alpha,\beta\in[0,1]. המחלקה BPP(α,β)\mathrm{BPP}(\alpha,\beta) היא קבוצת השפות AA עבורן מתקיים אחד משני התנאים השקולים הבאים.

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

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

מרחב ההסתברות — לקרוא לאט. בנוסח א האקראיות היא המטבעות שהמכונה מטילה; בנוסח ב היא המחרוזת rr, הנדגמת אחידה מתוך {0,1}p(∣x∣)\{0,1\}^{p(|x|)}. בשני המקרים:

Ω  =  Ω(x)  =  {0,1}p(∣x∣),∣Ω∣=2p(∣x∣).\Omega \;=\; \Omega(x) \;=\; \{0,1\}^{p(|x|)}, \qquad |\Omega|=2^{p(|x|)} .

הקלט xx אינו חלק מהניסוי האקראי. הוא נתון, שרירותי, ואפשר לחשוב עליו כעל הקלט הגרוע ביותר. המרצה חזר על זה כלל אצבע: "תמיד כשאתם מחשבים הסתברות, שאלו את עצמכם מה האקראי פה. מאיפה האקראיות? זה הדבר הראשון שאני בודק" [00:25:13].

המסקנה החשובה מכך (שאלת סטודנטית, [00:21:01] ו-[00:29:23]). אסור לחשוב על "x∈Ax\in A" ועל "x∉Ax\notin A" כעל מאורעות משלימים, ואסור לצפות ש-α+β\alpha+\beta יסתכם ל-11. אלה שני תרחישים שונים לגמרי, עם שני קלטים שונים, ולכן עם שני מרחבי מדגם שונים — ואם p(∣x1∣)≠p(∣x2∣)p(|x_1|)\ne p(|x_2|) אז אפילו גודל מרחב המדגם שונה. אבל — וזה הצד השני של אותו מטבע — ברגע שקיבענו xx אחד, המאורעות "MM מקבלת את (x,r)(x,r)" ו-"MM דוחה את (x,r)(x,r)" הם כן מאורעות משלימים באותו מרחב, כי המכונה דטרמיניסטית ועוצרת, ולכן Pr⁡r[M accepts (x,r)]  =  1−Pr⁡r[M rejects (x,r)].\Pr_r\big[M \text{ accepts } (x,r)\big] \;=\; 1-\Pr_r\big[M \text{ rejects } (x,r)\big]. בהוכחת משפט 4 נשתמש בעובדה הזו במפורש, ובדיוק שם היא נחוצה [01:23:54]–[01:24:56].

איך לזכור את ההגדרה. "אני תמיד בודק מה ההסתברות שהמכונה צודקת, ואני רוצה לחסום אותה מלמטה" [00:28:51]. על yes-instance להיות צודק פירושו לקבל; על no-instance פירושו לדחות. לכן שני התנאים נראים שונים אך אומרים אותו דבר.

מופע. A=∅A=\emptyset שייכת ל-BPP(α,1)\mathrm{BPP}(\alpha,1) לכל α\alpha: המכונה "דחה תמיד" עונה על התנאי השני בשוויון 11, והתנאי הראשון ריק.

אי-מופע מאלף. BPP(12,12)\mathrm{BPP}(\frac12,\frac12) מכילה כל שפה: המכונה שמטילה מטבע אחד ומקבלת על "עץ" מקיימת את שני התנאים בשוויון עבור כל AA, בלי להסתכל בכלל בקלט. כלומר סף של בדיוק 12\frac12 בשני הצדדים הוא חסר תוכן לחלוטין. באותו אופן BPP(0,1)\mathrm{BPP}(0,1) מכילה כל שפה (המכונה "דחה תמיד"), ו-BPP(1,0)\mathrm{BPP}(1,0) מכילה כל שפה (המכונה "קבל תמיד"). לכן הערכים בסוגריים אינם קישוט: הם כל התוכן.

הגדרה 4: המחלקות בשמותיהן, והסף המדויק בכל אחת

 BPP=BPP ⁣(23,23),RP=BPP ⁣(12,1),coRP=BPP ⁣(1,12) \boxed{\ \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)\ }

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

BPP\mathrm{BPP} — טעות דו-צדדית (bounded-error probabilistic polynomial time). קיימת מכונה אקראית פולינומית MM כך שלכל xx: אם x∈Ax\in A אז Pr⁡[accept]≥23\Pr[\text{accept}]\ge\frac23, ואם x∉Ax\notin A אז Pr⁡[reject]≥23\Pr[\text{reject}]\ge\frac23. הטעות אפשרית משני הכיוונים, ולכן שום תשובה יחידה של המכונה אינה אמינה במאת האחוזים. הפירוש של השם, כפי שהמרצה שחזר אותו בכיתה [00:42:01]: ה-P\mathrm{P} הראשונה — probabilistic, השנייה — polynomial, וה-B\mathrm{B} — bounded, כי הסתברות הטעות חסומה משני הכיוונים.

למה 23\frac23? משום שכל קבוע בין 12\frac12 ל-11 נותן את אותה מחלקה בדיוק — זה בדיוק תוכנו של שיעור 17 — ולכן בוחרים ערך נוח לכתיבה. מה נשבר בערך אחר? אם מורידים ל-12\frac12 בדיוק מקבלים את המחלקה חסרת התוכן שראינו לעיל, שמכילה כל שפה. אם מעלים ל-11 מקבלים את P\mathrm{P} (מכונה שצודקת בהסתברות 11 על מרחב מדגם סופי צודקת לכל rr, ואפשר להריץ אותה עם r=0p(∣x∣)r=0^{p(|x|)}). ואם מסתפקים בפער אקספוננציאלית קטן, 12+12q(n)\frac12+\frac{1}{2^{q(n)}}, לא ידוע שההעצמה עובדת.

RP\mathrm{RP} — טעות חד-צדדית, הצד ה"בטוח" הוא ה-no. קיימת מכונה אקראית פולינומית MM כך שלכל xx: אם x∈Ax\in A אז Pr⁡[accept]≥12\Pr[\text{accept}]\ge\frac12; ואם x∉Ax\notin A אז Pr⁡[reject]≥1\Pr[\text{reject}]\ge 1, כלומר שווה 11, כלומר לכל rr בלי יוצא מן הכלל המכונה דוחה. במילים: אין תשובות "כן" שגויות. אם המכונה אמרה "כן" — x∈Ax\in A בוודאות; אם אמרה "לא" — ייתכן שהיא טועה, בהסתברות עד 12\frac12.

למה 12\frac12? אותה סיבה — משפט 5 להלן מראה שאפשר להעלות עד 1−12q(n)1-\frac{1}{2^{q(n)}}, ושיעור 17 מראה שאפשר גם להתחיל מ-1q(n)\frac{1}{q(n)} זעיר. מה נשבר בערך אחר? α=0\alpha=0 הורס הכול: BPP(0,1)\mathrm{BPP}(0,1) מכילה כל שפה. לעומת זאת אסור לוותר על ה-11 בצד ה-no — זה מה שהופך את המחלקה לחד-צדדית, וזה מה שמאפשר את כל ההעצמות הפשוטות.

coRP\mathrm{coRP} — טעות חד-צדדית, הצד ה"בטוח" הוא ה-yes. לכל xx: אם x∈Ax\in A אז Pr⁡[accept]=1\Pr[\text{accept}]=1; אם x∉Ax\notin A אז Pr⁡[reject]≥12\Pr[\text{reject}]\ge\frac12. אין תשובות "לא" שגויות. שקול לכך ש-A‾∈RP\overline{A}\in\mathrm{RP}, ומכאן השם.

אזהרה על השם "co" [00:42:34]–[00:43:40]. coRP\mathrm{coRP} אינה המשלימה של RP\mathrm{RP} כקבוצת שפות; היא קבוצת המשלימות של שפות ב-RP\mathrm{RP}. שתי המחלקות אינן זרות (כל שפה ב-P\mathrm{P} שייכת לשתיהן) ואינן ממצות את הכול. סטודנט ביקש דוגמה לשפה שבוודאות אינה ב-RP\mathrm{RP}, והתשובה: בעיית העצירה — כי כל המחלקות שאנחנו מסתכלים עליהן כאן מורכבות משפות כריעות, ובעיית העצירה אינה כריעה.

למה דווקא ה-yes קיבל את הצד ה"לא ודאי" ב-RP\mathrm{RP}? [00:58:48]–[01:00:24]. סטודנט שאל, והמרצה נתן תשובה מבנית: זו אותה חוסר-סימטריה שכבר הייתה ב-NP\mathrm{NP}. שם x∈Ax\in A פירושו קיים עד, ו-x∉Ax\notin A פירושו שלכל עד המכונה דוחה. הבעיות הקומבינטוריות "המעניינות" מנוסחות היסטורית עם קיום (קיימת השמה מספקת, קיימת קליקה בגודל kk), ולכן המחלקות נבנו סביב הצורה הזו, ו-RP\mathrm{RP} ירשה את המבנה. משפט 2 להלן מראה שההקבלה אינה רק אסתטית — היא הוכחה.


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

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

ניסוח. יהיו α,β,α^,β^∈[0,1]\alpha,\beta,\hat\alpha,\hat\beta\in[0,1] ונניח α^≥α\hat\alpha\ge\alpha וגם β^≥β\hat\beta\ge\beta. אזי BPP(α^,β^) ⊆ BPP(α,β).\mathrm{BPP}(\hat\alpha,\hat\beta)\ \subseteq\ \mathrm{BPP}(\alpha,\beta).

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

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

שימוש מיידי. RP=BPP(12,1)⊆BPP(12,12)\mathrm{RP}=\mathrm{BPP}(\frac12,1)\subseteq\mathrm{BPP}(\frac12,\frac12) ו-coRP⊆BPP(12,12)\mathrm{coRP}\subseteq\mathrm{BPP}(\frac12,\frac12) — אך זו הכלה חסרת ערך, כי אגף ימין הוא כל השפות. לעומת זאת RP⊆BPP(12,23)\mathrm{RP}\subseteq\mathrm{BPP}(\frac12,\frac23) אינה נובעת מהמשפט (הכיוון הפוך), ואכן היא אינה טענה טריוויאלית.

משפט 2: RP⊆NP\mathrm{RP}\subseteq\mathrm{NP}

ניסוח. כל שפה ב-RP\mathrm{RP} שייכת ל-NP\mathrm{NP}.

מדוע ההוכחה בנויה כך. אנחנו רוצים לסיים עם השלד של NP′\mathrm{NP}' (שיעור 6): מכונה דטרמיניסטית שמקבלת זוג (x,w)(x,w), כמת קיום בכיוון אחד וכמת "לכל" בכיוון השני. לכן כדאי להתחיל כבר עם נוסח ב של הגדרה 3 — המכונה שם דטרמיניסטית ומקבלת זוג (x,r)(x,r), כלומר בדיוק אותו ממשק. "לעבור מאקראית לאי-דטרמיניסטית — אני לא בטוח; אבל אם אני עובד עם מכונה דטרמיניסטית פה ומכונה דטרמיניסטית שם, לפחות את המכונות אני יודע איך להתאים" [00:45:10]–[00:45:42]. זה לקח מתודי כללי בשיעור: בוחרים את הנוסח לפי הממשק שאליו רוצים להגיע.

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

נתבונן ב-MM; היא כבר מכונה דטרמיניסטית פולינומית המקבלת זוג, ולא נבנה מכונה חדשה. יהי xx קלט.

מקרה x∈Ax\in A. מרחב המדגם {0,1}p(∣x∣)\{0,1\}^{p(|x|)} סופי והתפלגותו אחידה, ולכן הסתברות היא "רצוי חלקי הכול". נבודד את המונה: ∣{r∈{0,1}p(∣x∣) : M accepts (x,r)}∣  =  Pr⁡r[M accepts (x,r)]⋅2p(∣x∣)  ≥  12⋅2p(∣x∣)  =  2 p(∣x∣)−1  ≥  1.\Big|\big\{r\in\{0,1\}^{p(|x|)}\ :\ M \text{ accepts } (x,r)\big\}\Big| \;=\; \Pr_r\big[M \text{ accepts } (x,r)\big]\cdot 2^{p(|x|)} \;\ge\; \tfrac12\cdot 2^{p(|x|)} \;=\; 2^{\,p(|x|)-1} \;\ge\; 1 . המעבר האחרון דורש p(∣x∣)≥1p(|x|)\ge 1. זה מתקיים לכל xx ארוך מספיק, שכן pp פולינום שאינו זהותית אפס ולכן שואף לאינסוף; ומספר הקלטים xx שעבורם p(∣x∣)<1p(|x|)<1 הוא סופי, ואפשר לצרוב את התשובות עליהם בטבלה בתוך המכונה [00:57:44]–[00:58:16]. לכן קיים rr שעבורו MM מקבלת את (x,r)(x,r).

מקרה x∉Ax\notin A. הסתברות הדחייה היא 11, ומכיוון שמרחב המדגם סופי ואחיד פירוש הדבר שהמאורע הוא כל המרחב: ∣{r∈{0,1}p(∣x∣) : M rejects (x,r)}∣  =  2p(∣x∣),\Big|\big\{r\in\{0,1\}^{p(|x|)}\ :\ M \text{ rejects } (x,r)\big\}\Big| \;=\; 2^{p(|x|)}, כלומר לכל r∈{0,1}p(∣x∣)r\in\{0,1\}^{p(|x|)} המכונה MM דוחה את (x,r)(x,r).

חיברנו: קיימת מכונה דטרמיניסטית MM הרצה בזמן פולינומי, וקיים פולינום pp, כך שלכל xx x∈A  ⟺  ∃ r∈{0,1}p(∣x∣)  s.t. M accepts (x,r),x\in A \iff \exists\, r\in\{0,1\}^{p(|x|)}\ \text{ s.t. } M \text{ accepts } (x,r), וזו בדיוק ההגדרה של NP′\mathrm{NP}' (שיעור 6, הגדרה 1), שהיא לפי משפט 4 שם שקולה ל-NP\mathrm{NP}. לכן A∈NPA\in\mathrm{NP}. ■\blacksquare

הערה: בהרצאה זה נאמר בקיצור — "לכן קיים rr" — והמרצה עצר במכוון וביקש לעבור דרך שלב הספירה [00:50:59]–[00:54:30], כדי להדגיש שההסתברות מתורגמת לקומבינטוריקה. גם הטיפול ב-xx-ים הקצרים נאמר רק בעל פה בתשובה לשאלה; הפירוט כאן.

מה תופס את מקומו של מה. המרצה שאל את הכיתה ישירות [00:55:00]: "ה-rr הזה תופס את התפקיד של מי?" התשובה — של ה-witness. המחרוזת האקראית ב-RP\mathrm{RP} היא בדיוק העד ב-NP\mathrm{NP}: היא מגיעה מבחוץ, אורכה פולינומי, והמכונה רק מאמתת בעזרתה. ההבדל היחיד הוא שב-NP\mathrm{NP} די בכך שקיים עד אחד, ואילו ב-RP\mathrm{RP} נדרש שלפחות מחצית מהמחרוזות יהיו עדים. זו דרישה חזקה יותר, ולכן ההכלה היא בכיוון הזה ולא בהפוך.

מסקנה 2.1.  coRP⊆coNP\ \mathrm{coRP}\subseteq\mathrm{coNP}. אכן, A∈coRPA\in\mathrm{coRP} פירושו A‾∈RP⊆NP\overline{A}\in\mathrm{RP}\subseteq\mathrm{NP}, ולכן A∈coNPA\in\mathrm{coNP} לפי ההגדרה של coNP\mathrm{coNP}.

משפט 3: MATMUL∈coRP\mathrm{MATMUL}\in\mathrm{coRP}

ניסוח. תהא MATMUL={⟨A,B,C⟩ : A,B,C are n×n matrices and A⋅B=C}.\mathrm{MATMUL}=\big\{\langle A,B,C\rangle\ :\ A,B,C \text{ are } n\times n \text{ matrices and } A\cdot B=C\big\}. אזי MATMUL∈coRP\mathrm{MATMUL}\in\mathrm{coRP}.

הוכחה. לפי הגדרה 4, coRP=BPP(1,12)\mathrm{coRP}=\mathrm{BPP}(1,\frac12), ולכן צריך מכונה אקראית פולינומית שמקבלת כל yes-instance בהסתברות 11 ודוחה כל no-instance בהסתברות לפחות 12\frac12.

ניקח את אלגוריתם Freivalds של שיעור 15 ונכתוב אותו בנוסח ב. תהא MM המכונה הדטרמיניסטית שעל קלט ⟨A,B,C⟩\langle A,B,C\rangle ומחרוזת אקראית rr:

  1. קוראת nn ביטים מהמחרוזת האקראית ומפרשת אותם כווקטור r∈{0,1}nr\in\{0,1\}^n;
  2. מחשבת A⋅(B⋅r)A\cdot(B\cdot r) ואת C⋅rC\cdot r;
  3. מקבלת אם שני הווקטורים שווים, ודוחה אחרת.

הפולינום של הביטים. p(∣x∣)=np(|x|)=n. הקלט x=⟨A,B,C⟩x=\langle A,B,C\rangle מקודד 3n23n^2 ערכים, ולכן n≤∣x∣n\le|x|, ובפרט pp פולינום ב-∣x∣|x| כנדרש.

זמן הריצה. שיעור 15, משפט 3: O(n2)O(n^2) פעולות אריתמטיות, ולכן פולינומי ב-∣x∣|x|.

תנאי ה-yes (α=1\alpha=1). אם ⟨A,B,C⟩∈MATMUL\langle A,B,C\rangle\in\mathrm{MATMUL}, כלומר A⋅B=CA\cdot B=C, אז לפי האסוציאטיביות לכל rr בלי יוצא מן הכלל A⋅(B⋅r)=(A⋅B)⋅r=C⋅rA\cdot(B\cdot r)=(A\cdot B)\cdot r=C\cdot r, ולכן MM מקבלת. המאורע הוא כל מרחב המדגם, ולכן Pr⁡r[M accepts (x,r)]=1≥α=1\Pr_r[M \text{ accepts } (x,r)]=1\ge\alpha=1.

תנאי ה-no (β=12\beta=\frac12). אם A⋅B≠CA\cdot B\ne C, שיעור 15 משפט 3 נותן Pr⁡r[M accepts (x,r)]≤12\Pr_r[M \text{ accepts } (x,r)]\le\frac12. מכיוון שהקלט xx קבוע, המאורעות "מקבלת" ו"דוחה" משלימים באותו מרחב מדגם, ולכן Pr⁡r[M rejects (x,r)]  =  1−Pr⁡r[M accepts (x,r)]  ≥  1−12  =  12  =  β.\Pr_r\big[M \text{ rejects } (x,r)\big] \;=\; 1-\Pr_r\big[M \text{ accepts } (x,r)\big] \;\ge\; 1-\tfrac12 \;=\; \tfrac12 \;=\;\beta . שני התנאים מתקיימים, ולכן MATMUL∈BPP(1,12)=coRP\mathrm{MATMUL}\in\mathrm{BPP}(1,\frac12)=\mathrm{coRP}. ■\blacksquare

הערה: בהקלטה [00:41:30] המרצה רק שאל את הכיתה "כפל מטריצות — לאן היא שייכת?", קיבל את התשובה "coRP\mathrm{coRP}", ונימק במשפט: "אם היה yes-instance תמיד החזרתי כן, ואם לא — האלגוריתם צדק בהסתברות לפחות חצי". ההתאמה המלאה לנוסח ב, כולל חשבון הביטים ומעבר המשלים, היא הפירוט כאן.

למה זה coRP\mathrm{coRP} ולא RP\mathrm{RP} — מלכודת. התשובה תלויה בשאלה איך ניסחנו את השפה. אם היינו מגדירים את השפה כ-{⟨A,B,C⟩:A⋅B≠C}\{\langle A,B,C\rangle : A\cdot B\ne C\} היינו מקבלים RP\mathrm{RP}. הכיוון שבו יש ודאות הוא הכיוון שבו האלגוריתם לא יכול לטעות, וזה תמיד הכיוון שבו הזהות מתקיימת פוינטווייז.

משפט 4: BPP⊆PSPACE\mathrm{BPP}\subseteq\mathrm{PSPACE}

ניסוח. כל שפה ב-BPP\mathrm{BPP} מוכרעת על ידי מכונה דטרמיניסטית במקום פולינומי.

מדוע ההוכחה בנויה כך. כדי להוכיח שייכות ל-PSPACE\mathrm{PSPACE} צריך מכונה דטרמיניסטית שמכריעה את השפה במקום פולינומי — הכרעה רגילה, כמו בחישוביות [01:08:44]. הממשק של מכונה כזו מקבל רק את xx. לכן שוב מתחילים מנוסח ב, אבל כאן יש קושי נוסף: המכונה שבידינו מקבלת זוג (x,r)(x,r) והמכונה שנבנה תקבל רק xx. סטודנט הציע לשרשר, xx ואחריו rr — והמרצה פסל מיד [01:06:38]: "הקלט שקיבלתי הוא הקלט שאני צריך לבדוק אם הוא שייך; אני לא יכול לשרשר לו שום דבר". הפתרון היחיד הוא לא להגריל את rr בכלל, אלא לעבור על כולם.

ההוכחה. תהא A∈BPP=BPP(23,23)A\in\mathrm{BPP}=\mathrm{BPP}(\frac23,\frac23). לפי נוסח ב קיימת מכונה דטרמיניסטית MM הרצה בזמן פולינומי בגודל הקלט וקיים פולינום pp כך שלכל xx:

x\notin A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^{p(|x|)}}\big[M \text{ rejects } (x,r)\big]\ \ge\ \tfrac23 .$$ נבנה מכונה דטרמיניסטית $\hat M$ שעל קלט $x$ פועלת כך: 1. חשב את $p(|x|)$. 2. אתחל $\text{count}\leftarrow 0$. 3. לכל $r\in\{0,1\}^{p(|x|)}$: 1. הרץ את $M$ על $(x,r)$; 2. אם $M$ קיבלה — $\text{count}\leftarrow\text{count}+1$. 4. אם $\ \text{count}\ \ge\ \tfrac23\cdot 2^{p(|x|)}\ $ — **קבל**; אחרת — **דחה**. > **הערה:** הסף בשלב 4 אינו בהכרח מספר שלם. המבחן השקול בשלמים הוא $3\cdot\text{count}\ge 2^{\,p(|x|)+1}$, וכך יש לממש אותו; הסיכום כותב את השבר. זו השלמה פורמלית שלנו ואינה משנה דבר בהוכחה. **ניתוח סיבוכיות המקום.** יהי $x$ קלט, ונסמן $n=|x|$. - **שלבים 1 ו-4.** $p$ פונקציה אלמנטרית, ולכן חישובה חסום במקום; שלב 1 דורש $O(p(n))$ תאים ושלב 4 (השוואה בין שני מספרים באורך $O(p(n))$ ביט) דורש $O(p(n))$ תאים. חשוב: את המספר $2^{p(n)}$ כותבים ב**בינארי** ולא באונרי — באונרי הוא היה תופס $2^{p(n)}$ תאים ומהרס את החסם. הטריק הזה כבר נעשה במשפט ההיררכיה (ראו שיעור 3), והמרצה הזכיר אותו במפורש [01:13:03]–[01:13:37]. פעולות הגדלה באחת והשוואה על מספרים בינאריים נעשות במקום ליניארי בייצוג. - **שלב 2.** המונה מגיע לכל היותר ל-$2^{p(n)}$, ולכן בייצוג בינארי הוא תופס $p(n)+1$ תאים. - **שלב 3.** בכל איטרציה שומרים את $r$, שאורכו $p(n)$ ביט. $M$ רצה בזמן פולינומי באורך הקלט שלה, ומכונה שרצה בזמן $t$ מבקרת לכל היותר $t$ תאים, ולכן היא משתמשת במקום פולינומי באורך הקלט שלה. אורך הקלט הוא $|(x,r)|=n+p(n)$, שהוא פולינומי ב-$n$ (סגירות הפולינומים לחיבור), ולכן — מסגירות הפולינומים ל**הרכבה** — המקום שמשמש להרצה הוא פולינומי ב-$n$. - **הנקודה המכרעת [01:11:01]–[01:12:03].** האיטרציות **חוזרות על אותו מקום**. בין שתי איטרציות מוחקים את $r$ ואת כל שטח העבודה של $M$ ומשתמשים בהם מחדש. לכן המקום הכולל של הלולאה הוא המקום של **איטרציה אחת** בלבד, ולא מספר האיטרציות כפול המקום. זהו בדיוק ההבדל בין זמן למקום: בזמן היינו חייבים לכפול במספר האיטרציות, במקום לא. סך הכול $\mathrm{space}_{\hat M}(x)$ פולינומי ב-$|x|$. **ניתוח הזמן — הערה.** זמן הריצה של $\hat M$ הוא $2^{p(n)}$ כפול פולינום, כלומר **מעריכי**. זה בסדר גמור, כי טוענים שייכות ל-$\mathrm{PSPACE}$ ולא ל-$\mathrm{P}$. סטודנט שאל אם ההוכחה אינה נותנת גם $\mathrm{BPP}\subseteq\mathrm{P}$, והמרצה השיב בשלילה מפורשת: "אני לא יודע אם $\mathrm{BPP}$ מוכלת ב-$\mathrm{P}$ או לא — זו בעיה פתוחה" [01:12:33]. **נכונות: $\hat M$ מכריעה את $A$.** יהי $x$; נסמן $N=2^{p(|x|)}$. *מקרה $x\in A$.* לפי ההנחה $\Pr_r[M \text{ accepts } (x,r)]\ge\frac23$. תרגום לספירה: $$\Big|\big\{r\in\{0,1\}^{p(|x|)}: M \text{ accepts } (x,r)\big\}\Big| \;=\; \Pr_r[M \text{ accepts } (x,r)]\cdot N \;\ge\; \tfrac23 N .$$ הלולאה בשלב 3 מגדילה את המונה בדיוק פעם אחת עבור כל $r$ בקבוצה הזו, ולכן בסיום הריצה $\text{count}\ge\frac23 N$, ולכן $\hat M$ **מקבלת** את $x$. *מקרה $x\notin A$.* לפי ההנחה $\Pr_r[M \text{ rejects } (x,r)]\ge\frac23$. כאן נחוצה הנקודה שהודגשה בהגדרה 3: **הקלט $x$ קבוע**, ולכן שני המאורעות משלימים באותו מרחב מדגם, ומכאן $$\Pr_r\big[M \text{ accepts } (x,r)\big] \;=\; 1-\Pr_r\big[M \text{ rejects } (x,r)\big] \;\le\; 1-\tfrac23 \;=\; \tfrac13 .$$ שימו לב שאי-השוויון נשאר **חלש**: זו השלמה של קבוצה, לא שלילה לוגית [01:25:27]–[01:26:31]. לכן $$\text{count} \;=\; \Big|\big\{r: M \text{ accepts } (x,r)\big\}\Big| \;\le\; \tfrac13 N \;<\; \tfrac23 N ,$$ כאשר אי-השוויון האחרון **חזק** כי $N=2^{p(|x|)}>0$. התנאי בשלב 4 בודק "האם $\text{count}\ge\frac23N$", ואנחנו הראינו שהוא קטן ממש, כלומר השלילה הלוגית של התנאי מתקיימת, ולכן $\hat M$ **דוחה** את $x$. $\hat M$ עוצרת תמיד (הלולאה סופית ו-$M$ פולינומית), ולכן היא מכריעה את $A$ במקום פולינומי, כלומר $A\in\mathrm{PSPACE}$. $\blacksquare$ > **הערה על ההבדל בין שני סוגי "היפוך" [01:27:35]–[01:29:17].** בהוכחה הופיעו שני מעברים שנראים דומים ואינם: (א) מ-$\Pr[\text{reject}]\ge\frac23$ ל-$\Pr[\text{accept}]\le\frac13$ — זו **השלמה של קבוצה**, ואי-השוויון נשאר חלש; (ב) מ"לא מתקיים $\text{count}\ge\frac23N$" ל-"$\text{count}<\frac23N$" — זו **שלילה לוגית**, ואי-השוויון הופך לחזק. המרצה הקדיש לזה זמן ואמר שאם לא זוכרים — לבדוק על מקרה פרטי: אם $\Pr[\text{reject}]$ היה **שווה** $\frac23$, אז $\Pr[\text{accept}]$ היה שווה $\frac13$, ולכן ההיפוך חייב להשאיר שוויון אפשרי. ### משפט 5: העצמת ההסתברות בטעות חד-צדדית **ניסוח.** יהי $q$ פולינום עם $q(n)\ge 1$. אזי $$\boxed{\ \mathrm{RP}\;=\;\mathrm{BPP}\!\left(1-\frac{1}{2^{q(n)}},\,1\right)\ }$$ במילים: בטעות חד-צדדית, הסף $\frac12$ שבהגדרת $\mathrm{RP}$ אינו חלק מהתוכן — אפשר להעלות את הסתברות ההצלחה על yes-instances עד קרוב **אקספוננציאלית** ל-$1$, בלי לצאת מהמחלקה ובלי לוותר על הוודאות בצד ה-no. **הוכחת ההכלה $\ \mathrm{BPP}\!\left(1-\frac{1}{2^{q(n)}},1\right)\subseteq\mathrm{RP}$.** מכיוון ש-$q(n)\ge1$ מתקיים $2^{q(n)}\ge2$ ולכן $1-\frac{1}{2^{q(n)}}\ge\frac12$. כמו כן $1\ge1$. לפי משפט 1 (מונוטוניות), עם $\hat\alpha=1-\frac{1}{2^{q(n)}}\ge\alpha=\frac12$ ו-$\hat\beta=\beta=1$, מתקבלת ההכלה. $\square$ **הוכחת ההכלה $\ \mathrm{RP}\subseteq\mathrm{BPP}\!\left(1-\frac{1}{2^{q(n)}},1\right)$.** תהא $A\in\mathrm{RP}$. נעבוד בנוסח ב **במכוון**, למרות ששני האגפים אקראיים — כדי לעקוב במפורש אחרי מספר הביטים האקראיים, שהוא לב העניין [01:32:47], [01:49:33]. לכן: קיימת מכונה דטרמיניסטית $M$ הרצה בזמן פולינומי בגודל הקלט וקיים פולינום $p$ כך שלכל $x$: $$x\in A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^{p(|x|)}}\big[M \text{ accepts } (x,r)\big]\ \ge\ \tfrac12,\qquad x\notin A\ \Longrightarrow\ \Pr_{r\in\{0,1\}^{p(|x|)}}\big[M \text{ rejects } (x,r)\big]\ \ge\ 1 .$$ נבנה מכונה דטרמיניסטית $\hat M$ שהממשק שלה הוא זוג $(x,r)$, שכן זה הממשק הנדרש כדי להוכיח שייכות למחלקה מהמשפחה $\mathrm{BPP}(\alpha,\beta)$ [01:39:55]–[01:40:27]. אורך המחרוזת האקראית שלה יהיה $$|r| \;=\; p(|x|)\cdot q(|x|).$$ $\hat M$ על קלט $x$ ומחרוזת $r\in\{0,1\}^{p(|x|)\cdot q(|x|)}$: 1. חלק את $r$ ל-$q(|x|)$ מחרוזות **זרות** באורך $p(|x|)$ כל אחת: $\ r_1,r_2,\dots,r_{q(|x|)}$. 2. לכל $1\le j\le q(|x|)$: 1. הרץ את $M$ על $(x,r_j)$; 2. אם $M$ **קיבלה** — **קבל** ועצור. 3. **דחה**. **מדוע דווקא הכלל הזה — הניסיון הראשון שנכשל [01:42:03]–[01:42:34].** המרצה כתב תחילה "אם $M$ **דחתה** — דחה", ומיד תיקן. הסיבה: ב-$\mathrm{RP}$ הוודאות היא בצד ה-no. תשובת "לא" של $M$ אינה מלמדת דבר (היא ייתכנה גם על yes-instance, בהסתברות עד $\frac12$), אבל תשובת "כן" היא **חד-משמעית**: אילו $x$ היה no-instance, $M$ הייתה דוחה לכל $r$. לכן מספיקה **הצלחה אחת** מתוך כל ההרצות, ואין צורך במונה כמו בהוכחת משפט 4 — במפורש: "בגלל שהטעות חד-צדדית אני לא צריך counter". **מדוע המחרוזות חייבות להיות זרות [01:43:05]–[01:43:37].** אנחנו רוצים $q(|x|)$ הרצות **בלתי תלויות**, כי רק אי-תלות מתירה להכפיל הסתברויות. סטודנט הציע לחסוך ביטים ולהזיז את החלון ביט אחד בכל פעם; המרצה פסל: "שונה זה לא מספיק לי — אם אני זז ביט אחד יש המון תלות בין המחרוזות". דגימה אחידה של $r$ באורך $p(|x|)q(|x|)$ ופירוקה למקטעים **זרים** נותנת בדיוק $q(|x|)$ מחרוזות אחידות ובלתי תלויות באורך $p(|x|)$, כי לכל ביט בנפרד הדגימה אחידה ובלתי תלויה. **ניתוח זמן ריצה.** - החלוקה של $r$ לתת-מחרוזות: פולינומית ב-$|x|$ (חישוב $p(|x|)$ ו-$q(|x|)$ וסימון גבולות). - כל הרצה של $M$ על $(x,r_j)$: $M$ פולינומית באורך הקלט שלה, שהוא $|x|+p(|x|)$, ולכן פולינומית ב-$|x|$ (סגירות להרכבה). - מספר האיטרציות: $q(|x|)$, פולינומי ב-$|x|$. מכפלת פולינום בפולינום היא פולינום, ולכן סך זמן הריצה של $\hat M$ פולינומי ב-$|x|$. $\square$ **ניתוח הסתברותי — מקרה $x\notin A$.** מהנתון $\Pr_{r'\in\{0,1\}^{p(|x|)}}[M \text{ rejects } (x,r')]\ge 1$, כלומר שווה $1$, כלומר **לכל** $r'\in\{0,1\}^{p(|x|)}$ המכונה $M$ דוחה את $(x,r')$. בפרט זה נכון לכל אחד מהמקטעים $r_1,\dots,r_{q(|x|)}$ של כל $r$ שהוא. לכן בשלב 2.2 אף פעם לא מתקבל "קבל", ו-$\hat M$ מגיעה לשלב 3 ודוחה — **לכל** $r\in\{0,1\}^{p(|x|)q(|x|)}$. מכאן $$\Pr_{r\in\{0,1\}^{p(|x|)q(|x|)}}\big[\hat M \text{ rejects } (x,r)\big]\;=\;1\;\ge\;\beta=1 .\qquad\checkmark$$ **ניתוח הסתברותי — מקרה $x\in A$.** מהנתון $\Pr_{r'}[M \text{ accepts } (x,r')]\ge\frac12$, ומכיוון ש-$x$ **קבוע** והמאורעות משלימים באותו מרחב, $$\Pr_{r'\in\{0,1\}^{p(|x|)}}\big[M \text{ rejects } (x,r')\big]\ \le\ \tfrac12 .$$ $\hat M$ דוחה את $(x,r)$ אם ורק אם הלולאה הסתיימה בלי אף "קבל", כלומר אם ורק אם **לכל** $j$ המכונה $M$ דחתה את $(x,r_j)$. כמות סופית של "לכל" מתורגמת ל"וגם" [01:59:34], ולכן $$\Pr_{r}\big[\hat M \text{ rejects } (x,r)\big] \;=\; \Pr_{r}\Big[\ \bigcap_{j=1}^{q(|x|)}\big\{M \text{ rejects } (x,r_j)\big\}\ \Big] \;\overset{(\ast)}{=}\;\prod_{j=1}^{q(|x|)}\Pr_{r_j}\big[M \text{ rejects } (x,r_j)\big]\;\le\;\left(\tfrac12\right)^{q(|x|)} = \frac{1}{2^{q(|x|)}} ,$$ כאשר $(\ast)$ הוא בדיוק המקום שבו נדרשת אי-התלות, שהובטחה בזכות הזרות של המקטעים. שוב מהשלמה במרחב מדגם קבוע: $$\Pr_{r}\big[\hat M \text{ accepts } (x,r)\big]\;=\;1-\Pr_{r}\big[\hat M \text{ rejects } (x,r)\big]\;\ge\;1-\frac{1}{2^{q(|x|)}}\;=\;\alpha .\qquad\checkmark$$ שני התנאים מתקיימים עם המכונה $\hat M$ והפולינום $\hat p(n)=p(n)\cdot q(n)$, ולכן $A\in\mathrm{BPP}\!\left(1-\frac{1}{2^{q(n)}},1\right)$. יחד עם הכיוון הראשון, $\mathrm{RP}=\mathrm{BPP}\!\left(1-\frac{1}{2^{q(n)}},1\right)$. $\blacksquare$ ### מסקנה 5.1: הצורה שמצוטטת בשיעור 17 **ניסוח.** לכל פולינום $q$ עם $q(n)\ge 2$ מתקיים $$\mathrm{RP}\;=\;\mathrm{BPP}\!\left(1-\frac{1}{q(n)},\,1\right).$$ **הוכחה.** לכל מספר טבעי $m\ge1$ מתקיים $2^m\ge m$, ולכן $\frac{1}{2^{q(n)}}\le\frac{1}{q(n)}$, כלומר $$1-\frac{1}{2^{q(n)}}\ \ge\ 1-\frac{1}{q(n)}\ \ge\ \tfrac12 .$$ כעת: לפי משפט 1, $\ \mathrm{BPP}\!\left(1-\frac{1}{2^{q(n)}},1\right)\subseteq\mathrm{BPP}\!\left(1-\frac{1}{q(n)},1\right)\subseteq\mathrm{BPP}\!\left(\frac12,1\right)=\mathrm{RP}$. ולפי משפט 5, האגף השמאלי ביותר שווה ל-$\mathrm{RP}$. לכן כל ההכלות בשרשרת הן שוויונות, ובפרט $\mathrm{RP}=\mathrm{BPP}\!\left(1-\frac{1}{q(n)},1\right)$. $\blacksquare$ **מדוע שתי הצורות.** הסיכום וההקלטה מנסחים את המשפט עם $\frac{1}{2^{q(n)}}$ — הצורה החזקה יותר. שיעור 17 מצטט את הצורה עם $\frac{1}{q(n)}$. מסקנה 5.1 מראה שאלו אותה טענה, ושהצורה החלשה נובעת מן החזקה בשורה אחת. **מה עולה בהעצמה — "זה לא קסם" [ב׳ 00:01:04]–[ב׳ 00:02:08].** ההעצמה אינה חינם. זמן הריצה גדל (מ-$T$ ל-$q\cdot T$ בקירוב), ומספר הביטים האקראיים גדל מ-$p(n)$ ל-$p(n)q(n)$. הסיבה שהמחלקות בכל זאת **שוות** היא הרזולוציה שבה אנחנו מסתכלים: "אם פה זה היה $n^2$ ופה העליתי את זה ל-$n^{50}$ — זה עדיין פולינומי". כלומר מה שמסתתר מאחורי המשפט הוא בדיוק סגירות הפולינומים לחיבור, כפל והרכבה. **שלושה פולינומים שונים — האזהרה שהמרצה חזר עליה שלוש פעמים [01:55:24]–[01:58:33].** בכל טענה מהסוג הזה מסתובבים שלושה פולינומים נפרדים: 1. **זמן הריצה** של המכונה; 2. **מספר הביטים האקראיים** שהיא קוראת, כאן $p(n)$ ואחר כך $p(n)q(n)$; 3. **הפולינום שבתוך ההסתברות**, כאן $q(n)$. באופן כללי **אין ביניהם שום קשר**, למעט העובדה הכמעט-מיידית שמספר הביטים האקראיים אינו יכול לעלות על זמן הריצה (קריאת ביט עולה צעד). המרצה בחר במכוון בדרך הארוכה, עם המכונה הדטרמיניסטית ועם $r$ מפורש, רק כדי שיהיה אפשר לראות בעיניים שהפולינום של האורך גדל מ-$p$ ל-$p\cdot q$ בעוד שהפולינום בהסתברות נשאר $q$. מסקנה מעשית שנאמרה כרמז לבחינה [01:58:33]: **אם בשאלה מופיע אותו $p$ בשני התפקידים — זו הגדרה אחרת ממה שהוכחנו כאן, ויש לשים לב.** --- ## דוגמאות ותרגילים מהשיעור ### דוגמה 1: מעקב מלא אחרי $\mathrm{MATMUL}\in\mathrm{coRP}$ על מופע $2\times2$ ניקח $$A=\begin{pmatrix}1&0\\0&1\end{pmatrix},\qquad B=\begin{pmatrix}1&0\\0&1\end{pmatrix},\qquad C=\begin{pmatrix}1&0\\0&0\end{pmatrix}.$$ כאן $A\cdot B=I\ne C$, ולכן $\langle A,B,C\rangle\notin\mathrm{MATMUL}$ — זהו **no-instance**, ובו מותרת טעות. נסמן $$D:=A\cdot B-C=\begin{pmatrix}0&0\\0&1\end{pmatrix}\ne 0,\qquad D\cdot r=\begin{pmatrix}0\\ r_2\end{pmatrix}.$$ מרחב המדגם הוא $\Omega=\{0,1\}^2$ ו-$|\Omega|=4$. נעבור על כל ארבע המחרוזות האקראיות: | $r$ | $D\cdot r$ | תשובת המכונה | נכונה? | |---|---|---|---| | $(0,0)$ | $(0,0)$ | מקבלת ("$AB=C$") | לא — טעות | | $(1,0)$ | $(0,0)$ | מקבלת | לא — טעות | | $(0,1)$ | $(0,1)$ | דוחה | כן | | $(1,1)$ | $(0,1)$ | דוחה | כן | לכן $\Pr_r[\text{reject}]=\frac24=\frac12$ — בדיוק על גבול הדרישה $\beta=\frac12$. שימו לב שהמופע הזה **הדוק**: אי אפשר לשפר את $\frac12$ בניתוח, כי כאן הוא מושג בשוויון. עכשיו נבדוק **yes-instance**: נחליף את $C$ ב-$C'=I$. אז $D=0$, ולכן $D\cdot r=0$ לכל אחת מארבע המחרוזות, והמכונה מקבלת **בכל** מקרה: $\Pr_r[\text{accept}]=1=\alpha$. זהו הצד החד-צדדי, והוא נכון **פוינטווייז** — בלי שום שימוש באקראיות. ### דוגמה 2: מה ההעצמה עושה במספרים ניקח את המופע מדוגמה 1 בתפקיד הפוך: השפה $\overline{\mathrm{MATMUL}}$ (כלומר "$AB\ne C$") שייכת ל-$\mathrm{RP}$ עם $\alpha=\frac12$. נפעיל את משפט 5 עם $q(n)=10$ (פולינום קבוע): - המכונה $\hat M$ דוגמת $r$ באורך $p(|x|)\cdot 10$, מפצלת ל-$10$ מקטעים זרים, ומריצה את Freivalds $10$ פעמים. - על no-instance ($AB=C$): כל הרצה דוחה בוודאות, ולכן $\hat M$ דוחה בוודאות. אין false positive. - על yes-instance ($AB\ne C$): $\Pr[\hat M \text{ rejects}]\le\left(\frac12\right)^{10}=\frac{1}{1024}$, ולכן $\Pr[\hat M \text{ accepts}]\ge 1-\frac{1}{1024}\approx 0.999$. עם $q(n)=n$ נקבל הסתברות שגיאה $2^{-n}$ — קטנה מסיכוי הכשל של החומרה — במחיר $n$ הרצות, כלומר עדיין זמן פולינומי. ### תרגיל 1 (החימום שהמרצה נתן בכיתה, [00:34:04]) **השאלה.** יהיו $\alpha,\beta,\hat\alpha,\hat\beta\in[0,1]$ עם $\hat\alpha\ge\alpha,\ \hat\beta\ge\beta$. מה אפשר לומר על היחס בין $\mathrm{BPP}(\alpha,\beta)$ ל-$\mathrm{BPP}(\hat\alpha,\hat\beta)$? **פתרון.** $\mathrm{BPP}(\hat\alpha,\hat\beta)\subseteq\mathrm{BPP}(\alpha,\beta)$ — זה משפט 1, וההוכחה היא "אותה מכונה בדיוק". המרצה הדגיש שזה תרגיל **ניסוח** ותו לא: אין בו רעיון, רק פתיחת ההגדרה משני צדדיה [00:39:14]. הערך שלו הוא בהרגל: כל טענה על מחלקות מתחילה ב"תהא $A\in\dots$ ולכן קיימת מכונה". ### תרגיל 2: מדוע $\mathrm{BPP}\left(\frac12,\frac12\right)$ חסרת תוכן **השאלה.** הוכיחו ש-$\mathrm{BPP}\left(\frac12,\frac12\right)$ מכילה כל שפה $A\subseteq\Sigma^*$, גם שפות שאינן כריעות. **פתרון.** תהא $A$ שפה כלשהי. נגדיר מכונה אקראית $M$ שעל כל קלט $x$ מתעלמת מ-$x$ לגמרי, מטילה מטבע אחד, ומקבלת אם יצא "עץ" ודוחה אם יצא "פלי". זמן הריצה קבוע, ובפרט פולינומי. לכל $x$ מתקיים $\Pr[M \text{ accepts } x]=\frac12$ ו-$\Pr[M \text{ rejects } x]=\frac12$; לכן אם $x\in A$ מתקיים $\Pr[\text{accept}]\ge\frac12$, ואם $x\notin A$ מתקיים $\Pr[\text{reject}]\ge\frac12$. שני התנאים מתקיימים לכל שפה. $\blacksquare$ **המסקנה.** בטעות דו-צדדית **חייבים** לדרוש יותר מ-$\frac12$. זה מסביר למה ההגדרה של $\mathrm{BPP}$ בחרה $\frac23$ ולא $\frac12$, ולמה בהגדרת $\mathrm{RP}$ מותר $\frac12$ — שם הצד השני הוא $1$, ולכן המכונה שמטילה מטבע נפסלת מיד. ### תרגיל 3: מדוע $\mathrm{BPP}(0,1)$ ו-$\mathrm{BPP}(1,0)$ חסרות תוכן **פתרון.** $\mathrm{BPP}(0,1)$: המכונה "דחה תמיד" מקיימת $\Pr[\text{reject}]=1\ge\beta$ לכל no-instance, ואת התנאי $\Pr[\text{accept}]\ge 0$ **כל** מכונה מקיימת. לכן כל שפה בפנים. סימטרית ל-$\mathrm{BPP}(1,0)$ עם "קבל תמיד". **הלקח:** ב-$\mathrm{RP}=\mathrm{BPP}(\frac12,1)$ הקבוע $\frac12$ אינו חשוב (משפט 5 ושיעור 17), אבל **אסור** שיהיה $0$ — הגבול התחתון האמיתי הוא "משהו שאינו זניח". ### תרגיל 4 (מהתרגיל שהמרצה הודיע עליו, [01:29:50]) **השאלה.** בתרגיל הבית תופיע מחלקה $C_1$ שמוגדרת כ"קבוצת כל השפות שעבורן קיימת מכונה כך ש...", עם ערבויות מעט שונות מאלו של הגדרה 3, ותידרשו למקם אותה ביחס ל-$\mathrm{NP}$ ו-$\mathrm{BPP}$ — בדיוק כמו התרגיל המקביל על $\mathrm{NP}$ מוקדם יותר בסמסטר. **איך ניגשים.** לפי ההוכחות בשיעור, יש רק שלוש שאלות שכדאי לשאול על הגדרה כזו: 1. **מה הממשק של המכונה** — האם היא מקבלת $x$ בלבד או זוג $(x,r)$? זה קובע איזה נוסח של הגדרה 3 נוח, ומה אפשר בכלל להוכיח (משפט 4 נבנה סביב זה). 2. **מה מרחב המדגם, וכמה ביטים אקראיים** — האם הפולינום שבאורך $r$ הוא אותו פולינום שבהסתברות? אם כן, זו הגדרה **חזקה יותר** ממה שהוכחנו. 3. **האם הטעות חד-צדדית או דו-צדדית** — כלומר האם אחד מ-$\alpha,\beta$ שווה $1$. אם כן, ההעצמה היא "לפחות פעם אחת" ואין צורך במונה; אם לא, נדרשת הצבעת רוב (שיעור 17). --- ## הערות מהשיעור - **[00:01:02] למה בכלל צריך מודל פורמלי.** כשכותבים אלגוריתם, "חוקי המשחק נובעים מתוך האלגוריתם" — אם כתוב "נדגום וקטור באקראי", ברור מה מותר. אבל כדי **להוכיח דברים על מחלקות סיבוכיות** חייבים להגדיר את המודל קודם. זו כל ההצדקה לשיעור. - **[00:25:13] כלל האצבע החשוב ביותר בשיעור.** "תמיד כשאתם מחשבים הסתברות, שאלו את עצמכם מה האקראי פה. מאיפה האקראיות? זה הדבר הראשון שאני בודק." - **[00:21:01], [00:29:23] שאלת סטודנטית שחשפה את הנקודה העדינה.** "אם $x\in A$ ו-$x\notin A$ הם מקרים משלימים, למה $\alpha+\beta$ לא חייב להיות $1$?" התשובה: כי $x$ **אינו** חלק מהניסוי האקראי. "יש לי את $x$, ואז אני דוגם את $r$ — זה הניסוי האקראי." שני התרחישים חיים במרחבי מדגם שונים לגמרי; אלה שני ניסויים שונים, לא שני מאורעות משלימים באותו ניסוי. זו הטעות מספר אחת בנושא הזה. - **[01:23:54] הצד השני של אותה נקודה.** ברגע ש-$x$ **קבוע**, המאורעות "מקבלת" ו"דוחה" כן משלימים, כי הכול תלוי רק ב-$r$. שני הכיוונים נחוצים: הראשון כדי לא לחבר $\alpha+\beta$, השני כדי להסיק $\Pr[\text{accept}]\le\frac13$ בהוכחת משפט 4. - **[00:49:25] "אל תחמקו מהשלד של ההוכחה."** סטודנט קפץ ישר לפואנטה, והמרצה עצר: "אתה אומר דברים נכונים אבל you jump the gun. אם אני לא כותב את המסגרת של ההוכחה, אני הולך לאיבוד — כי אתה מתחיל לדבר על $x$ ואין לך $x$." הכוונה: לפני כל טיעון הסתברותי צריך לכתוב "תהא $A\in\dots$, לכן קיימת מכונה $M$..., יהי $x$..., נניח $x\in A$..." — ורק אז לחשב. - **[01:39:55] הלקח המתודי המרכזי.** "אני מתאים את הממשק למה שאני רוצה להוכיח." להוכחת $\mathrm{PSPACE}$ בונים מכונה שמקבלת רק $x$ (ולכן עוברים על כל ה-$r$-ים בלולאה); להוכחת שייכות ל-$\mathrm{BPP}(\alpha,\beta)$ בונים מכונה שמקבלת $(x,r)$ (ולכן אין לולאה על $r$). זו אותה שאלה שהמרצה ציין כ"שאלה חשובה". - **[01:13:03] טריק שחוזר מהקורס.** את $2^{p(|x|)}$ כותבים בבינארי ולא באונרי. באונרי היינו רושמים $p(|x|)$ אפסים ואחריהם אחד — ייצוג לגיטימי, אך גדול מדי כאן. הטריק ההפוך נעשה במשפט ההיררכיה (ראו שיעור 3), ושם דווקא האונרי היה הנוח. "מתי אכתוב באונרי ומתי בבינארי? מתי שנוח לי." - **[01:12:33] מה שלא הוכחנו.** ההוכחה של משפט 4 אינה נותנת $\mathrm{BPP}\subseteq\mathrm{P}$, כי זמן הריצה של $\hat M$ מעריכי. השאלה אם $\mathrm{BPP}=\mathrm{P}$ היא **בעיה פתוחה**. - **[00:30:24] "יש לזה שימוש במציאות?"** כן, ובגדול — בניגוד לאי-דטרמיניזם, שאינו מודל ישים בשום צורה. אקראיות מפזרת סיכונים; כשהקלטים ענקיים לא רוצים לעבור על כולו אלא לדגום ממנו, ואת הדגימה עושים באקראי כדי להימנע מהטיה (bias). המרצה נתן כדוגמה אלגוריתמי למידת מכונה, שדוגמים מדגם אקראי לאימון ומאתחלים באקראי. - **[01:29:17] נקודה קטנה שחוזרת בבחינות.** ההבדל בין **שלילה לוגית** (מ-$\ge$ ל-$<$) לבין **השלמה של קבוצה** (שמשאירה $\ge$ כ-$\le$). שניהם הופיעו בהוכחה אחת. - **[02:02:52] הכיוון שנשאר לשיעור הבא.** המרצה סיים בהצגת הטענה $\mathrm{RP}=\mathrm{BPP}\!\left(\frac{1}{q(n)},1\right)$ בלי להוכיחה, וקרא לה "קאונטר-אינטואיטיבית": מתחילים מהסתברות הצלחה ששואפת ל-$0$ ומגיעים להסתברות ששואפת ל-$1$ — **בזמן פולינומי**. ראו שיעור 17. > **הערה (מינוח שלא נאמר בשיעור).** בספרות מקובל לכנות אלגוריתם שזמן הריצה שלו חסום תמיד אך תשובתו עשויה להיות שגויה — **Monte Carlo**, ואלגוריתם שתשובתו תמיד נכונה אך זמן הריצה שלו משתנה מקרי — **Las Vegas**. כל המכונות בשיעור הזה הן מטיפוס Monte Carlo. המונחים האלה **אינם** מופיעים לא בסיכום ולא בשתי ההקלטות, והם נכתבים כאן רק לצורך קישור לחומר חיצוני (אותה הערה מופיעה גם בשיעור 15). --- ## פערים בין הסיכום להקלטה - **מקור:** עמוד 5 בסיכום מול שיעור 17. **הפער:** הסיכום וההקלטה מנסחים את משפט ההעצמה כ-$\mathrm{RP}=\mathrm{BPP}(1-\frac{1}{2^{q(n)}},1)$, ואילו שיעור 17 מצטט $\mathrm{RP}=\mathrm{BPP}(1-\frac{1}{q(n)},1)$. **ההכרעה:** נכתבו שתיהן — משפט 5 בצורת המקור, ומסקנה 5.1 בצורה שמצוטטת בשיעור 17, עם הוכחה בת שורה שהשנייה נובעת מהראשונה. - **מקור:** עמוד 4 בסיכום. **הפער:** שלב 4 בפסאודו-קוד משווה $\text{count}\ge\frac23\cdot2^{p(|x|)}$, ערך שאינו שלם בהכרח, ולא נאמר איך מממשים זאת. **ההכרעה:** נכתב במפורש שהמבחן השקול בשלמים הוא $3\cdot\text{count}\ge2^{p(|x|)+1}$; ההוכחה אינה מושפעת. - **מקור:** עמוד 1 בסיכום. **הפער:** הסיכום אינו נותן שישייה למכונה האקראית אלא הגדרה מילולית; גם ההקלטה [00:04:34] מודה במפורש ש"זה לא מרגיש לגמרי פורמלי". **ההכרעה:** נרשמה השישייה $M=(Q,q_{start},F,\Sigma,\Gamma,\delta)$ בעקבות שיעור 4, עם הערה שההידוק הוא שלנו. - **מקור:** עמוד 1 בסיכום, שתי ההערות בכחול בשוליים. **הפער:** קצרות מדי מכדי לקרוא בוודאות. **ההכרעה:** פוענחו לפי ההקלטה [00:10:57]–[00:11:28] כ"מודל 1 נוח לכתיבת אלגוריתמים, מודל 2 נוח להשוואה בין מחלקות", וכך נכתבו. - **מקור:** ההקלטה מול הסיכום. **הפער:** ההקלטה מכילה חומר מהותי שאין בסיכום כלל — ההבחנה בין "לא דטרמיניסטי" ל"אי-דטרמיניסטי" [00:05:05]–[00:06:43]; ההסבר למה $\mathrm{RP}$ מוגדרת עם $1$ דווקא בצד ה-no [00:58:48]; האזהרה על שלושת הפולינומים [01:55:24]; והתיקון החי של כלל העצירה בלולאה מ"אם דחתה" ל"אם קיבלה" [01:42:03]. **ההכרעה:** כל אלה נכללו בגוף, עם חותמות זמן. - **מקור:** הסיכום מול ההקלטה, בסיווג $\mathrm{MATMUL}$. **הפער:** הסיכום אינו מזכיר את בעיית וידוא כפל המטריצות בכלל; בהקלטה [00:41:30] הסיווג ב-$\mathrm{coRP}$ נאמר בעל פה כשאלה לכיתה, בלי אימות מול ההגדרה. **ההכרעה:** נכתב כמשפט 3 עם הוכחה מלאה, כולל חשבון הביטים, כדי לסגור את מה שנדחה לכאן משיעור 15. השם $\mathrm{MATMUL}$ הוא סימון של הסדרה ואינו מופיע במקורות. - **מקור:** עמוד 2 בסיכום. **הפער:** שם המחלקה $\mathrm{RP}$ כתוב בכתב יד באופן שאפשר לקרוא כ-"BP" בכמה מקומות ($\mathrm{BP}=\mathrm{BPP}(\frac12,1)$, $\mathrm{BP}\subseteq\mathrm{NP}$). **ההכרעה:** מההקלטה ברור שהכוונה ל-$\mathrm{RP}$ בכל המופעים; נכתב $\mathrm{RP}$. - **מקור:** ההקלטה בלבד. **הפער:** המרצה תיאר את ההוכחה של משפט 5 כ"מעגל פינות" בניתוח הזמן [01:46:20], [01:46:51]. **ההכרעה:** ניתוח הזמן נכתב כאן במלואו — חלוקת $r$, זמן כל הרצה, מספר האיטרציות, וסגירות הפולינומים — במקום ה"עיגול". - **מקור:** המוסכמות של הסדרה. **ההכרעה:** שמות המחלקות והשפות נכתבים ב-$\mathrm{\ }$ לפי מוסכמת הסדרה; סימוני המשתנים ($\alpha,\beta,\hat\alpha,\hat\beta,p,q,r,M,\hat M,\text{count}$) נלקחו כלשונם מהסיכום. --- ## סיכום ונקודות למבחן **להכיר בעל פה.** $$\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),$$ $$\mathrm{RP}\subseteq\mathrm{NP},\qquad \mathrm{coRP}\subseteq\mathrm{coNP},\qquad \mathrm{BPP}\subseteq\mathrm{PSPACE},\qquad \mathrm{RP}=\mathrm{BPP}\!\left(1-\tfrac{1}{2^{q(n)}},1\right).$$ **המלכודות הסטנדרטיות.** 1. **הסתברות על מי.** לעולם לא על הקלט. הקלט קבוע ושרירותי; האקראיות היא מטבעות המכונה בלבד. כל משפט מתחיל ב"יהי $x$" ורק אחר כך פותחים $\Pr$. 2. **$\alpha+\beta\ne1$.** אלה שני תרחישים במרחבי מדגם שונים. אבל **לקלט קבוע** כן מותר לכתוב $\Pr[\text{accept}]=1-\Pr[\text{reject}]$ — ובלי זה אי אפשר להוכיח את משפט 4. 3. **$\mathrm{coRP}$ אינה משלימת $\mathrm{RP}$** אלא קבוצת המשלימות. אותה מלכודת כמו $\mathrm{coNP}$. 4. **איזה צד ודאי.** ב-$\mathrm{RP}$ אין "כן" שגוי; ב-$\mathrm{coRP}$ אין "לא" שגוי. אם מתבלבלים — לחשוב על Freivalds: כשהזהות מתקיימת, היא מתקיימת לכל $r$; לכן הצד הוודאי הוא ה-yes, ולכן $\mathrm{coRP}$. 5. **שלושה פולינומים.** זמן ריצה, מספר ביטים אקראיים, והפולינום בהסתברות — אין קשר ביניהם. אם בשאלה מופיע אותו פולינום בשני תפקידים, זו הגדרה **אחרת**. 6. **שלילה לוגית מול השלמת קבוצה.** $\neg(\text{count}\ge t)$ נותן $<$ חזק; $\Pr[\text{reject}]\ge\frac23$ נותן $\Pr[\text{accept}]\le\frac13$ חלש. 7. **בחירת הנוסח.** מוכיחים שייכות למחלקה **דטרמיניסטית** — התחילו מנוסח ב (סרט אקראי), כי הממשק תואם. מציגים **אלגוריתם** — נוסח א נוח יותר. **צ'ק-ליסט: אחרי השיעור הזה צריך לדעת** - לכתוב את שני המודלים של מכונה אקראית ולהסביר במשפט מה ההבדל בין "לא דטרמיניסטי" ל"אי-דטרמיניסטי". - לפתוח את ההגדרה של $\mathrm{BPP}(\alpha,\beta)$ בשני הנוסחים, ולזהות מיד מהו מרחב המדגם וגודלו. - להוכיח את מונוטוניות ההכלה (משפט 1) בשלוש שורות, ולקבוע לבד לאיזה כיוון היא הולכת. - לשחזר את $\mathrm{RP}\subseteq\mathrm{NP}$ כולל שלב הספירה $\Pr\cdot|\Omega|=2^{p(|x|)-1}\ge1$ והטיפול בקלטים הקצרים. - לשחזר את $\mathrm{BPP}\subseteq\mathrm{PSPACE}$ כולל: למה המכונה הבנויה מקבלת רק $x$, למה שימוש חוזר במקום בין איטרציות שומר על מקום פולינומי, ולמה הזמן מעריכי ואין מכאן $\mathrm{BPP}\subseteq\mathrm{P}$. - לבנות את מכונת ההעצמה החד-צדדית, להסביר למה עוצרים ב"קיבלה" ולא ב"דחתה", ולמה המקטעים חייבים להיות זרים. - לסווג בעיה נתונה ל-$\mathrm{RP}$ / $\mathrm{coRP}$ / $\mathrm{BPP}$ לפי כיוון הוודאות, כפי שנעשה עבור $\mathrm{MATMUL}$.

Questions left open

  • בסיכום עמוד 5 המשפט נכתב $\mathrm{RP}=\mathrm{BPP}(1-1/2^{q(n)},1)$, וכך גם בהקלטה; שיעור 17 מצטט את הצורה החלשה יותר $\mathrm{RP}=\mathrm{BPP}(1-1/q(n),1)$. שתיהן נכונות והשנייה נובעת מהראשונה — כאן מופיעות שתיהן (משפט 5 ומסקנה 5.1) כדי שהציטוט בשיעור 17 יהיה מדויק.
  • בעמוד 1 בסיכום שתי ההערות בכחול בשוליים קצרות מאוד; פוענחו בעזרת ההקלטה כ'המודל הנוח לכתיבת אלגוריתמים' מול 'המודל הנוח להשוואה בין מחלקות'. אם הקריאה שגויה, מדובר רק בניסוח ההערה ולא בתוכן.
  • הסיכום אינו נותן רביעייה/שישייה למכונה האקראית אלא הגדרה מילולית בלבד; שישיית המכונה כאן הובאה משיעור 4 לצורך אחידות הסדרה.
  • שלב 4 בפסאודו-קוד שבסיכום (עמוד 4) משווה $\text{count}\ge\frac23\cdot2^{p(|x|)}$ — ערך שאינו שלם בהכרח; כאן נכתבה ההשוואה השקולה בשלמים $3\cdot\text{count}\ge2^{p(|x|)+1}$, וזו תוספת פורמלית שלנו.