סיבוכיות (89-320, 89-225)

‫סיבוכיות‬
‫)‪(89-320, 89-225‬‬
‫סיכומי ההרצאות‬
‫אוניברסיטת בר‪-‬אילן‬
‫סיכומי הרצאות אלו מבוססים על הרצאותיה של ד"ר טלי קאופמן באוניברסיטת בר אילן‪ ,‬בסמסטר ב' בשנת הלימודים‬
‫תשע"ג ‪ .2013‬עידכון אחרון התבצע ב‪ 25-‬ביוני ‪.2013‬‬
‫בשנה ספציפית זו‪ ,‬הועבר הקורס משנה ג' לשנה ב' ונוספה שעת הרצאה נוספת לקורס‪ ,‬ועקב כך התקיימו שני הקורסים‬
‫‪320‬־‪ 89‬ו‪ .89-250-‬חלוקת הציון הסופי בקורס מתחלקת ‪ 80/20‬לתרגילים‪/‬מבחן‪ .‬נכון להרגע‪ ,‬סיכום זה מכיל את‬
‫ההרצאות לפי קורס מס' ‪ 89-320‬הזהות לפי הקורס השני‪ ,‬ונכון להרגע לא מכיל מספר הרצאות נוספות הייחודיות‬
‫בקורס ‪ . 89-225‬כולי תקווה שסיכום זה יעזור בהבנת החומר הנלמד‪ ,‬וגם ישמש לקוראים מזדמנים המחפשים לקרוא‬
‫על סיבוכיות בעברית וב־‪:-) LATEX‬‬
‫לשאלות‪ ,‬הערות‪ ,‬תיקונים וכדומה‪ ,‬שלחו למייל ‪ [email protected]‬כל הזכויות שמורות ל־‪.Studenteen.org‬‬
‫‪1‬‬
‫תוכן עניינים‬
‫‪ I‬סיבוכיות זמן‪ ,‬סיבוכיות זיכרון‬
‫‪1‬‬
‫‪2‬‬
‫שאלת ‪ P‬מול ‪NP‬‬
‫‪4‬‬
‫‪1.1‬‬
‫‪ P‬מול ‪ NP‬בגרסת החיפוש ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪1.2‬‬
‫‪ P‬מול ‪ NP‬בגרסת ההכרעה ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪7‬‬
‫‪1.3‬‬
‫שקילות השאלות ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪7‬‬
‫רדוקציות‬
‫‪6‬‬
‫‪9‬‬
‫הגדרות לסוגי הרדוקציות השונות‪ ,‬דוגמאות ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪-NP‬שלמות‬
‫‪9‬‬
‫‪11‬‬
‫‪3.1‬‬
‫הגדרת המושג של שלמות וקושי ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪11‬‬
‫‪3.2‬‬
‫רדוקציה עצמית לכל בעיה ‪-NP‬שלמה‪ ,‬משפט לדנר ‪. . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪12‬‬
‫המחלקה ‪co-NP‬‬
‫‪4.1‬‬
‫‪5‬‬
‫‪5‬‬
‫‪5‬‬
‫‪2.1‬‬
‫‪3‬‬
‫‪4‬‬
‫‪15‬‬
‫הגדרת המחלקה‪ ,‬שאלת ‪ co-NP‬מול ‪ NP‬ותוצאותיה ‪. . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫ההיררכיה הפולינומית ‪PH‬‬
‫‪15‬‬
‫‪18‬‬
‫‪5.1‬‬
‫הגדרת ההיררכיה‪ ,‬הגדרות שקולות ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪18‬‬
‫‪5.2‬‬
‫שאלת קריסת ההיררכיה‪ ,‬הקשר לשאלת ‪ P‬מול ‪. . . . . . . . . . . . . . . . . . . . . . . . . NP‬‬
‫‪20‬‬
‫‪5.3‬‬
‫הגדרה באמצעות מכונות עם גישת אורקל‪ ,‬סגירות לרדוקציות קוק ‪. . . . . . . . . . . . . . . . . .‬‬
‫‪21‬‬
‫‪24‬‬
‫חישוב לא יוניפורמי‬
‫‪6.1‬‬
‫מודל המעגלים כמודל לא יוניפורמי ראשון‪ ,‬משפחות של מעגלים בוליאניים‪ ,‬חישוב‬
‫‪. . . . . . . . .‬‬
‫‪24‬‬
‫‪6.2‬‬
‫מכונות טיורינג המקבלות עצה כמודל לא יוניפורמי שני ‪. . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪25‬‬
‫‪6.3‬‬
‫שקילות בין שני המודלים הלא יוניפורמים ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪25‬‬
‫‪6.4‬‬
‫הקשר לשאלת ‪ P‬מול ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NP‬‬
‫‪26‬‬
‫‪2‬‬
‫תוכן עניינים‬
‫‪7‬‬
‫‪8‬‬
‫תוכן עניינים‬
‫‪28‬‬
‫סיבוכיות זיכרון‬
‫‪7.1‬‬
‫הגדרת סיבוכיות זיכרון‪ ,DSPACE ,‬חישוב בזיכרון לוגריתמי ‪. . . . . . . . . . . . . . . . . . . .‬‬
‫‪28‬‬
‫‪7.2‬‬
‫סיבוכיות זיכרון לא דטרמיניסטית‪ ,‬חישוב לא דטרמיניסטי בזיכרון לוגריתמי ‪. . . . . . . . . . . . .‬‬
‫‪30‬‬
‫‪7.3‬‬
‫רדוקציית ‪-NL ,log-space‬שלמות‪ ,‬משפט ‪ ,Savitch‬משפט ‪. . . . . . . . . . . . . . . Immerman‬‬
‫‪30‬‬
‫‪7.4‬‬
‫סיבוכיות מקום פולינומית‪ ,‬הגדרה ומספר טענות ‪. . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪36‬‬
‫‪7.5‬‬
‫שלמות ב‪ ,PSPACE-‬קיום בעיה שלמה ב‪. . . . . . . . . . . . . . . . . . . . . . . PSPACE-‬‬
‫‪37‬‬
‫‪40‬‬
‫אלגוריתמים ראנדומיים‬
‫‪8.1‬‬
‫מכונת טיורינג הסתברותית‪ ,‬הגדרות ומוטיבציה ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪40‬‬
‫‪8.2‬‬
‫חישוב הסתברותי פולינומי עם טעות חד‪-‬צדדית‪. . . . . . . . . . . . . . . . . . . . . . . . RP ,‬‬
‫‪41‬‬
‫‪8.3‬‬
‫טעות דו‪-‬צדדית‪ BPP ,‬והקשר למחלקות אחרות ‪. . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪42‬‬
‫‪3‬‬
‫חלק ‪I‬‬
‫סיבוכיות זמן‪ ,‬סיבוכיות זיכרון‬
‫‪4‬‬
‫פרק ‪1‬‬
‫שאלת ‪ P‬מול ‪NP‬‬
‫תחום הסיבוכיות עוסק בבעיות הניתנות לחישוב באופן יעיל‪ .‬אלגוריתם ייקרא יעיל אם עובד בזמן פולינומיאלי באורך‬
‫הקלט שלו‪.‬‬
‫הנושא בו נעסוק בחלק זה הוא בשאלת ‪ P‬מול ‪ NP‬בגרסת החיפוש וגרסת ההכרעה‪.‬‬
‫‪1.1‬‬
‫‪ P‬מול ‪ NP‬בגרסת החיפוש‬
‫בעיית חיפוש ניתנת להתאמה ליחס ∗}‪ ,R ⊆ {0, 1}∗ × {0, 1‬כאשר }‪ .R = {(x, y) | (x, y) ∈ R‬בעיית החיפוש‬
‫שמתאימה ליחס ‪ R‬היא הבעיה שבהינתן ‪ x‬יש למצוא ‪ y‬כך ש‪ ,(x, y) ∈ R-‬ואם אין ‪ y‬כזה יש להחזיר ‪.0 ⊥0‬‬
‫הגדרה ‪ 1.1‬יחס חיפוש ייקרא חסום פולינומיאלית אם קיים פולינום ‪ p‬כך שעבור כל ‪ (x, y) ∈ R‬מתקיים‬
‫)|‪|y| ≤ p(|x‬‬
‫נגדיר כעת את מחלקת בעיות החיפוש הניתנות לפתרון פולינומיאלי‪.‬‬
‫הגדרה ‪ 1.2‬מחלקת בעיות החיפוש הניתנות לפתרון פולינומיאלי נקראית ‪ ,1 PF‬ומגדרת כך‪:‬‬
‫}‪PF = {R | ∃A : A is polynomial, and A(x) returns y such that (x, y) ∈ R or ⊥ if no such y exists‬‬
‫ומוגדר גם אוסף הפתרונות האפשריים עבור ‪,x‬‬
‫}‪R(x) = {y | (x, y) ∈ R‬‬
‫‪1‬ובאנגלית‪.Polynomial Find ,‬‬
‫‪5‬‬
‫‪ P .1.1‬מול ‪ NP‬בגרסת החיפוש‬
‫פרק ‪ .1‬שאלת ‪ P‬מול ‪NP‬‬
‫באופן זהה לאיך שהוגדר לעיל‪ ,‬אז אלגוריתם ‪ A‬יפעל באופן להלן‪:‬‬
‫‪ .1‬אם ∅ =‪ R(x) 6‬אז )‪ A(x‬יחזיר )‪.y ∈ R(x‬‬
‫‪ .2‬אחרת‪ R(x) = ∅ ,‬ואז )‪ A(x‬יחזיר ⊥‪.‬‬
‫דוגמא‪ .‬מציאת ‪-2‬צביעה בגרף היא בעיה ששייכת ל‪ .PF-‬לעומת זאת‪ ,‬מציאת ‪-3‬צביעה היא בעיה שאינה ידועה להיות‬
‫שייכת ל‪.PF-‬‬
‫להלן נתאר מחלקה טבעית של בעיות חיפוש שלא ידועות להיות ב‪,PF-‬‬
‫הגדרה ‪ 1.3‬המחלקה ‪ 2 PC‬מוגדרת כך‪:‬‬
‫}‪PC = {R | R is polynomial bounded, ∃A polynomial, A(x, y) returns 1 ⇐⇒ (x, y) ∈ R‬‬
‫שאלת ‪ P‬מול ‪ NP‬בגרסת החיפוש היא למעשה השאלה האם ‪ ,PC ⊆ PF‬כלומר‪" ,‬האם וידוא יותר יעיל מחיפוש"‪,‬‬
‫האם כאשר יש וידוא יעיל ניתן למצוא פתרון באופן יעיל?‬
‫אם כך‪ ,‬נשאלת השאלה ההפוכה‪ .‬כלומר‪ ,‬האם ‪?PF ⊆ PC‬‬
‫∈ ‪.R‬‬
‫טענה ‪ .PF * PC 1.4‬כלומר‪ ,‬קיים יחס ‪ R‬כך ש‪ R ∈ PF-‬אך ‪/ PC‬‬
‫הוכחה‪ .‬נגדיר את היחס ‪ R‬באופן הבא‪:‬‬
‫}‪R = {(x, 1) | x ∈ {0, 1}∗ } ∪ {(x, 0) | x ∈ S‬‬
‫}‬
‫‪{z‬‬
‫‪R2‬‬
‫|‬
‫‪{z‬‬
‫}‬
‫‪R1‬‬
‫|‬
‫∈ ‪ ,4 R2‬ומתקיים כי ‪ ,R ∈ PF‬אך‬
‫כאשר ‪ S‬תהיה קבוצה שאינה כריעה ‪ .3‬נשים לב ‪ R1 ∈ PF, R1 ∈ PC‬ו‪/ PC-‬‬
‫∈ ‪.R‬‬
‫‪/ PC‬‬
‫‪ ,R ∈ PF .1‬שכן עבור כל ∗}‪ ”1” ,x ∈ {0, 1‬הוא פתרון חוקי‪.‬‬
‫∈ ‪ ,R‬שכן בהינתן זוג )‪ (x, 0‬לא ניתן להכריע אם ‪ ,(x, 0) ∈ R‬שכן לא ניתן להכריע אם ‪.x ∈ S‬‬
‫‪/ PC .2‬‬
‫‪2‬ובאנגלית ‪.Polynomial Check‬‬
‫‪3‬כלומר‪ ,‬לא קיימת מכונת טיורינג שיכולה להכריע האם ‪.x ∈ S‬‬
‫‪4‬חישבו מדוע!‬
‫‪6‬‬
‫פרק ‪ .1‬שאלת ‪ P‬מול ‪NP‬‬
‫‪ P .1.2‬מול ‪ NP‬בגרסת ההכרעה‬
‫‪ P 1.2‬מול ‪ NP‬בגרסת ההכרעה‬
‫בעיות הכרעה ניתנות לתיאור בעזרת קבוצות‬
‫}‪S = {x | x has property π‬‬
‫בעיית ההכרעה המתאימה לקבוצה ‪ S‬היא בהינתן ‪ ,x‬צריך להכריע האם ‪.x ∈ S‬‬
‫הגדרה ‪ 1.5‬נגדיר את המחלקה ‪ P‬להיות‪,‬‬
‫}‪P = {S | there exists a polynomial algorithm A that decides whether x ∈ S or not‬‬
‫דוגמא‪ .‬ההכרעה האם גרף הוא ‪-2‬צביע‪ ,‬שייכת ל‪ ,P-‬אך לעומת זאת ההכרעה האם גרף הוא ‪-3‬צביע לא ידועה להיות‬
‫שייכת ל‪.P-‬‬
‫הגדרה ‪ 1.6‬מערכת הוכחה מסוג ‪ NP‬עבור ‪ S‬היא זוג ) ‪ (V, P‬כאשר ‪ V‬מוודא ו‪ P -‬פולינום‪ ,‬כך שמתקיימים התנאים הבאים‪:‬‬
‫‪ .1‬שלמות‪ .‬טענות חוקיות ניתנות להוכחה‪ .‬כלומר‪ ,‬אם ‪ x ∈ S‬אז קיים )|‪ |y| < P (|x‬כך ש‪ V ,V (x, y) = 1-‬אלגוריתם‬
‫פולינומיאלי‪.‬‬
‫∈ ‪ x‬אז ‪.∀y : V (x, y) = 0‬‬
‫‪ .2‬נאותות‪ .‬טענות לא חוקיות לא ניתנות להוכחה‪ .‬כלומר‪ ,‬אם ‪/ S‬‬
‫והמחלקה ‪ NP‬מוגדרת להיות‪:‬‬
‫}‪NP = {S | there exists a NP proof system for S‬‬
‫שאלת ‪ P‬מול ‪ NP‬בגרסת ההכרעה היא למעשה השאלה האם ‪ .P = NP‬נשים לב‪ ,‬בשונה מגרסת החיפוש‪,P ⊆ NP ,‬‬
‫והשאלה היא‪ ,‬אם כך‪ .NP ⊆ P ,‬כלומר‪ ,‬האם כל מה שניתן להוכיח‪ ,‬ניתן לחשב‪ .‬האם וידוא הוכחה הוא אכן קל יותר‬
‫ממציאת פתרון‪.‬‬
‫‪1.3‬‬
‫שקילות השאלות‬
‫כעת‪ ,‬נוכיח כי שתי השאלות הנ"ל‪ ,‬למרות ההבדל בינהן‪ ,‬שקולות‪.‬‬
‫משפט ‪.PC ⊆ PF ⇐⇒ P = NP 1.7‬‬
‫‪7‬‬
‫פרק ‪ .1‬שאלת ‪ P‬מול ‪NP‬‬
‫‪ .1.3‬שקילות השאלות‬
‫הוכחה‪ (⇒) .‬נניח ש‪ ,PC ⊆ PF-‬ונראה כי ‪ .5 NP ⊆ P‬לשם כך‪ ,‬תהי ‪ .S ∈ NP‬ז"א‪,‬‬
‫‪x ∈ S ⇐⇒ ∃y : |y| < p(|x|), V (x, y) = 1‬‬
‫נגדיר את היחס ‪ R‬להיות היחס הבא‪,‬‬
‫}‪R = {(x, y) | V (x, y) = 1‬‬
‫ומכיוון ש‪ ,S ∈ NP-‬נקבל ש‪ .R ∈ PC-‬כעת‪ ,‬נשתמש בהנחה לפיה ‪ ,PC ⊆ PF‬ונקבל ‪ .R ∈ PF‬ז"א‪ ,‬קיים‬
‫אלגוריתם פולינומיאלי ‪ A‬שבהינתן ‪ x‬מחזיר )‪ y ∈ R(x‬אם ‪ y‬כזה קיים‪ ,‬ואחרת ‪ A‬מחזיר ⊥‪.‬‬
‫כעת נוכיח כי ‪ .S ∈ P‬כלומר‪ ,‬צריך למצוא אלגוריתם פולינומיאלי שמחזיר ‪.x ∈ S ⇐⇒ 1‬‬
‫בהינתן ‪ ,x‬נגדיר את האלגוריתם )‪ A0 (x‬לעבוד כך‪,‬‬
‫⊥ =‪A0 (x) = 1 ⇐⇒ A(x) 6‬‬
‫וקל לראות כי אכן ‪ A0‬מכריע את ‪ S‬בזמן פולינומי‪ ,‬כנדרש לכיוון זה‪.‬‬
‫)⇐( נניח ש‪ NP ⊆ P-‬ונראה ש‪ .PC ⊆ PF-‬יהי ‪ ,R ∈ PC‬ונוכיח כי ‪ .R ∈ PF‬נגדיר את בעיית ההכרעה המתאימה‬
‫ל‪ R-‬ע"י‪:‬‬
‫}‪SR = {x | ∃y : (x, y) ∈ R‬‬
‫נגדיר בעיית הכרעה נוספת‬
‫}‪SR0 = {(x, y 0 ) | ∃y 00 : (x, y 0 y 00 ) ∈ R‬‬
‫כלומר‪ ,‬האם ‪ y 0‬היא תחילית של פתרון כלשהו עבור ‪ .x‬למשל‪.(x, ””) ∈ SR0 ⇐⇒ R(x) 6= ∅ ,‬‬
‫מתקיים כעת כי ‪ ,SR0 ∈ NP‬שכן ‪ R ∈ PC‬ולכן‪ ,‬קיים אלגוריתם פולינומי ‪ A‬שבהינתן זוג )‪ (x, y‬מוודא האם‬
‫‪ ,(x, y) ∈ R‬ואז בהינתן ) ‪ (x, y 0‬מוודא ) ‪ V ((xy 0 ), y 00‬יכול להפעיל את האלגוריתם ‪ A‬שפועל בזמן פולינומי‪ ,‬ולוודא‬
‫שאכן ‪ (x, y 0 y 00 ) ∈ R‬ולהסיק מכך ש־ ‪.6 (x, y 0 ) ∈ SR0‬‬
‫וכעת‪ ,‬נשתמש בהנחה ש‪ NP ⊆ P-‬ונסיק כי ‪ ,SR0 ∈ P‬וכעת נראה ש‪ .R ∈ PF-‬כלומר‪ ,‬קיים אלגוריתם פולינומיאלי‬
‫שבהינתן ‪ ,x‬מוצא )‪ y ∈ R(x‬אם ∅ =‪ R(x) 6‬ואחרת מחזיר ⊥‪.‬‬
‫אלגוריתם ‪ 1.1‬למציאת )‪ y ∈ R(x‬בהינתן ‪.x‬‬
‫∈ )”” ‪ (x,‬החזר שאין פיתרון‪.‬‬
‫‪ .1‬אם ‪/ SR0‬‬
‫‪.y 0 ← ”” .2‬‬
‫∈ ) ‪ ,(x, y 0‬אם ‪ (x, y 0 0) ∈ SR0‬אז ‪ ,y 0 ← y 0 0‬ואחרת ‪.y 0 ← y 0 1‬‬
‫)א( כל עוד ‪/ R‬‬
‫)ב( החזר ‪.y 0‬‬
‫וקל לראות כי אכן אלגוריתם ‪ 1.1‬מקיים את הדרוש‪ ,‬ולכן הטענה הוכחה‪.‬‬
‫‪5‬אנחנו יודעים ש‪ P ⊆ NP-‬ולכן ‪.P = NP ⇐= NP ⊆ P‬‬
‫‪6‬כלומר‪ ,‬המוודא ‪ V‬מהווה מערכת הוכחה מסוג ‪ ,NP‬ולכן ‪∈ NP‬‬
‫‪8‬‬
‫‪0‬‬
‫‪.SR‬‬
‫פרק ‪2‬‬
‫רדוקציות‬
‫רדוקציה של בעיה ‪ B‬לבעיה ‪ A‬היא אלגוריתם הפותר את בעיה ‪ B‬ע"י שימוש באלגוריתם בפותר את בעיה ‪ .A‬נשים‬
‫לב כי בהוכחה של משפט ‪ ,1.7‬עשינו רדוקציה מ‪ R-‬ל‪ ,SR0 -‬כאשר ‪ R‬היא בעיית החיפוש ו‪ SR0 -‬היא בעיית הכרעה‪.‬‬
‫‪2.1‬‬
‫הגדרות לסוגי הרדוקציות השונות‪ ,‬דוגמאות‬
‫הגדרה ‪ 2.1‬רדוקציית קוק מבעייה ‪ B‬לבעיה ‪ A‬מתוארת כמכונת טיורינג פולינומיאלית עם גישת אורקל ‪ ,M A‬כאשר ‪ M A‬פותרת‬
‫את בעיה ‪ B‬תוך שימוש בשאילתות אורקל לבעיה ‪.A‬‬
‫מקרה פרטי של רדוקציית קוק היא רדוקציית קארפ‪ ,‬אותה נגדיר‪,‬‬
‫הגדרה ‪) 2.2‬רדוקציית ‪-Karp‬קארפ( היא רדוקציה בין שתי בעיות הכרעה החשיבה בזמן פולינומיאלי‪ ,‬מקרה פרטי של רדוקציית‬
‫קוק‪ .‬כלומר‪ ,‬בהינתן שתי קבוצות ∗}‪ ,S1 , S2 ⊆ {0, 1‬רדוקציית קארפ מ‪ S1 -‬ל‪ S2 -‬היא פונקציה ∗}‪ f : {0, 1}∗ → {0, 1‬החשיבה‬
‫בזמן פולינומיאלי כך ש‪-‬‬
‫‪x ∈ S1 ⇐⇒ f (x) ∈ S2‬‬
‫דוגמא‪ .‬נגדיר את היחסים‪:‬‬
‫}‪Clique = {(hG, ki , C) : |C| ≥ k, C is a clique in G‬‬
‫}‪IS = {(hG, ki , IS) : |IS| ≥ k, IS an independent set in G‬‬
‫ובעיות ההכרעה המתאימות הן‪:‬‬
‫}‪Sclique = {hG, ki : ∃C, (hG, ki , C) ∈ Clique‬‬
‫}‪SIS = {hG, ki : ∃IS, (hG, ki , IS) ∈ IS‬‬
‫‪9‬‬
‫פרק ‪ .2‬רדוקציות‬
‫‪ .2.1‬הגדרות לסוגי הרדוקציות השונות‪ ,‬דוגמאות‬
‫וכעת‪ ,‬רדוקציית קארפ מ‪ Clique-‬ל‪ IS-‬היא‬
‫‪E‬‬
‫‪D‬‬
‫‪f : hG, ki 7→ G, k‬‬
‫כלומר‪ ,‬הפיכת הגרף ‪ G‬לגרף המשלים שלו ‪ ,G‬ואם יש קליק בגודל ‪ k‬ב‪ ,G-‬הרי שאותו קליק הוא קבוצה בלתי תלוייה‬
‫ב‪ ,G-‬וזה יקיים את התנאים הדרושים לרדוקציית קארפ‪.‬‬
‫הגדרה ‪) 2.3‬רדוקציית ‪-Levin‬לוין בין שתי בעיות חיפוש( עבור ∗}‪ ,R1 , R2 ∈ {0, 1}∗ × {0, 1‬רדוקציית לוין מ‪ R1 -‬ל‪ R2 -‬היא זוג‬
‫פונקציות הניתנות לחישוב פולינומיאלי‬
‫∗}‪f : {0, 1}∗ → {0, 1‬‬
‫∗}‪g : {0, 1}∗ × {0, 1}∗ → {0, 1‬‬
‫כך שמתקיים‪:‬‬
‫‪.R1 (x) 6= ∅ ⇐⇒ R2 (f (x)) 6= ∅ .1‬‬
‫)א( ))‪.g(x, y) ∈ R1 (x) ⇐⇒ y ∈ R2 (f (x‬‬
‫דוגמא‪ .‬נרצה לפתור את בעיית החיפוש של ‪ Clique‬ע"י רדוקציית לוין לבעיית החיפוש של ‪ .IS‬בהינתן קלט ‪hG, ki‬‬
‫לקליק‪,‬‬
‫‪E‬‬
‫‪D‬‬
‫‪f : hG, ki 7→ G, k‬‬
‫‪g : (hG, ki , IS) 7→ IS‬‬
‫כאשר ‪ f‬ממפה גרף לגרף המשלים שלו‪ ,‬ו‪ g-‬פשוט מחזירה את אותה הקבוצה כפתרון‪.‬‬
‫הגדרה ‪ 2.4‬עבור ∗}‪ R ⊆ {0, 1}∗ × {0, 1‬נאמר כי ‪ R‬הוא בעל רדוקציה עצמית אם קיימת רדוקציה פולינומיאלית מ־‪ R‬ל־ ‪SR‬‬
‫כאשר‬
‫}‪SR = {x | ∃y : (x, y) ∈ R‬‬
‫בתרגול רואים כי ‪ R − SAT‬הוא בעל רדוקציה עצמית‪ ,‬ונראה בהמשך כי עבור כל ‪ R‬כך ש־ ‪ SR‬היא ‪NP‬־שלמה‬
‫מתקיים ש־‪ R‬הוא בעל רדוקצה עצמית‪.‬‬
‫‪10‬‬
‫פרק ‪3‬‬
‫‪-NP‬שלמות‬
‫הגדרת המושג של שלמות וקושי‬
‫‪3.1‬‬
‫הגדרה ‪ 3.1‬עבור ∗}‪ S ,S ⊆ {0, 1‬תיקרא ‪-NP‬קשה אם קיימת רדוקציה מכל ‪ S 0 ∈ NP‬ל‪.S-‬‬
‫הגדרה ‪ S ⊆ {0, 1}∗ 3.2‬תיקרא ‪-NP‬שלמה אם ‪ S‬היא ‪-NP‬קשה וכן ‪.S ∈ NP‬‬
‫הערה ‪ 3.3‬למעשה ‪-NP‬שלמות מוגדרת יחסית לרדוקציות קארפ ‪ .1‬כלומר‪ S ,‬היא ‪-NP‬שלמה אם ‪ S ∈ NP‬וקיימת‬
‫רדוקציית קארפ מכל ‪ S 0 ∈ NP‬ל‪.S-‬‬
‫מלכתחילה לא ברור כלל כי קיימות קבוצות ‪NP‬־שלמות והטענה הבאה תראה קיום של קבוצות מסוג זה‪.‬‬
‫טענה ‪ 3.4‬קיימות ∗}‪ S ⊆ {0, 1‬שהן ‪-NP‬שלמות‪.‬‬
‫הוכחה‪ .‬נתבונן ביחס הבא‪,‬‬
‫‬
‫‪o‬‬
‫‪E‬‬
‫‪M, x, 1t , y | M is a Turing machine, M accepts (x, y) within t steps, and |y| < t‬‬
‫‪nD‬‬
‫= ‪Ru‬‬
‫ונגדיר את בעיית ההכרעה‪:‬‬
‫} ‪Su = {z | ∃y : (z, y) ∈ Ru‬‬
‫וכעת נראה כי ‪ Su‬היא ‪ NP‬שלמה‪ .‬נשים לב ש‪ Ru ∈ PC-‬כי האלגוריתם הפולינומיאלי שבודק שייכות של )‪(z, y‬‬
‫ל‪ ,Ru -‬יריץ את מ"ט אוניברסלית‪ ,‬היכולה להריץ את המכונה ‪ t M‬צעדים על הקלט )‪ (x, y‬ולבדוק האם ‪ M‬מקבלת‬
‫ולענות בהתאם‪.‬‬
‫משיקול דומה‪ ,Su ∈ NP ,‬שכן כזכור‪ Su ∈ NP ,‬אם קיים פולינום )·( ‪ P‬ומוודא פולינומיאלי ‪ V‬כך ש‪⇐⇒ z ∈ Su -‬‬
‫‪ .∃y, |y| < P (z), V (z, y) = 1‬המוודא יריץ )כמו לעיל( את מכונת הטיורינג האוניברסילית ויפעל בהתאם‪.‬‬
‫‪1‬בניגוד ל־‪-NP‬קשה‪ ,‬המוגדרת ביחס לרדוקציית קוק‪.‬‬
‫‪11‬‬
‫פרק ‪-NP .3‬שלמות‬
‫‪ .3.2‬רדוקציה עצמית לכל בעיה ‪-NP‬שלמה‪ ,‬משפט לדנר‬
‫כעת‪ ,‬כדי להראות ש־ ‪ Su‬היא ‪-NP‬שלמה צריך להראות שלכל ‪ S ∈ NP‬קיימת רדוקציית קארפ מ‪ S-‬ל‪ .Su -‬בהינתן‬
‫‪ S ∈ NP‬כלשהי‪ ,‬יהי ‪ R‬היחס המתאים ל‪ .S-‬כלומר‪ S ∈ NP ,‬ולכן קיים ‪ V‬מוודא פולינומיאלי‪ ,‬ופולינום )·( ‪ P‬כך‬
‫שלכל ∗}‪x ∈ {0, 1‬‬
‫‪x ∈ S ⇐⇒ ∃y, |y| < P (|x|), V (x, y) = 1‬‬
‫וכעת‪ R ,‬יוגדר באופן הבא‪,‬‬
‫})|‪R = {(x, y) | x ∈ S, V (x, y) = 1, |y| < P (|x‬‬
‫ומכיוון ש־‪ S ∈ NP‬אז ‪ .R ∈ PC‬כלומר‪ ,‬קיימת מ"ט פולינומיאלית שמקבלת זוג )‪ (x, y‬ומכריעה בזמן פולינומיאלי‬
‫אם ‪ .(x, y) ∈ R‬תהי ‪ MR‬מ"ט זו‪ ,‬ויהי ))|‪ tR (|x| + |y|) ≤ tR (|x| + P (|x‬זמן ריצת המכונה ‪ MR‬על הקלט )‪.(x, y‬‬
‫כעת נראה רדוקציית קארפ ‪ 2‬מ‪ S-‬ל‪ .Su -‬בהינתן ‪ x ∈ S‬נגדיר את )‪ f (x‬באופן הבא‪:‬‬
‫‪E‬‬
‫‪D‬‬
‫))|‪f (x) = MR , x, 1tR (|x|+P (|x‬‬
‫ואנו רוצים להראות כעת כי ‪ .x ∈ S ⇐⇒ f (x) ∈ Su‬כידוע‪ ,x ∈ S ⇐⇒ ∃y, |y| < P (|x|) : V (x, y) = 1 ,‬יהי ‪y 0‬‬
‫‪0‬‬
‫‪0‬‬
‫עפ"י‬
‫אז‬
‫עבורו ‪ .V (x, y ) = 1‬‬
‫‪E‬‬
‫‪ M‬מקבלת את ) ‪ (x, y‬תוך ))|‪E + P (|x‬‬
‫עפ"י הגדרת ‪ ,R‬המכונה ‪DR‬‬
‫|‪ tR (|x‬צעדים‪ ,‬ולכן ‪D‬‬
‫הגדרת ‪ Ru‬הזוג ‪ MR , x, 1tR (|x|+P (|x|)) , y 0 ∈ Ru‬ולכן עפ"י הגדרת ‪ ,Su‬מתקיים ‪. MR , x, 1tR (|x|+P (|x|)) ∈ Su‬‬
‫הכיוון השני באופן זהה ובכך השלמנו את ההוכחה‪.‬‬
‫כזכור‪ SAT ,‬היא הבעיה הבאה‪,‬‬
‫}‪SAT = {ϕ | ϕ is a CNF formula that is satisfiable‬‬
‫משפט ‪ SAT (Cook) 3.5‬היא ‪-NP‬שלמה ‪.3‬‬
‫‪3.2‬‬
‫רדוקציה עצמית לכל בעיה ‪-NP‬שלמה‪ ,‬משפט לדנר‬
‫טענה ‪ 3.6‬כל יחס ‪ R ∈ PC‬שבעיית ההכרעה שלו ‪ SR‬היא ‪-NP‬שלמה הוא בעל רדוקציה עצמית‪ .‬כלומר‪ ,‬קיימת‬
‫רדוקציה מ‪ R-‬ל‪.SR -‬‬
‫הוכחה‪ .‬ראינו בחלקים הקודמים שעבור ‪ R ∈ PC‬קיימת רדוקציה מ‪ R-‬ל‪,4 SR0 -‬‬
‫}‪SR0 = {(x, y 0 ) | ∃y 00 : (x, y 0 y 00 ) ∈ R‬‬
‫‪2‬כזכור‪ ,‬רדוקציית קארפ מ־‪ S‬ל־ ‪ Su‬היא פונקצייה חשיבה פולינומית ∗}‪ f : {0, 1}∗ → {0, 1‬כך ש־ ‪.x ∈ S ⇐⇒ f (x) ∈ Su‬‬
‫‪3‬הוכחה של משפט זה נראתה בחישוביות‪.‬‬
‫‪4‬ניתן למצוא זאת בהוכחת משפט ‪.1.7‬‬
‫‪12‬‬
‫פרק ‪-NP .3‬שלמות‬
‫‪ .3.2‬רדוקציה עצמית לכל בעיה ‪-NP‬שלמה‪ ,‬משפט לדנר‬
‫וכמו כן ראינו ‪ 5‬ש־‪ .SR0 ∈ NP‬כעת נשתמש בהנחה ש־ ‪ SR‬היא ‪-NP‬שלמה‪ ,‬ונסיק כי קיימת רדוקציה מ‪ SR0 -‬ל‪,SR -‬‬
‫וכעת בשל טרנזטיביות רדוקציות‪ ,‬קיימת רדוקציה פולינומית מ‪ R-‬ל‪ ,SR -‬כנדרש‪.‬‬
‫לעיתים מתקבל הרושם שכל בעיה ב‪ NP-‬היא או ‪-NP‬שלמה או קלה‪ ,‬כלומר ב‪ .P-‬המשפט הבא מראה שזה אינו‬
‫המצב‪.‬‬
‫∈ ‪ .A‬כלומר‪ A ,‬אינה‬
‫∈ ‪ A‬וכן ‪/ NPC‬‬
‫משפט ‪ (Ladner) 3.7‬אם ‪ P 6= NP‬אזי קיימת קבוצה ‪/ P ,A ∈ NP‬‬
‫‪-NP‬שלמה‪.‬‬
‫רעיון ההוכחה יהיה שימוש ב"לכסון" שיפסול בו‪-‬זמנית שייכות של קבוצה ‪ A‬גם ל‪ NPC-‬וגם ל‪.P-‬‬
‫הוכחה‪ .‬תהי ‪ A‬הקבוצה הבאה‪,‬‬
‫‪o‬‬
‫‬
‫‪n‬‬
‫‬
‫)‪ˆ 1|x| = 0 (mod 2‬‬
‫‪A = x | x ∈ SAT ∧ M‬‬
‫יהי ‪ M1D , M2D , M3D , . . .‬סידור של מ"ט הפועלות )ומכריעות( בזמן פולינומי בקלט שלהן‪,‬‬
‫ויהי ‪ M1C , M2C , M3C , . . .‬סידור של מ"ט המחשבות רדוקציות פולינומיות‪.‬‬
‫אלגוריתם ‪ˆ (1n ) 1.3‬‬
‫‪.M‬‬
‫‪ .1‬אם ‪ n = 0‬החזר ‪ ,k = 1‬אחרת קבע ) ‪ˆ (1n−1‬‬
‫‪.k = M‬‬
‫)א( אם ‪ k‬זוגי‪ ,‬נסמן ‪ .i = k2‬במקרה זה ננסה לוודא שהמכונה ‪ MiD‬אינה מכריעה את ‪ :A‬עבור כל ‪|z| < log n‬‬
‫נבדוק האם )‪ MiD (z‬מחזירה תשובה נכונה לגבי השייכות של ‪ z‬ל־‪ .A‬אם מצאנו ‪ z‬עבורו ‪ MiD‬טועה‪,‬‬
‫נחזיר ‪ k + 1‬ואחרת נחזיר ‪.k‬‬
‫)ב( אם ‪ k‬הוא אי־זוגי‪ ,‬נסמן‬
‫‪ i = k+1‬ובמקרה זה ננסה לוודא שהמכונה ‪ MiC‬לא מחשבת רדוקציית קארפ‬
‫‪2‬‬
‫‪C‬‬
‫נכונה מ‪ SAT-‬ל‪ .A-‬עבור כל ‪ |z| < log n‬נבדוק האם ‪ Mi (z) ∈ A‬והאם ‪ z ∈ SAT‬והאם יש התאמה‪.‬‬
‫אם מצאנו ‪ z‬עבורו ‪ MiC‬טועה נחזיר ‪ k + 1‬אחרת נחזיר ‪.k‬‬
‫∈ ‪ .A‬נניח בשלילה ש־‪ ,A ∈ P‬אזי קיימת מכונה פולינומיאלית ‪ MjD‬המכריעה את ‪ A‬עבור ‪ j‬כלשהו‪.‬‬
‫נוכיח כי ‪/ P‬‬
‫‪0‬‬
‫∗‬
‫∗‬
‫‪6‬‬
‫כעת‪ ,‬נגדיר את ‪ . k = 2j‬נשים לב כי ˆ‬
‫‪M‬לעולם לא תוציא את הערך ‪ k + 1‬וכן שקיים ‪ n‬כך שלכל ‪ n ≥ n‬מתקיים‬
‫‬
‫שעבור קלט ‪ x‬כך ש‪ˆ 1|x| = k ,|x| = n0 -‬‬
‫‪ ,M‬ולכן ‪ A‬ו‪ SAT-‬מזדהות פרט למספר סופי של קלטים‪ ,‬ולכן ‪A ∈ NPC‬‬
‫∈ ‪ ,A‬בסתירה‪.‬‬
‫ומכיוון שהנחנו ‪ ,P 6= NP‬נקבל ש‪/ P-‬‬
‫∈ ‪ .A‬נניח בשלילה ש‪ .A ∈ NPC-‬אזי‪ ,‬קיימת רדוקציית קארפ מ־‪ SAT‬ל־‪ .A‬בפרט‪ ,‬קיים ‪ j‬כך‬
‫נוכיח כי ‪/ NPC‬‬
‫ˆ‬
‫כי ‪ M‬לעולם לא תוציא ערך גדול מ־‪,k‬‬
‫ש־ ‪ MjC‬הינה מ"ט את הרדוקציה מ־‪ SAT‬ל־‪ .A‬נסמן ‪ k = 2j − 1‬ונשים לב‬
‫‬
‫לעולם לא תוציא ‪ ,k + 1‬וכן שקיים ∗‪ n‬כך שלכל ∗‪ˆ 1|x| = k ,|x| = n0 ,n0 ≥ n‬‬
‫‪ .M‬לכן מתקיים שעבור כל ∗‪,n0 ≥ n‬‬
‫‬
‫‬
‫‪ˆ 1|x| = 1 (mod 2) ,|x| = n0‬‬
‫‪ ,M‬ולכן ‪ A‬קבוצה סופית‪ ,‬וכל איבריה באורך קטן או שווה ל‪ .n∗ -‬כל קבוצה סופית‬
‫∈ ‪.A‬‬
‫היא ב‪ P-‬ולכן ‪ A ∈ P‬ומכיוון שהנחנו ‪ P 6= NP‬נקבל ש־‪/ NPC‬‬
‫‪5‬שוב‪ ,‬בהוכחת משפט ‪.1.7‬‬
‫‪6‬כלומר‪ k ,‬זוגי‪.‬‬
‫‪13‬‬
‫פרק ‪-NP .3‬שלמות‬
‫‪ .3.2‬רדוקציה עצמית לכל בעיה ‪-NP‬שלמה‪ ,‬משפט לדנר‬
‫נותר להראות כעת ש‪ ,A ∈ NP-‬וכדי להראות זאת‪ ,‬צריך להראות ש‪ˆ (1n )-‬‬
‫‪ M‬עובד בזמן פולינומי ב‪ .n-‬חישוב‬
‫) ‪ˆ (1n‬‬
‫‪ M‬הוא רקורסיבי‪ ,‬כאשר הרקורסיה מפעילה ‪ n‬פעמים את שלב ‪ .1‬בשלב ‪1‬א'‪ ,‬כיוון שאורכו של ‪ z‬הוא לוגריתמי‬
‫ביחס ל־‪ ,n‬מספר הקלטים שעלינו לבדוק הוא ‪ .n‬לבדוק את הערך שמוציא )‪ MjD (z‬לוקח זמן לוגריתמי ב‪ ,n-‬וכדי‬
‫לבדוק האם ‪ˆ z ∈ A‬‬
‫‪ M‬תעשה זאת בזמן אקספוננציאלי ב‪ |z|-‬ולכן פולינומי ב־‪ .n‬בשלב ‪1‬ב'‪ ,‬צריך להריץ את )‪MjC (z‬‬
‫לוקח זמן לוגריתמי ב‪ .n-‬צריך לבדוק ‪ z ∈ SAT‬וזה לוקח זמן אקספוננציאלי ב‪ ,|z|-‬כלומר פולינומי ב‪ .n-‬ולכן סה"כ‬
‫ˆ‬
‫‪ M‬עובד בזמן פולינומי ב‪ ,n-‬כדרוש‪.‬‬
‫הערה ‪ 3.8‬חשוב שנעיר כי‪,‬‬
‫‪ .1‬מנינו מכונות ‪ MjD , . . .‬ו־ ‪ MjC , . . .‬שהינן מ"ט הפועלות בזמן פולינומי‪ .‬אבל למעשה הקבוצה‬
‫}‪{M | M is a polynomial time Turing machine‬‬
‫אינה כריעה‪ ,‬אבל נוכל למנות את כל מ"ט האפשריות ולמעשה נמנה שלשות‪ ,‬עבור ריצה עם פרמטר ‪,1n‬‬
‫}‪{(M, c, d) | c, d ∈ N, M is a Turing machine, |(M, c, d)| ≤ log n‬‬
‫ועבור כל שלשה )‪ (M, c, d‬נריץ את מ"ט על קלט |‪ |x‬בזמן ‪ |x|c + d‬צעדים‪ ,‬ועבור כל מ"ט שרצה בזמן‬
‫פולינומיאלי קיימת שלשה )‪ (M, c, d‬שהרצתה שקולה להרצת ‪.M‬‬
‫∈ ‪ .A‬ישנה השערה שבעיית ה־‪Factoring‬‬
‫∈ ‪/ NPC ,A‬‬
‫)א( הראנו כי אם ‪ P 6= NP‬קיימת ‪ A ∈ NP‬אך ‪/ P‬‬
‫מקיימת את התנאים לעיל‪.‬‬
‫‪14‬‬
‫פרק ‪4‬‬
‫המחלקה ‪co-NP‬‬
‫‪4.1‬‬
‫הגדרת המחלקה‪ ,‬שאלת ‪ co-NP‬מול ‪ NP‬ותוצאותיה‬
‫הגדרה ‪ 4.1‬המחלקה ‪ co-NP‬מוגדרת להיות‪:‬‬
‫}‪co-NP = {{0, 1}∗ \L | L ∈ NP‬‬
‫לדוגמא‪ ,‬עבור ‪ SAT ∈ NP‬אוסף הנוסחאות הספיקות‪ ,‬מתקיים ש־‪ - SAT ∈ co-NP‬אוסף הנוסחאות שאינן ספיקות‪.‬‬
‫הגדרה שקולה לכך היא עבור יחס ‪ R‬שהינו ב‪ ,PC-‬אז בעיית ההכרעה שלו היא ב‪:NP-‬‬
‫‪LR = {x | ∃y : (x, y) ∈ R} ∈ NP‬‬
‫ועבור ‪:co-NP‬‬
‫∈ )‪{0, 1}∗ \LR = {x | ∀y : (x, y‬‬
‫‪/ R} ∈ co-NP‬‬
‫השערה ‪.P 6= NP .1‬‬
‫השערה ‪.NP 6= co-NP .2‬‬
‫נשים לב כי השערה ‪ 2‬גוררת את השערה ‪ .1‬הוכחה‪ .‬עבור ‪ ,P‬ידוע כי ‪ ,P = co-P‬כאשר‬
‫}‪co-P = {{0, 1}∗ \L | L ∈ P‬‬
‫שכן כל אלגוריתם המכריע בזמן פולינומי שפה ‪ L ∈ P‬יכול לעבוד גם כאלגוריתם המכריע את ‪ {0, 1}∗ \L‬בזמן‬
‫פולינומי‪ .‬לכן אם ‪ NP 6= co-NP‬אזי אפשר להסיק כי ‪ ,NP 6= P‬שכן אם ‪ ,P = NP‬אז = ‪co-NP = co-P = P‬‬
‫‪ ,NP‬בסתירה להנחה‪.‬‬
‫טענה ‪ 4.2‬לא תמיד קיימת רדוקציית קארפ בין ‪ L ∈ NP‬ל‪.L ∈ co-NP-‬‬
‫‪15‬‬
‫‪ .4.1‬הגדרת המחלקה‪ ,‬שאלת ‪ co-NP‬מול ‪ NP‬ותוצאותיה‬
‫פרק ‪ .4‬המחלקה ‪co-NP‬‬
‫הוכחה‪ .‬נזכר כי קיימת רדוקציית קארפ מ‪ L-‬ל‪ L-‬אם קיימת פונקצייה חשיבה פולינומיאלית ∗}‪f : {0, 1}∗ → {0, 1‬‬
‫כך ש־‬
‫‪x ∈ L ⇐⇒ f (x) ∈ L‬‬
‫עבור ∅ = ‪ ,L = {0, 1}∗ ,L‬ואין פונקציה התתנהג כנ"ל‪.‬‬
‫טענה ‪ 4.3‬עבור ‪ L ∈ NP‬תמיד קיימת רדוקציית קוק מ‪ L-‬ל‪.L-‬‬
‫הוכחה‪ .‬ניזכר כי רדוקציית קוק מ‪ L-‬ל‪ L-‬היא מכונה פולינומית עם גישת אורקל ל‪ ,L-‬ולכן בהינתן קלט ‪ x‬עבורו צריך‬
‫להכריע האם ‪ ,x ∈ L‬הרדוקציה תבצע שאילתת אורקל ל‪ L-‬ותהפוך את התשובה‪.‬‬
‫נשים לב כי ידוע ש־‪.P ⊆ NP ∩ co-NP‬‬
‫השערה ‪.P ( NP ∩ co-NP .3‬‬
‫טענה ‪ 4.4‬אם ‪ NP ∩ co-NP‬מכיל קבוצות שהן ‪-NP‬קשות‪ ,‬אזי ‪.NP = co-NP‬‬
‫ניזכר במשפט לדנר ‪ ,1‬ונשים לב כי השערה ‪ 3‬והטענה לעיל מובילים למסקנה דומה למשפט לדנר‪ .‬עפ"י השערה ‪3‬‬
‫∈ ‪ .A‬אם ‪ A‬כזו היא אינה ‪-NP‬שלמה אז מצאנו ‪ A‬העונה על‬
‫קיימת ‪ A ∈ NP ∩ co-NP‬ולכן ‪ A ∈ NP‬וכן ‪/ P‬‬
‫∈ ‪ .A‬אם ‪ A‬היא כן ‪-NP‬שלמה‪ ,‬אז עפ"י הטענה נקבל ש־‪.NP = co-NP‬‬
‫∈ ‪/ P, A‬‬
‫תנאי משפט לדנר‪ ,‬כי ‪/ NPC‬‬
‫לסיכום‪ ,‬אם ‪ ,NP 6= co-NP‬וכן השערה ‪ 3‬מתקיימת‪ ,‬אזי קיימת ‪ A‬עפ"י תנאי משפט לדנר‪.‬‬
‫הוכחה‪ .‬נניח כי קיימת ‪ L ∈ NP ∩ co-NP‬שהינה ‪-NP‬קשה‪ .‬נראה כי זה גורר ש־‪ .co-NP ⊆ NP‬אחר כך נראה‬
‫כי אם ‪ co-NP ⊆ NP‬אז הם למעשה שווים ‪ .2‬תהי ‪ .L0 ∈ co-NP‬מטרתנו להראות כי ‪ ,L0 ∈ NP‬ומכך נסיק‬
‫ש‪.co-NP ⊆ NP-‬‬
‫ראשית נשים לב כי קיימת רדוקציה מ‪ L0 -‬ל‪ ,L-‬שכן קיימת רדוקציה מ‪ L0 -‬ל‪ ,3 L0 -‬וכמו כן קיימת רדוקציה מ‪L0 ∈ NP-‬‬
‫ל‪ L-‬כי ‪ L‬היא ‪-NP‬קשה‪ ,‬ולכן מטרנזטיביות רדוקציות יש רדוקציה מ‪ L0 -‬ל‪.L-‬‬
‫כדי להוכיח ש־‪ ,L0 ∈ NP‬נגדיר יחס ‪ R ∈ PC‬וכן ‪ ,L0 = LR‬כלומר ‪ L0‬תהיה בעיית ההכרעה המתאימה ל־‪ ,R‬ומכך‬
‫נסיק ש־‪ R .L0 ∈ NP‬יוגדר באופן הבא‪:‬‬
‫})]) ‪R = {(x, [(z1 , σ1 , w1 ), . . . , (zt , σt , wt‬‬
‫כך שהרדוקציה מ‪ L0 -‬ל‪ L-‬מקבלת את ‪ x‬לאחר סדרת השאלות ‪ z1 , . . . zt‬וסדרת תשובות ‪ σ1 , . . . , σt‬וכן אם ‪σi = 1‬‬
‫∈ ‪ zi‬אזי‬
‫כלומר אם התשובה היא ש־‪ zi ∈ L‬אזי ‪ wi‬יהיה עד לכך ש־‪ ,zi ∈ L‬ואם ‪ σi = 0‬כלומר אם התשובה היא ‪/ L‬‬
‫∈ ‪.zi‬‬
‫‪ wi‬יהיה עד לכך ש־‪/ L‬‬
‫חשוב להדגיש כי ‪ ,L ∈ NP‬וגם ‪ L ∈ NP‬שכן ‪ ,L ∈ co-NP‬ולכן קיום העדים הקצרים ‪ wi‬הוא תקין‪ ,‬והאלגוריתם‬
‫הפולינומי המכריע את ‪ R‬בודק שעבור זוג של קלט ל־‪ R‬מהצורה )]) ‪ (x, [(z1 , σ1 , w1 ), . . . , (zt , σt , wt‬אפשר לוודא‬
‫בזמן פולינומי שהרדוקציה מ‪ L0 -‬ל‪ L-‬אכן תקבל את ‪ x‬עבור סדרת השאלות והתשובות האמורה‪ .‬כדי לוודא זאת‬
‫צריך להשתכנע בשני דברים‪,‬‬
‫‪1‬משפט ‪.3.7‬‬
‫‪2‬כלומר‪.co-NP = NP ,‬‬
‫‪3‬רדוקציית קוק‪ ,‬כפי שהסברנו בטענה ‪4.3‬‬
‫‪16‬‬
‫‪ .4.1‬הגדרת המחלקה‪ ,‬שאלת ‪ co-NP‬מול ‪ NP‬ותוצאותיה‬
‫פרק ‪ .4‬המחלקה ‪co-NP‬‬
‫‪ .1‬שעבור סדרת השאלות ‪ zi‬וסדרת התשובות ‪ σi‬הרדוקציה מ־ ‪ L0‬ל־‪ L‬אכן מקבלת את ‪ .x‬זאת ניתן לעשות בזמן‬
‫פולינומי כי הרדוקציה היא פולינומית‪.‬‬
‫‪ .2‬צריך להשתכנע בכך שסדרת התשובות ‪ σi‬אכן מתאימה לסדרת תשובות של האורקל ל־‪ L‬עבור השאלות ‪.zi‬‬
‫זאת ניתן לעשות בזמן פולינומי ע"י שימוש בעדים ‪ wi‬וכן עוד ידוע ש־‪ L ∈ NP ∩ co-NP‬ולכן יש גם עדים‬
‫קצרים גם לכך ש־‪ zi ∈ L‬וגם לכך ש־‪/ L‬‬
‫∈ ‪ ,zi‬כלומר ‪.zi ∈ L‬‬
‫ולכן סה"כ ‪ ,4 L0 ∈ NP‬ולכן הסקנו ש־‪ .co-NP ⊆ NP‬כעת נראה ‪ .co-NP = NP‬נניח בשלילה כי השיוויון לא‬
‫מתקיים‪ ,‬ולכן קיימת ‪ ,a ∈ NP\co-NP‬ומכאן ‪ ,a ∈ co-NP ⊆ NP‬ולכן ‪ a ∈ NP‬ומכאן ‪ a ∈ co-NP‬וזו סתירה‬
‫להנחה ש־‪ a ∈ NP\co-NP‬ולכן קיבלנו שאם ‪ co-NP ⊆ NP‬אז למעשה ‪.co-NP = NP‬‬
‫תזכורת‪) .‬מחישוביות( ‪ NP‬סגור לרדוקציות קארפ‪ .‬כלומר‪ ,‬אם קיימת רדוקציית קארפ מ‪ L0 -‬ל‪ L-‬וכן ‪ L ∈ NP‬אזי‬
‫‪.L0 ∈ NP‬‬
‫הוכחה‪ .‬כזכור‪ ,‬רדוקציית קארפ מ‪ L0 -‬ל‪ L-‬היא ‪ f‬חשיבה פולינומית ∗}‪ f : {0, 1}∗ → {0, 1‬כך ש‪-‬‬
‫‪x ∈ L0 ⇐⇒ f (x) ∈ L ⇐⇒ ∃y : |y| < P 0 (|f (x)|), V 0 (f (x), y) = 1‬‬
‫כאשר ) ‪ (V 0 , P 0‬הוא המוודא הרץ בזמן ‪ P 0‬עבור ‪ .L‬נגדיר‬
‫)|)‪V (x, y) = V 0 (f (x), y), P (|x|) = P 0 (|f (x‬‬
‫ולכן זה שקול ל‪-‬‬
‫‪⇐⇒ ∃y : |y| < P (|x|), V (x, y) = 1‬‬
‫ולכן סה"כ‬
‫‪x ∈ L0 ⇐⇒ ∃y : |y| < P (|x|), V (x, y) = 1‬‬
‫ולכן נסיק ש‪.L0 ∈ NP-‬‬
‫‪ NP‬אינו סגור )כנראה( לרדוקציית קוק‪ .‬ז"א‪ ,‬אם קיימת רדוקציית קוק מ‪ L0 -‬ל‪ L-‬וכן ‪ ,L ∈ NP‬אזי לא ניתן להסיק‬
‫‪.L0 ∈ NP‬‬
‫הוכחה‪ .‬תהי ‪ .L = SAT‬אזי‪ .L = SAT ,‬קיימת רדוקציית קוק מ‪ SAT-‬ל‪ .5 SAT-‬כמו כן ‪.SAT ∈ NP‬‬
‫אילו ‪ NP‬היה סגור לרדוקציות קוק אזי היינו מסיקים כי ‪ SAT ∈ NP‬ולכן ‪ SAT ∈ NP∩co-NP‬אבל ‪SAT ∈ NPC‬‬
‫ולכן לפי טענה ‪.6 co-NP = NP 4.4‬‬
‫‪4‬כי היא בעיית ההכרעה המתאימה ל־‪.R‬‬
‫‪5‬כמקודם זוהי רדוקציה שהופכת את תשובת האורקל‪.‬‬
‫‪6‬ומשערים שזה אינו המצב‪.‬‬
‫‪17‬‬
‫פרק ‪5‬‬
‫ההיררכיה הפולינומית ‪PH‬‬
‫ההיררכיה הפולינומית‪ ,‬המסומנת ב‪ PH-‬היא מחלקה שמכלילה את ‪ NP‬ואת ‪.co-NP‬‬
‫לרדוקציות קוק‪ ,‬וכי מתקיים ‪.NP = P ⇐⇒ PH = P‬‬
‫‪5.1‬‬
‫נראה כי ‪ PH‬סגורה‬
‫הגדרת ההיררכיה‪ ,‬הגדרות שקולות‬
‫הגדרה ‪ 5.1‬עבור ‪ k ∈ N‬נגדיר את המחלקה ‪ Σk‬באופן הבא‪ .‬נאמר ש‪ A ∈ Σk -‬אם קיים מוודא פולינומי ‪ V‬ופולינום )·( ‪ P‬כך שלכל‬
‫‪ x‬מתקיים‪:‬‬
‫‪x ∈ A ⇐⇒ ∃y1 ∀y2 ∃y3 . . . Qk yk : |yi | < P (|x|), V (x1 , y1 , y2 , . . . , yk ) = 1‬‬
‫כאשר ∃ = ‪ Qk‬אם ‪ k‬אי‪-‬זוגי‪ ,‬ו־∀ = ‪ Qk‬אם ‪ k‬זוגי‪.‬‬
‫נשים לב למשל כי ‪.P = Σ0 ,NP = Σ1‬‬
‫הגדרה ‪ 5.2‬נגדיר את ההיררכיה הפולינומית ‪ PH‬ע"י‬
‫‪Σk‬‬
‫∞‬
‫[‬
‫= ‪PH‬‬
‫‪k=0‬‬
‫נשים לב כי ‪ PH‬היא אכן היררכיה לפחות במובן חלש‪ ,‬כלומר ‪.1 Σk ⊆ Σk+1‬‬
‫דוגמא‪ .‬נביט בבעיה‬
‫}‪Clique = {hG, ki | G is a graph with a clique of size k‬‬
‫כידוע‪ .Clique ∈ NP ,‬הפעם נביט בבעיה‬
‫}‪max-Clique = {hG, ki | G is a graph for which its maximal clique is of size k‬‬
‫‪1‬נובע מההגדרה‪.‬‬
‫‪18‬‬
‫‪ .5.2‬שאלת קריסת ההיררכיה‪ ,‬הקשר לשאלת ‪ P‬מול ‪NP‬‬
‫פרק ‪ .5‬ההיררכיה הפולינומית ‪PH‬‬
‫‪ max-Clique‬לא ידוע להיות שייך ל‪ ,Σ1 -‬אבל כן מתקיים כי ‪ ,max-Clique ∈ Σ2‬שכן קיים ‪ V‬ופולינום )·( ‪ P‬כך ש‪-‬‬
‫‪∃c1 ∀c2 : |ci | < P (|hG, ki|), V (hG, ki , c1 , c2 ) = 1 ⇐⇒ hG, ki ∈ max-Clique‬‬
‫כאשר ‪ V (hG, ki , c1 , c2 ) = 1‬אם ‪ c1‬הינו קליק בגודל ‪ k‬ו‪ c2 -‬אינו קליק או שהוא קליק בגודל קטן או שווה ל־‪.k‬‬
‫הגדרה ‪ 5.3‬עבור ‪ k ∈ N‬נגדיר את ‪ Πk‬להיות‬
‫‪Πk = {{0, 1}∗ \L | L ∈ Σk } = co − Σk‬‬
‫נשים לב כי ‪ .Π1 = co-NP ,Π0 = P‬כמו כן‪ ,‬נשים לב כי ‪ ⇐⇒ A ∈ Πk‬קיים מוודא פולינומי ‪ V‬ופולינום )·( ‪ P‬כך‬
‫ש‪-‬‬
‫∈ ‪x ∈ A ⇐⇒ x‬‬
‫⇒⇐ )‪/ A ⇐⇒ ¬ (∃y1 ∀y2 . . . Qk yk , V (x, y1 , . . . , yk ) = 1‬‬
‫‪⇐⇒ ∀y1 ∃y2 ∀y3 . . . Qk yk , V (x, y1 , . . . , yn ) = 0‬‬
‫כאשר )|‪ .|yi | < P (|x‬ולכן ניתן להגדיר את ‪ Πk‬באופן דומה ל‪ Σk -‬ע"י סדרת ‪ k‬כמתים שמתחילה בכמת ∀‪.‬‬
‫התכונות הבאות נובעות מההגדרה של ‪ Σk‬ו‪,Πk -‬‬
‫‪.Πk ⊆ Πk+1 .1‬‬
‫‪ ,A ∈ Πk - Πk ⊆ Σk+1 .2‬אז קיים )·( ‪ V, P‬כך ש־‬
‫‪x ∈ A ⇐⇒ ∀y1 ∃y2 . . . Qk yk : |yi | < P (|x|), V (x, y1 , . . . yk ) = 1‬‬
‫נגדיר ) ‪ V 0 (x, y1 , . . . , yk+1 ) = V (x, y2 , . . . , yk+1‬ויתקיים‪:‬‬
‫‪∃y1 ∀y2 . . . Qk+1 yk+1 : V (x, y1 , . . . , yk+1 ) = 1 ⇐⇒ x ∈ A‬‬
‫‪.Σk ⊆ Πk+1 .3‬‬
‫מטענות אלו‪ ,‬נובע שניתן להגדיר את ההיררכיה הפולינומית כך‪,‬‬
‫‪Πk‬‬
‫∞‬
‫[‬
‫= ‪PH‬‬
‫‪k=0‬‬
‫‪19‬‬
‫פרק ‪ .5‬ההיררכיה הפולינומית ‪PH‬‬
‫‪5.2‬‬
‫‪ .5.2‬שאלת קריסת ההיררכיה‪ ,‬הקשר לשאלת ‪ P‬מול ‪NP‬‬
‫שאלת קריסת ההיררכיה‪ ,‬הקשר לשאלת ‪ P‬מול ‪NP‬‬
‫טענה ‪ S ∈ Σk+1 5.4‬אם ורק אם קיים פולינום )·( ‪ P‬וקבוצה ‪ S 0 ∈ Πk‬כך ש‪-‬‬
‫} ‪S = {x | ∃y, y < P (|x|), (x, y) ∈ S 0‬‬
‫הוכחה‪ (⇐) .‬תהי ‪ .S ∈ Σk+1‬אזי קיים ‪ V‬ופולינום )·( ‪ P‬כך ש‪-‬‬
‫⇒⇐| ‪x ∈ S‬‬
‫‪{z } ∃y∀y2 . . . Qk+1 yk+1 , |yi |, |y| < P (|x|), V (x, y, y2 , . . . , yk+1 ) = 1‬‬
‫‪By Definition‬‬
‫נגדיר את ‪ S 0‬באופן הבא‪:‬‬
‫‪(x, y) ∈ S 0 ⇐⇒ ∀y2 ∃y3 . . . Qk+1 yk+1 , |yi |, |y| < P (|x|), V (x, y, y2 , . . . , yk+1 ) = 1‬‬
‫נשים לב כי ‪ S 0 ∈ Πk‬כי קיים ) ‪ V 0 ((x, y), y2 , . . . yk+1 ) = V (x, y, y2 , . . . , yk+1‬ופולינום ‪ P 0 = P‬כך ש‪-‬‬
‫‪(x, y) ∈ S 0 ⇐⇒ ∀y2 , . . . Qk+1 yk+1 , |yi | < P 0 (|x|), V 0 ((x, y), y2 , . . . , yk+1 ) = 1‬‬
‫נשים לב כי קיבלנו‬
‫‪x ∈ S ⇐⇒ ∃y, |y| < P (|x|), (x, y) ∈ S 0‬‬
‫וזה מה שנדרשנו להראות‪.‬‬
‫)⇒( תהי ‪ S 0 ∈ Πk‬ופולינום )·( ‪ P‬כך ש‪-‬‬
‫} ‪S = {x | ∃y, |y| < P (|x|), (x, y) ∈ S 0‬‬
‫ואנו צריכים להוכיח כי ‪ .S ∈ Σk+1‬עפ"י הגדרת ‪ Πk‬קיים מוודא ‪ V 0‬ופולינום ‪ P 0‬כך ש‪-‬‬
‫‪(x, y) ∈ S 0 ⇐⇒ ∀y2 ∃y3 . . . Qk+1 yk+1 , |yi | < P 0 (|x| + |y|), V 0 ((x, y), y2 , . . . , yk+1 ) = 1‬‬
‫ולכן ‪ ,2‬מתקיים כי‬
‫‪x ∈ S ⇐⇒ ∃y, |y| < P (|x|), ∀y2 . . . Qk+1 yk+1 , |yi | < P 0 (|x| + |y|), V 0 ((x, y), y2 , . . . yk+1 ) = 1‬‬
‫נגדיר ‪ ,P ∗ = P + P 0 P‬ונגדיר ) ‪ .V ∗ (x, y, y2 , . . . yk+1 ) = V 0 ((x, y), y2 , . . . , yk+1‬כעת‪ ,‬נקבל‪:‬‬
‫‪x ∈ S ⇐⇒ ∃y∀y2 . . . Qk+1 yk+1 , |y|, |yi | < P ∗ (|x|), V ∗ (x, y, y2 , . . . yk+1 ) = 1‬‬
‫ולכן ‪.S ∈ Σk+1‬‬
‫כעת‪ ,‬נוכיח בעזרת טענת העזר שלעיל טענה מעניינת לגבי קריסתה של ההיררכיה‪.‬‬
‫‪2‬באמצעות הצבה פשוטה של תנאי שייכות ל־ ‪.S 0‬‬
‫‪20‬‬
‫‪ .5.3‬הגדרה באמצעות מכונות עם גישת אורקל‪ ,‬סגירות לרדוקציות קוק‬
‫פרק ‪ .5‬ההיררכיה הפולינומית ‪PH‬‬
‫טענה ‪ 5.5‬עבור ‪ ,k ≥ 1‬אם ‪ Πk ⊆ Σk‬אזי ‪.Σk = Σk+1‬‬
‫הוכחה‪ .‬נניח כי ‪ .Πk ⊆ Σk‬מספיק שנוכיח כי ‪ ,3 Σk+1 ⊆ Σk‬ולשם כך‪ ,‬תהי ‪ .S ∈ Σk+1‬עפ"י טענה ‪ 5.4‬קיים )·( ‪P‬‬
‫ו‪ S 0 ∈ Πk -‬כך ש‪-‬‬
‫} ‪S = {x | ∃y, |y| < p(|x|), (x, y) ∈ S 0‬‬
‫כעת‪ S 0 ∈ Σk ,‬ע"י שימוש בהנחה ש‪ .Πk ⊆ Σk -‬כעת‪ ,‬עפ"י הגדרת ‪ Σk‬קיים מוודא ‪ V 0‬ופולינום ‪ P 0‬כך ש־‬
‫‪(x, y) ∈ S 0 ⇐⇒ ∃y2 ∀y3 . . . Qk+1 yk+1 , |yi | < P 0 (|x| + |y|), V 0 ((x, y), y2 , . . . yk+1 ) = 1‬‬
‫ואז נקבל‬
‫‪x ∈ S ⇐⇒ ∃y, |y| < P (|x|), ∃y2 ∀y3 . . . Qk+1 yk+1 , |yi | < P 0 (|x| + |y|), V 0 ((x, y), y2 , . . . yk+1 ) = 1‬‬
‫וכעת‪ ,‬נגדיר ‪ ,P ∗ = P 0 + P 0 P ,4 y ∗ = y1 ky2‬ונקבל‬
‫‪x ∈ S ⇐⇒ ∃y ∗ ∀y3 . . . Qk+1 yk+1 , |yi | < P ∗ (|x|), V ∗ (x, y ∗ , y3 , . . . yk+1 ) = V 0 ((x, y), y2 , . . . , yk+1 ) = 1‬‬
‫וזה אומר כי ‪.S ∈ Σk‬‬
‫טענה ‪ 5.6‬אם ‪ Σk+1 = Σk‬אזי ‪.PH = Σk‬‬
‫הוכחה‪ .‬די להראות ש־ ‪ .Σk+2 = Σk+1 ⇐= Σk+1 = Σk‬נשים לב כי ‪ .Πk ⊆ Σk+1‬עפ"י הנחתנו‪ Σk = Σk+1 ,‬ולכן‬
‫‪.Πk = co-Σk = co-Σk+1 = Πk+1‬‬
‫מכאן נקבל ‪ Πk+1 ⊆ Σk+1‬ולכן לפי טענה ‪ 5.5‬מקבלים ‪.Σk+1 = Σk+2‬‬
‫מסקנה ‪.P = PH ⇐⇒ P = NP 5.7‬‬
‫הוכחה‪ PH = P ∪ NP ∪ Σ2 ∪ Σ3 . . . (⇒) .‬מכאן ש־ ‪ P ⊆ NP ⊆ Σ2 ⊆ Σ3 . . .‬ולכן ‪.P = NP ⇐= P = PH‬‬
‫)⇐( ‪ Σ0 = Σ1‬ולכן עפ"י טענה ‪ 5.6‬מקבלים ‪.Σk+1 = Σk+2‬‬
‫‪5.3‬‬
‫הגדרה באמצעות מכונות עם גישת אורקל‪ ,‬סגירות לרדוקציות קוק‬
‫המטרה שלנו כעת היא להראות ש‪ PH-‬סגורה לרדוקציות קוק‪ .‬לשם כך‪ ,‬נגדיר את ‪ PH‬בעזרת מכונות טיורינג לא‬
‫דטרמיניסטיות פולינומיות בעלות גישת אורקל‪.‬‬
‫‪3‬שכן כזכור‪ ,‬באופן טריוויאלי מתקיים ‪.Σk ⊆ Σk+1‬‬
‫‪4‬כזכור‪ k ,‬מסמן שרשור‪.‬‬
‫‪21‬‬
‫פרק ‪ .5‬ההיררכיה הפולינומית ‪PH‬‬
‫‪ .5.3‬הגדרה באמצעות מכונות עם גישת אורקל‪ ,‬סגירות לרדוקציות קוק‬
‫הגדרה ‪ 5.8‬עבור פונקציית אורקל }‪ f : {0, 1}∗ → {0, 1‬ומ"ט ל"ד פולינומית ‪ M‬וקלט ‪ ,x‬נגדיר את ‪ M f (x) = 1‬אם קיים מסלול‬
‫מקבל של ‪ x‬תוך אפשרות גישה לאורקל ‪.f‬‬
‫המחלקה של הקבוצות המתקבלות ע"י מ"ט ל"ד פולינומית בעלת גישת אורקל ל־ ‪ f‬מכונה ‪ .NPf‬עבור ‪ C‬מחלקה של בעיות‬
‫הכרעה‪,‬‬
‫‪NPf‬‬
‫[‬
‫= ‪NPC‬‬
‫‪f ∈C‬‬
‫כעת‪ ,‬נגדיר את ההיררכיה הפולינומית באמצעות כך‪.‬‬
‫משפט ‪ 5.9‬לכל ‪.Σk+1 = NPΣk ,k ≥ 0‬‬
‫הוכחה‪ .‬נוכיח זאת ע"י הכלה דו‪-‬כיוונית‪.‬‬
‫)⊆( תהי ‪ .S ∈ Σk+1‬עפ"י טענה ‪ 5.4‬קיים )·( ‪ S 0 ∈ Πk ,P‬כך ש‪-‬‬
‫‪x ∈ S ⇐⇒ ∃y, |y| < P (|x|), (x, y) ∈ S 0‬‬
‫נראה ראשית כי ‪ .S ∈ NPΠk‬נראה זאת ע"י כך שנבנה מ"ט ל"ד פולינומית בעלת גישת אורקל ל־ ‪ S 0 ∈ Πk‬שתכריע‬
‫את ‪ S‬באופן הבא‪:‬‬
‫‪0‬‬
‫‪0‬‬
‫)‪ :M S (x‬בהינתן ‪ M S (x) ,x‬תנחש ‪ ,y‬ותפנה את השאלה )‪ (x, y‬לאורקל ל‪ .S 0 -‬המכונה תקבל אם"ם תשובת האורקל‬
‫היא ש‪.(x, y) ∈ S 0 -‬‬
‫עפ"י טענה ‪ 5.4‬אם ‪ x ∈ S‬אז קיים מסלול מקבל ואם ‪/ S‬‬
‫∈ ‪ x‬אז אין מסלול מקבל‪ .‬כדי לסיים נציין ‪.5 NPΠk = NPΣk‬‬
‫מכאן ש‪.S ∈ NPΣk -‬‬
‫‪0‬‬
‫)⊇( תהי ‪ ,S ∈ NPΣk‬ונוכיח כי ‪ .S ∈ Σk+1‬קיימת מ"ט ‪ M‬פולינומית ל"ד בעלת אורקל ל־ ‪ S 0 ∈ Πk‬כך ש‪M S -‬‬
‫מכריעה את ‪ .S‬המכונה ‪ M‬עבור קלט ‪ x‬מבצעת סדרה של הגרלות אקראיות ‪ ,y‬ועל סמך הגרלות אלו נקבע מסלול‬
‫החישוב של ‪ M‬והשאלות שתשאל את האורקל ל‪ ,S 0 -‬ו‪ M -‬תקבל את ‪ x‬אם קיים מסלול מקבל התלוי בהגרלות ‪y‬‬
‫ובתשובות של האורקל ל‪.S 0 -‬‬
‫בלי הגבלת הכלליות‪ ,‬אפשר להניח ש‪ M -‬באופן הבא‪ :‬עבור קלט ‪ x‬וביטים אקראיים ‪ M ,y‬מנחשת את התשובות‬
‫לשאלות לאורקל ל‪ ,S 0 -‬ונקרא לניחושים אלה ‪ M .ai (x, y), 1 ≤ i ≤ Q‬תקבל את ‪ x‬אם מתקיימים שני התנאים‬
‫הבאים‪:‬‬
‫‪ .1‬סדרת הניחושים )‪ ai (x, y‬והביטים האקראיים ‪ y‬הובילו למסלול מקבל של ‪ .M‬נקרא למאורע זה )‪.A(x, y‬‬
‫‪ 1 ≤ i ≤ Q , ai (x, y) = 1 ⇐⇒ q i (x, y) ∈ S 0 .2‬כאשר )‪ q i (x, y‬מסמן את השאלה ה‪i-‬ית לאורקל ל‪.S 0 -‬‬
‫‪0‬‬
‫ולכן‪ ,‬עפ"י הגדרת ‪M S‬‬
‫‪‬‬
‫‪ai (x, y) = 1 ⇐⇒ q i (x, y) ∈ S 0 ‬‬
‫‪Q‬‬
‫^‬
‫‪‬‬
‫∧ ‪x ∈ S ⇐⇒ ∃y A(x, y) = 1‬‬
‫‪i=1‬‬
‫‪5‬שכן‪ ,‬עבור גישת אורקל ל־ ‪ ,Σk‬ניתן לסמלץ גישת אורקל ל־ ‪ Πk‬ע"י הפיכת תשובת האורקל‪ ,‬ולהפך‪.‬‬
‫‪22‬‬
‫פרק ‪ .5‬ההיררכיה הפולינומית ‪PH‬‬
‫‪ .5.3‬הגדרה באמצעות מכונות עם גישת אורקל‪ ,‬סגירות לרדוקציות קוק‬
‫וידוע מלוגיקה כי ) ‪ ,E1 ⇐⇒ E2 ≡ (E1 ∧ E2 ) ∨ (¬E1 ∧ ¬E2‬ונקבל כי‪:‬‬
‫‪i‬‬
‫‬
‫‬
‫∨ ‪ai (x, y) = 1 ∧ ∃y1 . . . Qk yk : V 0 q i (x, y), y1 , . . . , yk = 1‬‬
‫‪Q h‬‬
‫^‬
‫∧ ‪∃y : A(x, y) = 1‬‬
‫‪i=1‬‬
‫‪i‬‬
‫‪h‬‬
‫‪∨ ai (x, y) = 0 ∧ ∀y1 ∃y2 . . . Qk yk : V 0 (q i (x, y), y1 , . . . , yk ) = 0‬‬
‫אפשר לפשט את הביטוי ‪ 6‬לעיל ולקבל ביטוי מהצורה‬
‫‪∃y∀y1 . . . Qk yk : V ∗ (x, y, y1 , . . . , yk ) = 1‬‬
‫ולהסיק ‪.S ∈ Σk+1‬‬
‫מכאן הוכחנו את שני כיווני המשפט‪ ,‬כנדרש‪.‬‬
‫טענה ‪ 5.10‬תהי ‪ .S ∈ NP‬תהי ‪ S 0‬כך שקיימת רדוקציית קוק מ‪ S 0 -‬ל‪ .S-‬אזי‪.S 0 ∈ Σ2 ,‬‬
‫הוכחה‪ .‬רדוקציית קוק מ‪ S 0 -‬ל‪ S-‬היא מ"ט פולינומית דטרמיניסטית ‪ M‬בעלת גישת אורקל ל‪ M S ,S-‬המכריעה את‬
‫‪ .S 0‬לכן‪ ,7 S 0 ∈ PNP ⊆ NPNP ,‬ועפ"י משפט ‪ NPNP = NPΣ1 = Σ2 ,5.9‬ולכן ‪.S 0 ∈ Σ2‬‬
‫נשים לב שמכאן נוכל להסיק בצורה דומה את סגירות ‪ PH‬לרדוקציות קוק‪ ,‬ע"י הוכחה הזהה לזו של טענה ‪.5.10‬‬
‫‪6‬באמצעות משחק בלוגיקה‪.‬‬
‫‪7‬שימו לב להגדרת החזקה עם ‪ ,P‬באופן דומה לחזקה עם ‪.NP‬‬
‫‪23‬‬
‫פרק ‪6‬‬
‫חישוב לא יוניפורמי‬
‫בחישוב יוניפורמי‪ ,‬קיים אלגוריתם אחד לכל אורך קלט‪ .‬כחלק מהניסיון להבין את הקשר של ‪ P‬מול ‪ ,NP‬נעסוק‬
‫בפרק זה בשני מודלים של חישוב שהם אינם יוניפורמיים‪ ,‬נראה שקילות בינהם‪ ,‬והשלכותיהם לשאלת ‪ P‬מול ‪.NP‬‬
‫‪ 6.1‬מודל המעגלים כמודל לא יוניפורמי ראשון‪ ,‬משפחות של מעגלים בוליאניים‪,‬‬
‫חישוב‬
‫הגדרה ‪ 6.1‬מעגל הוא גרף מכוון‪ ,‬המכיל קודקודים משלושה סוגים‪,‬‬
‫‪ .1‬קלט‪.‬‬
‫‪ .2‬שער לוגי מהסוג ‪.AND, OR, NOT‬‬
‫‪ .3‬פלט‪.‬‬
‫מעגל מסויים מתאים לאורך קלט מסויים‪ ,‬ולכן נעסוק במשפחות של מעגלים‪.‬‬
‫∞} ‪ {Cn‬מחשבת את הפונקציה }‪ f : {0, 1}∗ → {0, 1‬אם לכל קלט ‪C|x| (x) = ,x‬‬
‫הגדרה ‪ 6.2‬נאמר כי משפחה של מעגלים ‪n=1‬‬
‫)‪.f (x‬‬
‫גודל של מעגל מוגדר להיות כמות הקשתות בו‪ ,‬ונסמן זאת ב‪.|C|-‬‬
‫נתבונן בעיקר במעגלים בעלי גודל פולינומי בקלט שלהם‪ ,‬וזה יבוא לידי ביטוי בהגדרה הבאה‪.‬‬
‫∗‬
‫∞} ‪ {Cn‬בגודל פולינומי אם קיים פולינום )·(‪ p‬כך‬
‫הגדרה ‪ 6.3‬נאמר שקבוצה }‪ A ⊆ {0, 1‬ניתנת לפתרון ע"י משפחת מעגלים ‪n=1‬‬
‫ש‪-‬‬
‫‪C|x| (x) = 1 ⇐⇒ x ∈ A‬‬
‫‬
‫‬
‫‬
‫‬
‫וכן )|‪.C|x| ≤ p(|x‬‬
‫‪24‬‬
‫‪ .6.2‬מכונות טיורינג המקבלות עצה כמודל לא יוניפורמי שני‬
‫‪6.2‬‬
‫פרק ‪ .6‬חישוב לא יוניפורמי‬
‫מכונות טיורינג המקבלות עצה כמודל לא יוניפורמי שני‬
‫הגדרה ‪ 6.4‬נאמר שפונקציה }‪ f : {0, 1}∗ → {0, 1‬שייכת למחלקה `‪ P/‬עבור ‪ ` : N → N‬אם קיים אלג' פולינומי ‪ M 1‬וסדרה‬
‫∞} ‪ {an‬כך שמתקיימים התנאים הבאים‪,‬‬
‫אינסופית של מחרוזות עצה ‪n=1‬‬
‫‬
‫‬
‫‪ .1‬לכל ∗}‪.A a|x| , x = f (x) ,x ∈ {0, 1‬‬
‫‪ .2‬לכל ‪.|an | = `(n) ,n ∈ N‬‬
‫למשל‪ - P/1 ,‬מתאר שפות שניתנות להכרעה בעזרת מ"ט שמקבלות עצה באורך של ביט אחד לכל אורך קלט‪ .‬נשים‬
‫לב כי ‪.P = P/0‬‬
‫טענה ‪ P/1 6.5‬מכילה שפות שאינן כריעות‪ ,‬ולכן ‪.P ( P/1‬‬
‫הוכחה‪ .‬תהי }‪ f : N → {0, 1‬פונקציה שאינה כריעה‪ .‬נגדיר פונקציה חדשה }‪ f 0 : {0, 1}∗ → {0, 1‬באופן הבא‪,‬‬
‫)|‪f 0 (x) = f (|x‬‬
‫נשים לב כי ‪ f 0‬אינה כריעה‪ ,‬שכן אם ‪ f 0‬הייתה כריעה‪ ,‬אז בהינתן קלט ‪ n‬ל־ ‪ f‬אפשר לבחור ‪ x ∈ {0, 1}n‬ואז‬
‫)‪ ,f (n) = f 0 (x‬וזה היה מאפשר לנו להכריע גם את ‪ ,f‬אך עפ"י הנחתנו ‪ f‬אינה כריעה‪.‬‬
‫‪0‬‬
‫∈ ‪ f 0‬כי אינה כריעה‪.‬‬
‫∞} ‪ {an‬המוגדרת ע"י }‪ ,an = f (n) ∈ {0, 1‬ו‪/ P-‬‬
‫אבל ‪ ,f ∈ P/1‬עם סדרת עצות ‪n=1‬‬
‫הגדרה ‪ 6.6‬נגדיר את המחלקה ‪ P/poly‬להיות‪,‬‬
‫[‬
‫‪P/p‬‬
‫= ‪P/poly‬‬
‫)·(‪polynomial p‬‬
‫שקילות בין שני המודלים הלא יוניפורמים‬
‫‪6.3‬‬
‫כעת‪ ,‬נרצה להוכיח שקילות בין שני המודלים שהוזכרו בחלקים הקודמים‪ .‬כלומר‪ ,‬נוכיח את המשפט הבא‪.‬‬
‫משפט ‪ 6.7‬קבוצה ‪ A‬שייכת ל־‪ A ⇐⇒ P/poly‬ניתנת לפתרון ע"י משפחת מעגלים בגודל פולינומי‪.‬‬
‫∞} ‪ {Cn‬בגודל פולינומי המכריעה את ‪ .A‬נבנה בעזרתם מ"ט פולינומית‬
‫הוכחה‪ (⇒) .‬נניח כי קיימת סדרת מעגלים ‪n=1‬‬
‫המקבלת עצה בגודל פולינומי ומכריעה את ‪.A‬‬
‫‬
‫‬
‫המ"ט ‪ M‬תקבל עבור קלט ‪ x‬את העצה |‪ ,C|x‬ו‪ M C|x| , x -‬תריץ את |‪ C|x‬על הקלט ‪ x‬ותחזיר את התשובה‪ .‬מכיוון‬
‫‬
‫‬
‫‬
‫‬
‫∞} ‪.{Cn‬‬
‫ש־ |‪ C|x‬פולינומי ב‪ ,|x|-‬אזי ‪ M‬רצה בזמן פולינומי ב־|‪ ,|x‬ונכונות ‪ M‬נובעת מנכונות המשפחה ‪n=1‬‬
‫‪1‬כלומר‪ ,‬מ"ט‪.‬‬
‫‪25‬‬
‫‪ .6.4‬הקשר לשאלת ‪ P‬מול ‪NP‬‬
‫פרק ‪ .6‬חישוב לא יוניפורמי‬
‫)⇐( נניח כי ‪ A‬ניתנת להכרעה ע"י מ"ט ‪ M‬המקבלת עצה בגודל פולינומי‪ .‬ז"א‪ ,‬עבור קלט ‪ x‬ועצה |‪< p(|x|) ,y|x‬‬
‫כך ש‪-‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫ |‪y|x‬‬
‫‬
‫‪M y|x| , x = 1 ⇐⇒ x ∈ A‬‬
‫‬
‫‬
‫‬
‫‬
‫את ‪ M y|x| , x‬אפשר לתרגם ‪ 2‬למעגל פולינומי ∗‪ Cn‬שמקבל כקלט את ‪ x‬ואת |‪ y|x‬ומחזיר תוצאה זהה ל־ ‪.M y|x| , x‬‬
‫כעת‪ ,‬נציב בתוך המשתנים |‪ y|x‬המופיעים ב‪ Cn∗ -‬את העצה |‪ ,y|x‬נפשט ונקבל את המעגל המתקבל וזה יהיה המעגל‬
‫‪ Cn‬על קלט באורך ‪.x‬‬
‫הקשר לשאלת ‪ P‬מול ‪NP‬‬
‫‪6.4‬‬
‫ראינו בחלק הקודם כי ‪ .P = P/0 ( P/1 ⊆ P/poly‬ולכן‪ ,‬אם ‪ P = NP‬אזי ‪ NP ⊆ P‬ולכן ודאי היה מתקיים‬
‫‪.NP ⊆ P/poly‬‬
‫טענה ‪ 6.8‬אם ‪ NP ⊆ P/poly‬אזי ‪.PH = Σ2‬‬
‫הוכחה‪ .‬לפי טענה ‪ ,5.5‬מתקיים כי ‪ .PH = Σ2 ⇐= Π2 ⊆ Σ2‬לכן‪ ,‬נראה כי אם ‪ NP ⊆ P/poly‬אזי ‪Π2 ⊆ Σ2‬‬
‫ונקבל את הדרוש‪ .‬לשם כך‪ ,‬תהי ‪ ,A ∈ Π2‬ונניח כי ‪ .NP ⊆ P/poly‬אנו צריכים להוכיח כי ‪.A ∈ Σ2‬‬
‫לפי הגדרת ‪ ,Π2‬קיים מוודא פולינומי ‪ V‬ופולינום )·( ‪ P‬כך ש‪-‬‬
‫‪∀y∃z : |y|, |z| < P (|x|), V (x, y, z) = 1 ⇐⇒ x ∈ A‬‬
‫נגדיר את הקבוצה ‪ B‬באופן הבא‪,‬‬
‫‪(x, y) ∈ B ⇐⇒ ∃z : |z| < P (|x|), V (x, y, z) = 1‬‬
‫ומכאן ‪ .B ∈ Σ1 = NP‬ולכן אפשר להסיק כי‬
‫‪x ∈ A ⇐⇒ ∀y : |y| < P (x), (x, y) ∈ B‬‬
‫∞} ‪ {Cn‬שמכריעה את ‪ ,|(x, y)| ≤ P (|x|) .B‬וכן לכל )‪ (x, y‬קיים‬
‫‪ B ∈ NP‬ולכן לפי ההנחה קיימת סדרת מעגלים ‪n=1‬‬
‫|)‪ C|(x,y‬מעגל בגודל פולינומי ב־|‪ |x‬כך ש‪-‬‬
‫‪C|(x,y)| (x, y) = 1 ⇐⇒ (x, y) ∈ B‬‬
‫ולכן אפשר לומר כי‬
‫‪x ∈ A =⇒ ∃C∀y : |y|, |C| < P (|x|), V 0 (x, C, y) = 1‬‬
‫‬
‫‬
‫כאשר )|‪ ,C = C1 , . . . , CP (|x‬כלומר‪ C ,‬מכיל את כל המעגלים )|‪ ,C1 , . . . , CP (|x‬ו‪ V 0 -‬פשוט מריץ את את המעגל‬
‫המתאים מתוך ‪ .C‬אך לעומת זאת‪ ,‬הוכחנו רק כיוון אחד‪ ,‬והכיוון השני נכשל שכן המעגלים ב־‪ C‬יכולים לתת תשובות‬
‫לא נכונות!‬
‫‪2‬כאשר |‪ y|x‬עכשיו הוא חלק מהקלט‪ ,‬בניגוד למכונה לא יוניפורמית בה העצה אינה חלק מהקלט‪.‬‬
‫‪26‬‬
‫‪ .6.4‬הקשר לשאלת ‪ P‬מול ‪NP‬‬
‫פרק ‪ .6‬חישוב לא יוניפורמי‬
‫אך כעת‪ ,‬מכיוון ש־‪ ,B ∈ NP‬קיימת רדוקציה קארפ מ‪ B-‬ל‪ ,SAT-‬כך ש‪-‬‬
‫‪(x, y) ∈ B ⇐⇒ ϕx,y ∈ SAT‬‬
‫∞} ‪ {Cn‬שמכריעה את ‪.SAT‬‬
‫כמו כן‪ SAT ∈ NP ,‬ולכן עפ"י ההנחה של ‪ ,NP ⊆ P/poly‬קיימת סדרת מעגלים ‪n=1‬‬
‫לכל ‪ y‬כך ש‪ ,|y| ≤ P (|x|)-‬בהכרח )|‪ .|ϕx,y | = |f (x, y)| ≤ P (|x‬לכל ‪ x‬נקבע סדרת מעגלים שמחשבת את ‪SAT‬‬
‫עד אורך קלט שהינו )|‪ .p(|x‬כלומר נגדיר את‬
‫) )|‪Cx = (C1 , . . . , CP (|x‬‬
‫ונגדיר‬
‫)‪x ∈ A ⇐⇒ ∃Cx ∀y : V ∗ (x, Cx , y‬‬
‫כאשר ∗ ‪ V‬מוגדר כך‪:‬‬
‫אלגוריתם ‪V ∗ (x, C, y) 1.6‬‬
‫‪ .1‬חשב ‪.f (x, y) = ϕx,y‬‬
‫‪ .2‬הפעל את המעגל ) ‪ .C|ϕx,y | (ϕx,y‬אם התשובה היא ‪ ,0‬אזי ∗ ‪ V‬דוחה‪ .‬אם התשובה היא ‪ ,1‬כלומר ‪,ϕx,y ∈ SAT‬‬
‫אזי ∗ ‪ V‬מוצא בעזרת רדוקציה עצמית של ‪ SAT‬וגישה למעגלים )|‪ C1 , . . . CP (|x‬השמה מספקת ל־ ‪.ϕx,y‬‬
‫‪ V ∗ .3‬בודק שההשמה המספקת שהוא מצא בשלב ‪ 2‬ל־ ‪ ϕx,y‬אכן מספקת את ‪ .ϕx,y‬אם השמה זו אינה מספקת‬
‫דוחה‪ ,‬ואחרת מקבל‪.‬‬
‫∈ ) ∗ ‪ ,(x, y‬אזי ) ∗ ‪ V ∗ (x, Cx , y‬ולכן‬
‫ולכן אם קיים ∗ ‪ y‬כך ש־‪/ B‬‬
‫‪∃Cx ∀y : V ∗ (x, Cx , y) = 1 ⇐⇒ ∀y : (x, y) ∈ B ⇐⇒ x ∈ A‬‬
‫ולכן קיבלנו ש־ ‪.A ∈ Σ2‬‬
‫‪27‬‬
‫פרק ‪7‬‬
‫סיבוכיות זיכרון‬
‫עד כה עסקנו בסיבוכיות זמן‪ ,‬והיום נעסוק בסיבוכיות זיכרון‪ .‬נרצה לעסוק גם בסיבוכיות זיכרון שהיא תת‪-‬ליניארית‪.‬‬
‫לשם כך‪ ,‬נעסוק במודל של מכונת טיורינג בעל התכונות הבאות‪,‬‬
‫• סרט קלט ‪ -‬לקריאה בלבד‪.‬‬
‫• סרט פלט ‪ -‬לכתיבה בלבד‪.‬‬
‫• סרט עבודה ‪ -‬סרט לקריאה וכתיבה‪ ,‬וסיבוכיות הזכרון נמדדת עפ"י השטח המנוצל בסרט זה‪.‬‬
‫• א"ב בינארי‪.‬‬
‫‪7.1‬‬
‫הגדרת סיבוכיות זיכרון‪ ,DSPACE ,‬חישוב בזיכרון לוגריתמי‬
‫הגדרה ‪ 7.1‬נאמר כי בעיה מסויימת שייכת למחלקה ))‪ DSPACE(s(n‬עבור ‪ s‬פונקציה כלשהי‪ ,‬אם בהינתן קלט לבעיה באורך ‪n‬‬
‫ניתן להכריע את הבעיה‪ ,‬ע"י שימוש במכונת טיורינג ‪ ,1‬וגישה ללכל היותר )‪ s(n‬תאים מוך סרט העבודה‪.‬‬
‫טענה ‪ 7.2‬לכל פונקציה ‪.DTIME(t(n)) ⊆ DSPACE(t(n)) ,t‬‬
‫הוכחה‪ .‬הסבר טריוויאלי לכך הוא שב‪ t-‬יחידות זמן‪ ,‬ניתן לגשת ללכל היותר ‪ t‬תאי זיכרון‪.‬‬
‫כעת‪ ,‬כיצד ניתן למלא את היחס )?(‪?DSPACE(s(n)) ⊆ DTIME‬‬
‫טענה ‪ 7.3‬מתקיים‬
‫‬
‫‬
‫))‪DSPACE(s(n)) ⊆ DTIME n · 2O(s(n‬‬
‫‪1‬עפ"י המודל שתיארנו‪.‬‬
‫‪28‬‬
‫‪ .7.1‬הגדרת סיבוכיות זיכרון‪ ,DSPACE ,‬חישוב בזיכרון לוגריתמי‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫הוכחה‪ .‬בהינתן מ"ט ‪ ,M‬תיאור מלא של קונפיגורציית החישוב שלה עבור קלט ‪ x‬מסויים לאחר ‪ t‬צעדים יכול להעשות‬
‫ע"י תיאור הדברים הבאים‪:‬‬
‫• תוכן סרט העבודה‪.‬‬
‫• מיקום הראש על סרט העבודה‪.‬‬
‫• מיקום הראש בקלט‪.‬‬
‫• המצב הפנימי של המכונה‪.‬‬
‫אם קונפיגורציה מסויימת חוזרת על עצמה‪ ,‬אזי החישוב נכנס בהכרח ללולאה אין סופית‪ ,‬ומכיוון שאנחנו מניחים‬
‫שהמכונה ‪ A‬עוצרת על ‪ x‬אזי אפשר להניח שאין קונפיגורציה החוזרת על עצמה‪ .‬מכאן‪ ,‬שהזמן המקסימלי של ריצת‬
‫‪ M‬על ‪ x‬חסום ע"י מס' הקונפיגורציות‪ ,‬השווה ל‪-‬‬
‫))‪2s(n) · s(n) · n · c = n · 2O(s(n‬‬
‫כאשר )‪ 2s(n‬הוא מספר התכנים האפשריים על סרט העבודה‪ s(n) ,‬הוא מיקום הראש על סרט העבודה‪ n ,‬הוא מיקום‬
‫הראש בקלט‪ ,‬ו‪ c-‬הוא קבוע המתאר את המצב הפנימי של המכונה‪ ,‬ולכן‬
‫‬
‫‬
‫))‪DSPACE(s(n)) ⊆ DTIME n · 2O(s(n‬‬
‫‬
‫‬
‫הערה ‪ 7.4‬נשים לב כי עבור ‪.DSPACE(s(n)) ⊆ DTIME 2O(s(n)) ,s(n) ≥ log n‬‬
‫כעת‪ ,‬נתרכז תחילה בבעיות הניתנות לחישוב בזכרון לוגריתמי‪.‬‬
‫הגדרה ‪ 7.5‬נגדיר את המחלקה המתאימה‬
‫) ‪DSPACE(`c‬‬
‫[‬
‫=‪L‬‬
‫‪c‬‬
‫כאשר ‪.`c = c log n‬‬
‫מסקנה ‪.L ⊆ P 7.6‬‬
‫הוכחה‪ .‬המסקנה נובעת ישירות מהטענה שהוכחנו‪ ,‬שכן בעיה הניתנת להכרעה בעזרת זיכרון לוגריתמי‪ ,‬ניתנת עפ"י‬
‫הערה ‪ 7.4‬להכרעה בזמן פולינומי‪.‬‬
‫‪29‬‬
‫‪ .7.2‬סיבוכיות זיכרון לא דטרמיניסטית‪ ,‬חישוב לא דטרמיניסטי בזיכרון לוגריתמי‬
‫‪7.2‬‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫סיבוכיות זיכרון לא דטרמיניסטית‪ ,‬חישוב לא דטרמיניסטי בזיכרון לוגריתמי‬
‫כאשר עסקנו בסיבוכיות זמן לא דטרמיניסטית‪ ,‬הגדרנו שני מודלים שקולים לחישוב לא דטרמיניסטי‪.‬‬
‫‪ .1‬מודל ה‪ ,On-line-‬כאשר למכונה יש מעברים שלא מוגדרים באופן יחיד‪ ,‬הבחירה איזה מעבר לבצע נעשית‬
‫באופן אקראי בזמן הריצה‪ .‬הקלט מתקבל ⇒⇐ יש מסלול מקבל‪.‬‬
‫‪ .2‬מודל ה‪ ,Off-line-‬ובמקרה זה המכונה היא דטרמיניסטית אך היא מקבלת קלט עזר נוסף )עד(‪ .‬הקלט מתקבל‬
‫⇒⇐ יש עד שגורם למכונה לקבל‪.‬‬
‫שני המודלים הללו אינם שקולים בהקשר של סיבוכיות זיכרון לא דטרמיניסטית‪ .‬אנו נגדיר זיכרון לא דטרמיניסטי‬
‫עפ"י המודל הראשון ‪.2‬‬
‫הגדרה ‪ 7.7‬נאמר שבעיה שייכת למחלקה ))‪ NSPACE(s(n‬עבור פונקציה ‪ s‬כלשהי‪ ,‬אם בהינתן קלט לבעיה באורך ‪ n‬ניתן‬
‫להכריע את הבעיה ע"י מ"ט ל"ד במודל ה־‪ On-line‬ע"י שימוש בזיכרון מתוך סרט העבודה החסום ע"י )‪.s(n‬‬
‫אבחנה‪ .‬מתקיים‬
‫‪3‬‬
‫))‪DSPACE(s(n)) ⊆ NSPACE(s(n‬‬
‫))‪NTIME(t(n)) ⊆ NSPACE(t(n‬‬
‫נשאלת השאלה מהו היחס בין ‪ NSPACE‬ל‪ .DSPACE-‬כלומר‪ .NSPACE(s(n)) ⊆ DSPACE(?) ,‬בהמשך‬
‫נפתור שאלה זו‪.‬‬
‫הגדרה ‪ 7.8‬המחלקה הלא דטרמיניסטית המקבילה ל‪ L-‬היא‬
‫) ‪NSPACE(`c‬‬
‫[‬
‫= ‪NL‬‬
‫‪c‬‬
‫כאשר ‪.`c = c log n‬‬
‫טענה ‪.L ⊆ NL ⊆ P 7.9‬‬
‫הוכחה‪ .‬ההסבר יהיה הסבר דומה לפיו ‪.L ⊆ P‬‬
‫‪7.3‬‬
‫רדוקציית ‪-NL ,log-space‬שלמות‪ ,‬משפט ‪ ,Savitch‬משפט ‪Immerman‬‬
‫הגדרה ‪ 7.10‬עבור ‪ A0 ∈ NL‬נאמר שקיימת רדוקציית ‪ log-space‬מ‪ A0 -‬ל‪ A-‬אם בהינתן קלט ‪ ,x‬קיימת פונקציה )‪ f (x‬החשיבה‬
‫בזכרון לוגריתמי ב‪ |x|-‬כך שמתקיים‬
‫‪x ∈ A0 ⇐⇒ f (x) ∈ A‬‬
‫‪2‬ה‪.On-line-‬‬
‫‪3‬הטענות הללו טריוויאליות‪.‬‬
‫‪30‬‬
‫‪ .7.3‬רדוקציית ‪-NL ,log-space‬שלמות‪ ,‬משפט ‪ ,Savitch‬משפט ‪Immerman‬‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫רדוקציית ‪ log-space‬היא מקרה פרטי של רדוקציית קארפ‪ ,‬שכן )‪ f (x‬החשיבה בזכרון לוגריתמי ב‪ |x|-‬חשיבה בזמן‬
‫פולינומי ב‪.4 |x|-‬‬
‫הגדרה ‪ 7.11‬בעיה ‪ A‬הינה שלמה ב‪ NL-‬אם מתקיימים שני התנאים הבאים‪.‬‬
‫‪.A ∈ NL .1‬‬
‫‪ .2‬לכל ‪ ,A0 ∈ NL‬קיימת רדוקציית ‪ log-space‬מ‪ A0 -‬ל‪.A-‬‬
‫להלן תיאור של בעיה שלמה ב‪:NL-‬‬
‫}‪St-conn = {(G, s, t) | G is a directed graph, there exists a path from s to t‬‬
‫טענה ‪.St-conn ∈ NL 7.12‬‬
‫הוכחה‪ .‬נגדיר את האלגוריתם הבא‬
‫אלגוריתם ‪ 1.7‬בהינתן קלט ‪:G, s, t‬‬
‫‪ .1‬נשמור מונה שיתחיל ב‪.i = 0 .0-‬‬
‫‪ - v ← s .2‬משתנה השומר קודקוד נוכחי‪.‬‬
‫‪ .3‬הגרל שכן אקראי ‪ u‬של ‪.v‬‬
‫)א( אם ‪ u = t‬החזר ‪.true‬‬
‫)ב( ‪.i = i + 1‬‬
‫)ג( ‪.v ← u‬‬
‫)ד( אם ‪ i = n + 1‬החזר ‪ .f alse‬אחרת‪ ,‬חזור לשלב ‪.3‬‬
‫בזיכרון שומרים מונה וקודקוד נוכחי ולכן סה"כ סיבוכיות זיכרון )‪ O(log n‬ולכן ‪.St-conn ∈ NL‬‬
‫טענה ‪ St-conn 7.13‬היא ‪-NL‬שלמה‪.‬‬
‫הוכחה‪ .‬נצטרך להוכיח כי לכל ‪ A ∈ NL‬קיימת רדוקציית ‪ log-space‬מ‪ A-‬ל‪ .St-conn-‬כלומר‪ ,‬בהינתן ‪x 7→ Gx , sx , tx‬‬
‫בזיכרון לוגריתמי כך ש‪-‬‬
‫‪x ∈ A ⇐⇒ (Gx , sx, tx ) ∈ St-conn‬‬
‫‪4‬לפי מסקנה ‪.7.6‬‬
‫‪31‬‬
‫‪ .7.3‬רדוקציית ‪-NL ,log-space‬שלמות‪ ,‬משפט ‪ ,Savitch‬משפט ‪Immerman‬‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫כיוון ש‪ ,A ∈ NL-‬קיימת מ"ט ל"ד ‪ M‬המשתמשת בזכרון לוגריתמי ומכריעה את ‪ .A‬כלומר‪ ,‬קיים קבוע ‪ c‬כך שלכל‬
‫קלט ‪ x‬ל‪ ,M -‬המכונה ‪ M‬משתמשת בזיכרון לכל היותר )|‪ .c log(|x‬לכן‪ ,‬המספר הכולל של הקונפיגורציות המתארות‬
‫את ריצת ‪ M‬על ‪ x‬באורך ‪ n‬הוא‬
‫‬
‫‬
‫‪2c log n · c log n · n · c0 ≤ O nc+2‬‬
‫כאשר ‪ 2c log n‬הוא מספר התכנים האפשריים של סרט העבודה‪ c log n ,‬הוא המיקום על סרט העבודה‪ n ,‬הוא מיקום‬
‫בסרט הקלט ו‪ c0 -‬הוא קבוע המתאר את המצב הפנימי של המכונה‪.‬‬
‫הרדוקציה‪ ,‬בהינתן קלט ‪ x‬תבנה גרף ) ‪ Gx = (Vx , Ex‬כאשר ‪ Vx‬יהיה קודקוד עבור כל קונפיגורציה אפשרית של‬
‫החישוב של ‪ M‬על ‪ .x‬יהיה קודקוד נוסף מיוחד שייקרא ‪ ,vacc‬ויהי ‪ v0‬הקודקוד המתאר את הקונפיגורציה ההתחלתית‪.‬‬
‫עבור ‪ ,Ex‬נאמר שתהיה קשת בין קונפיגורציה ‪ i‬ל‪ j-‬אם אפשר לעבור בצעד בודד של מ"ט מקונפיגורציה ‪ i‬לקונפיגורציה‬
‫‪ .j‬כמו כן‪ ,‬תהיה לנו קשת בין כל קונפיגורציה מקבלת לקודקוד ‪.vacc‬‬
‫ברור מבניית הגרף כי ‪ M ⇐⇒ x ∈ A‬מקבלת את ‪ ⇐⇒ x‬ב‪ Gx -‬קיים מסלול מכוון מ‪ v0 -‬ל‪ .vacc -‬נשים לב שכיוון‬
‫שגודל כל קונפיגורציה הוא ))|‪ O(log(|x‬ובדיקה האם שתי קונפיגורציות הן עוקבות ניתנת להיעשות בסיבוכיות זיכרון‬
‫לוגריתמית‪ ,‬אזי הגרף המתואר ניתן לייצוג לא מפורש בזכרון לוגריתמי‪.‬‬
‫משפט ‪) 7.14‬משפט ‪ (Savitch‬מתקיים כי‬
‫‬
‫‬
‫‬
‫‪NL ⊆ DSPACE log2 n‬‬
‫‬
‫כלומר‪.NSPACE(log n) ⊆ DSPACE log2 n ,‬‬
‫‬
‫‬
‫הוכחה‪ .‬נראה אלגוריתם דטרמיניסטי שרץ בסיבוכיות זיכרון ‪ O log2 n‬ל‪ St-conn-‬ומכך ש‪ St-conn-‬שלמה ב‪NL-‬‬
‫‬
‫‬
‫נסיק כי כל בעיה אחרת ב‪ NL-‬ניתנת לפיתרון ‪ .DSPACE log2 n‬נשתמש באלגוריתם הבא‪.‬‬
‫אלגוריתם ‪ Φ(G, u, v, k) 2.7‬המחזיר ‪ true‬אם בגרף יש מסלול באורך לכל היותר ‪ k‬מ‪ u-‬ל‪.v-‬‬
‫‪ .1‬אם ‪ :k = 1‬אם קיימת קשת בין ‪ u‬ל‪ v-‬החזר ‪ ,true‬אחרת ‪.f alse‬‬
‫‪ .2‬עבור כל קודקוד )‪,w ∈ V (G‬‬
‫)א( בצע‬
‫‪l m‬‬
‫‪.y = Φ G, u, w,‬‬
‫‬
‫)ב( בצע‬
‫‪j k‬‬
‫‬
‫‪k‬‬
‫‪2‬‬
‫‪k‬‬
‫‪2‬‬
‫‪.z = Φ G, w, v,‬‬
‫)ג( אם ‪ y ∧ z = 1‬החזר ‪.true‬‬
‫‪ .3‬החזר ‪.f alse‬‬
‫)|)‪ Φ(G, s, t, |V (G‬מכריע נכון את ‪ St-conn‬עבור קלט )‪.(G, s, t‬‬
‫סיבוכיות הזיכרון של האלגוריתם )‪ Φ(G, u, v, k‬חסומה ע"י |)‪ - log |V (G‬הינו גודל הזכרון הנדרש בשלב ‪ 2‬כדי לשמור‬
‫קודקוד נוכחי‪ .‬עומק הרקורסיה הוא ‪ log k‬ובכל עומק של הרקורסיה אנו נדרשים לשמור קודקוד התחלה‪ ,‬קודקוד סיום‬
‫‪32‬‬
‫‪ .7.3‬רדוקציית ‪-NL ,log-space‬שלמות‪ ,‬משפט ‪ ,Savitch‬משפט ‪Immerman‬‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫‬
‫‬
‫וקודקוד נוכחי‪ .‬סה"כ )|)‪ O(log |V (G‬זכרון בכל עומק‪ ,‬ולכן הזכרון הכללי הוא )|)‪,O log2 n ≥ log k ·O(log |V (G‬‬
‫כנדרש‪.‬‬
‫משפט ‪) 7.15‬משפט ‪ Savitch‬המוכלל( עבור ‪ ,s(n) ≥ log n‬מתקיים‬
‫‬
‫‬
‫)‪NSPACE(s(n)) ⊆ DSPACE s2 (n‬‬
‫הוכחה‪ .‬עבור ))‪ ,A ∈ NSPACE(s(n‬נוכיח כי ))‪ .A ∈ DSPACE (s2 (n‬נגדיר ‪ A0‬להיות‬
‫‪o‬‬
‫‪|x∈A‬‬
‫)|‪s(|x‬‬
‫‪n‬‬
‫‪A0 = x · 1 · 02‬‬
‫כלומר‪,‬‬
‫)|‪= |x| + 1 + 2s(|x|) ≤ 2 · 2s(|x‬‬
‫‬
‫‬
‫ )|‪s(|x‬‬
‫‬
‫‪x · 1 · 02‬‬
‫‬
‫לפי ההנחה כי )|‪ .s(|x|) ≥ log(|x‬נשים לב כי ‪ .A0 ∈ NL‬נוכיח זאת‪.‬‬
‫בהינתן קלט ‪ y‬ל‪ ,A0 -‬כדי לבדוק ש‪ y ∈ A0 -‬צריך לוודא כי‬
‫‪ y .1‬נתון בפורמט נכון‪:‬‬
‫)|‪s(|x‬‬
‫‪ .y = x · 1 · 02‬ניתן לבדוק זאת ע"י צבירת מונה עד |‪ ,|y‬וזה מתבצע בזיכרון |‪.log |y‬‬
‫‪ .x ∈ A .2‬ניתן לוודא ‪ x ∈ A‬בזכרון )|‪ s(|x‬לפי ההנחה‪ ,‬וכן מתקיים |‪ ,s(|x|) ≤ log |y‬שכן |‪.2s(|x|) ≤ |y‬‬
‫סה"כ קיבלנו כי ניתן להכריע את ‪ A0‬עבור קלט ‪ y‬בזיכרון לוגריתמי ע"י מכונה ל"ד‪ ,‬ולכן ‪.A0 ∈ NL‬‬
‫כעת נראה כי ))‪ .A ∈ DSPACE (s2 (n‬בהינתן קלט ‪ x‬ל‪ ,A-‬נפעל כך‪,‬‬
‫אלגוריתם ‪ 3.7‬בהינתן קלט ‪ x‬ל‪ ,A-‬האלגוריתם יפעל באופן הבא‬
‫‪ .1‬צור‬
‫)|‪s(|x‬‬
‫‪.y = x · 1 · 02‬‬
‫‪ .2‬בדוק האם ‪∈ A0‬‬
‫))|‪.DSPACE (s2 (|x‬‬
‫‪y‬‬
‫בסיבוכיות‬
‫מקום‬
‫⊆‬
‫‬
‫‪2‬‬
‫)‪(s(|x|)+1‬‬
‫‪c‬‬
‫‬
‫‪DSPACE‬‬
‫=‬
‫‬
‫|‪log2 |y‬‬
‫‪c‬‬
‫‬
‫‪DSPACE‬‬
‫‪ .3‬החזר את התשובה‪.‬‬
‫‬
‫‬
‫יש כאן לכאורה בעיה של ייצוג ‪ ,y‬שכן במכונה המכריעה את ‪ A‬שכן אורכו של ‪ y‬הוא )|‪ O 2s(|x‬ואילו המכונה‬
‫צריכה להשתמש בזיכרון פנימי חסום ע"י )|‪ .s2 (|x‬נפתור זאת ע"י כך שנחזיק ייצוג לא מפורש של ‪ .y‬כלומר‪ ,‬כאשר‬
‫נתבקש להחזיר את הביט ה־‪ i‬של ‪ ,y‬כאשר )|‪ 1 ≤ i ≤ |x| + 1 + 2s(|x‬נפעל באופן הבא‪.‬‬
‫‪ .1‬אם |‪ 1 ≤ i ≤ |x‬נחזיר ‪.xi‬‬
‫‪ i = |x| + 1 .2‬נחזיר ‪.1‬‬
‫‪33‬‬
‫‪ .7.3‬רדוקציית ‪-NL ,log-space‬שלמות‪ ,‬משפט ‪ ,Savitch‬משפט ‪Immerman‬‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫‪ |x| + 2 ≤ i ≤ |x| + 1 + 2s(|x|) .3‬נחזיר ‪ .0‬לצורך זה אנו צריכים מונה הסופר על |‪ ,|y‬כלומר בסיבוכיות זיכרון‬
‫))|‪.O(s(|x‬‬
‫כידוע‪ ,‬ההשערה היא כי ‪ ,NP 6= co-NP‬שכן אם ‪ NP = co-NP‬אז ‪ .PH = Σ1‬בסיבוכיות מקום זה לא קורה‪.‬‬
‫משפט ‪) 7.16‬משפט ‪.NL = co-NL (Immerman‬‬
‫טענה ‪ 7.17‬אם קיימת רדוקציית ‪ log-space‬מ‪ L1 -‬ל‪ ,L2 -‬ו‪ L2 ∈ NL-‬אזי ‪.L1 ∈ NL‬‬
‫הוכחה‪ .‬נגדיר ‪ M1‬להיות הרדוקציה‪ .‬כלומר‪ ,‬היא מכונה שבהינתן ‪ x‬מחזירה )‪ f (x‬כך שמתקיים ⇒⇐ ‪x ∈ L1‬‬
‫‪ ,f (x) ∈ L2‬וכן )‪ f (x‬חשיבה בזיכרון ≥ |‪ M2 .log |x‬תהיה מכונה שמכריעה את ‪ .L2‬המכונה ‪ M‬התכריע את ‪L2‬‬
‫פשוט תחשב את )‪ f (x‬עם ‪ ,M1‬ותשלח את התשובה של ))‪ .M2 (f (x‬נשים לב כי ‪ M1‬רצה בזיכרון לוגריתמי ולכן רצה‬
‫בזמן פולינומי‪ ,‬ולכן ‪ ,|f (x)| ≤ |x|c‬ולכן |‪ M1 .log |f (x)| ≤ c log |x‬ו‪ M2 -‬רצות שתיהן בסיבוכיות זיכרון לוגריתמית‪.‬‬
‫אך הפלט של ‪ M1‬שהינו הקלט של ‪ M2‬הינו בעל אורך היכול להגיע לפולינומי ב‪ .|x|-‬לכן‪ ,‬לא ניתן לשמור את )‪f (x‬‬
‫כולו על סרט העבודה של ‪ .M‬הדרך לפתור זאת היא שעבור כל ביט מספר ‪ i‬של )‪ f (x‬המבוקש ע"י המכונה ‪,M2‬‬
‫המכונה ‪ M‬תריץ את ‪ M1‬על הקלט ‪ x‬עד לקבלת הביט ה־‪ i‬של )‪ f (x‬ואותו היא תיתן ל‪ .M2 -‬כלומר‪ ,‬עבור כל בקשה‬
‫של ביט מסויים מ‪ f (x)-‬נריץ מחדש את ‪ M1‬על הקלט ‪ ,x‬וע"י כך ‪ M‬תמומש בזיכרון לוגריתמי‪.‬‬
‫טענה ‪ 7.18‬תהי ∗‪ L‬שפה ‪-NL‬שלמה‪ ,‬וכן ‪ 5 L∗ ∈ co-NL‬אזי‪.NL = co-NL ,‬‬
‫הוכחה‪ .‬ראשית נראה ש‪ NL ⊆ co-NL-‬אם מתקיימת הנחת הטענה‪ .‬תהי ‪ ,A ∈ NL‬אזי קיימת רדוקציית‬
‫‪ log-space‬מ‪ A-‬ל‪ L∗ -‬שכן ∗‪ L‬היא ‪-NL‬שלמה‪ .‬כלומר‪ ,‬קיימת פונקציה )‪ f (x‬חשיבה בזכרון לוגריתמי כך ש‪-‬‬
‫∗‪ ,x ∈ A ⇐⇒ f (x) ∈ L‬וזה שקול ל‪ .x ∈ A ⇐⇒ f (x) ∈ L∗ -‬כלומר‪ ,‬קיימת רדוקציית ‪ log-space‬מ‪ A-‬ל‪,L∗ -‬‬
‫והיא אותה הפונקציה ‪ .f‬עפ"י הנחתנו‪ ,L∗ ∈ NL ,‬ולכן לפי טענה ‪ ,A ∈ NL 7.17‬כלומר ‪ A ∈ co-NL‬ולכן קיבלנו‬
‫‪.NL ⊆ co-NL‬‬
‫‪ L‬אזי ‪˜ ∈ NL ⊆ co-NL‬‬
‫כעת‪ ,‬אם ‪˜ ∈ co-NL\NL‬‬
‫‪ L‬בסתירה לכך ש‪˜ ∈ co-NL\NL-‬‬
‫‪ L‬ולכן ‪˜ ∈ NL‬‬
‫‪ ⇐= L‬לא‬
‫קיימת ‪˜ ∈ co-NL\NL‬‬
‫‪ L‬ולכן מתקיים‬
‫‪NL = co-NL‬‬
‫כנדרש‬
‫כזכור‪ ,‬ראינו כי‬
‫}‪St-conn = {(G, s, t) | G is a directed graph, there exists a path from s to t‬‬
‫היא ‪-NL‬שלמה‪ .‬מהדיון הקודם‪ ,‬כדי להוכיח ש‪ NL = co-NL-‬די להראות‬
‫‪St-conn ∈ NL‬‬
‫‪5‬כלומר‪.L∗ ∈ NL ,‬‬
‫‪34‬‬
‫‪ .7.3‬רדוקציית ‪-NL ,log-space‬שלמות‪ ,‬משפט ‪ ,Savitch‬משפט ‪Immerman‬‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫}‪St-conn = {(G, s, t) | G is a directed graph, there is no path from s to t‬‬
‫נגדיר את הבעיה )‪ TR(G, s‬להיות מספר הקודקודים אליהם קיים מסלול בגרף ‪ G‬היוצא מ‪.s-‬‬
‫הגדרה ‪ 7.19‬עבור פונקציה ∗}‪ f : {0, 1}∗ → {0, 1‬שאינה בינארית‪ ,‬כמו )‪ TR(G, s‬נאמר ש־ ‪ f‬חשיבה ב‪ NL-‬אם מתקיימים‬
‫התנאים הבאים‪,‬‬
‫‪ .1‬קיימת מכונה ל"ד ‪ M‬המחזירה עבור קלט ‪ x‬או את )‪ f (x‬או ⊥ ‪ ,6‬הרצה בזיכרון לוגריתמי‪.‬‬
‫‪ .2‬קיימת סדרת בחירות אקראיות של ‪ M‬הגורמת ל‪ M -‬להחזיר )‪.f (x‬‬
‫טענה ‪ 7.20‬אם ‪ TR(G, s) ∈ NL‬אזי ‪.St-conn(G, s, t) ∈ NL‬‬
‫הוכחה‪ .‬נציג את האלגוריתם‪,‬‬
‫אלגוריתם ‪St-conn(G, s, t) 4.7‬‬
‫‪ ,c1 ← TR(G, s) .1‬ואם נכשל נחזיר ‪.0‬‬
‫‪ c2 ← TR(G0 , s) .2‬כאשר ‪ G0‬הינו הגרף ‪ G‬ללא הקודקוד ‪ .t‬אם נכשל נחזיר ‪.0‬‬
‫‪ .3‬אם ‪ c1 = c2‬נחזיר ‪ ,1‬אחרת נחזיר ‪.0‬‬
‫כלומר‪ ,‬כדי להראות ש‪ ,NL = co-NL-‬נותר להראות ש‪.TR(G, s) ∈ NL-‬‬
‫אסטרטגיה‪ .‬ננחש )‪ .g = TR(G, s‬לאחר מכן‪,‬‬
‫‪ .1‬נוודא כי ‪.TR(G, s) ≥ g‬‬
‫‪ .2‬נוודא ‪.TR(G, s) ≤ g‬‬
‫אם ווידאנו את )‪ (1‬ו‪ (2)-‬אז נסיק כי הניחוש ‪ g‬נכון ואכן ‪.TR(G, s) = g‬‬
‫את )‪ (1‬קל לוודא בזיכרון לוגריתמי‪ ,‬אך עם )‪ (2‬הבעיה יותר קשה‪.‬‬
‫טענה ‪.TR(G, s) ∈ NL 7.21‬‬
‫‪6‬סימן עבור "לא יודע"‪.‬‬
‫‪35‬‬
‫‪ .7.4‬סיבוכיות מקום פולינומית‪ ,‬הגדרה ומספר טענות‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫הוכחה‪ .‬יהי )‪ G = (V, E‬גרף‪ v ∈ V ,‬קודקוד‪ .‬נגדיר ‪ Ri‬להיות אוסף הקודקודים אשר קיים מסלול ב‪ G-‬מ‪ v-‬באורך‬
‫≥ ‪ .i‬למשל‪ R0 = {v} ,‬ו‪ .Ri = Ri−1 ∪ {u | ∃w ∈ Ri−1 , (w, u) ∈ E}-‬נראה איך לחשב את | ‪ |Ri‬ב‪ NL-‬בהינתן‬
‫| ‪ .|Ri−1‬כדי לחשב את )‪ TR(G, s‬יש לחשב את | ‪ .|Rn‬כדי לסיים את הוכחת הטענה‪ ,‬די להראות איך לחשב את | ‪|Ri‬‬
‫ב‪ NL-‬בהינתן ערך נכון ל‪.|Ri−1 |-‬‬
‫אלגוריתם ‪ 5.7‬חישוב | ‪ |Ri‬בהינתן | ‪|Ri−1‬‬
‫נחש ערך | ‪ g = |Ri‬ובדוק נכונות ‪.g‬‬
‫‪ .1‬בדוק ‪ .|Ri | ≥ g‬כדי לבדוק זאת‪ ,‬נגריל ‪ g‬קודקודים ונוודא ב‪ log-space-‬שיש מסלול באורך ≥ ‪ i‬מ‪ v-‬לכל אחד‬
‫מהם‪.‬‬
‫‪ .2‬בדוק ש‪ ,|Ri | ≤ g-‬ע"י כך שנוודא כי ‪ ,|V − Ri | ≥ n − g‬כלומר צריך לוודא שקיימים לפחות ‪ n − g‬קודקודים‬
‫∈ ‪,u‬‬
‫כך שאין מסלול באורך ≥ ‪ i‬מ‪ v-‬אליהם‪ .‬נגריל ‪ n − g‬קודקודים‪ ,‬ועבור כל קודקוד ‪ u‬שהוגרל נוודא ‪/ Ri‬‬
‫ע"י כך שנגריל | ‪ |Ri−1‬קודקודים ונוודא עבור כל קודקוד מוגרל ‪ w‬שהינו ב‪ Ri−1 -‬ב‪ ,log-space-‬ונוודא שעבור‬
‫∈ ‪ u‬וזאת‬
‫∈ )‪ (w, u‬וכן ‪ u 6= w‬אזי ‪/ Ri‬‬
‫∈ )‪,u 6= w ∧ (w, u‬אם לכל ‪/ E w ∈ Ri−1‬‬
‫כל קודקוד ‪/ E w ∈ Ri−1‬‬
‫אפשר לוודא ב־‪log-space‬‬
‫אם ‪ 1‬ו‪ 2-‬הצליחו‪ ,‬אז ‪ ,|Ri | = g‬אחרת החזר ⊥‪.‬‬
‫סה"כ זה מחושב ב‪ ,log-space-‬ולכן הוכחנו את משפט אימרמן‪ ,‬כדרוש‪.‬‬
‫‪7.4‬‬
‫סיבוכיות מקום פולינומית‪ ,‬הגדרה ומספר טענות‬
‫הגדרה ‪ 7.22‬נגדיר את המחלקות‬
‫‬
‫‬
‫‬
‫‪DSPACE nk‬‬
‫‬
‫‪NSPACE nk‬‬
‫∞‬
‫[‬
‫= ‪PSPACE‬‬
‫‪k=1‬‬
‫∞‬
‫[‬
‫= ‪NPSPACE‬‬
‫‪k=1‬‬
‫מסקנה ‪ 7.23‬קל לראות כי ‪ ,PSPACE ⊆ NPSPACE‬אבל אפשר להשיג תוצאה יותר טובה‪ .‬לפי משפט ‪,7 Savitch‬‬
‫מתקיים‬
‫‬
‫‬
‫‬
‫‬
‫‪NSPACE nk ⊆ DSPACE n2k‬‬
‫ולכן‬
‫‪PSPACE = NPSPACE‬‬
‫‪7‬כלומר‪ ,‬משפט ‪7.15‬‬
‫‪36‬‬
‫‪ .7.5‬שלמות ב‪ ,PSPACE-‬קיום בעיה שלמה ב‪PSPACE-‬‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫מסקנה ‪ 7.24‬נגדיר את המחלקה ‪ EXP‬להיות‪,‬‬
‫‬
‫‪c‬‬
‫‬
‫‪DTIME 2n‬‬
‫[‬
‫= ‪EXP‬‬
‫‪c‬‬
‫כעת‪ ,‬נשים לב שמתקיים ‪ ,PSPACE ⊆ EXP‬וזאת לפי טענה ‪ 7.3‬האומרת כי‬
‫‬
‫‬
‫))‪DSPACE (s(n)) ⊆ DTIME n · 2O(s(n‬‬
‫טענה ‪ 7.25‬מתקיים כי ‪.PH ⊆ PSPACE‬‬
‫הוכחה‪ .‬כזכור‪ A ∈ PH ,‬אם קיים ‪ k ∈ N‬כך ש‪ .A ∈ Σk -‬כלומר‪ ,‬קיים מוודא פולינומי ‪ V‬ופולינום ‪ P‬כך ש‪-‬‬
‫‪x ∈ A ⇐⇒ ∃y1 ∀y2 . . . Qk yk , |yi | < P (|x|) : V (x, y1 , . . . , yk ) = 1‬‬
‫ניתן להכריע את ‪ A‬לעיל ע"י מ"ט המשתמשת בזיכרון פולינומי‪ ,‬שכן המכונה צריכה לעבור על פני כל ה‪-k-‬יות‬
‫‪ y1 , . . . , yk‬כך ש‪ |yi | < P (|x|)-‬ולוודא כל ‪-k‬יה שהמוודא מקבל עפ"י תנאי הכמתים‪ .‬בזיכרון העבודה יש לשמור רק‬
‫‪-k‬יה נוכחית‪ ,‬ולכן סה"כ סיבוכיות זיכרון ))|‪ ,O (k · P (|x‬ז"א פולינומי ב‪ .|x|-‬נשים לב שגם המוודא עצמו משתמש‬
‫בזכרון החסום ע"י )|‪ P 0 (|x‬עבור פולינום ‪ P 0‬כלשהו‪ ,‬שכן ידוע שהמוודא רץ בזמן פולינומי ב‪ ,|x|-‬ולכן משתמש גם‬
‫בזיכרון פולינומי‪ ,‬ולכן סה"כ הכרענו את ‪ A‬בזיכרון פולינומי ולכן ‪.A ∈ PSPACE‬‬
‫‪7.5‬‬
‫שלמות ב‪ ,PSPACE-‬קיום בעיה שלמה ב‪PSPACE-‬‬
‫הגדרה ‪ 7.26‬נאמר כי ‪ A‬היא ‪-PSPACE‬שלמה אם‬
‫‪A ∈ PSPACE .1‬‬
‫‪ .2‬לכל ‪ B ∈ PSPACE‬קיימת רדוקציית קארפ מ‪ B-‬ל‪ .A-‬כלומר‪ ,‬קיימת פונקציה ‪ ,f‬חשיבה בזמן פולינומי ‪ ,8‬כך ש‪-‬‬
‫‪x ∈ B ⇐⇒ f (x) ∈ A‬‬
‫להלן קבוצה שהיא ‪-PSPACE‬שלמה‪,‬‬
‫}‪QBF = {ϕ | ϕ is a quantified boolean formula that returns true‬‬
‫דוגמא‪ .‬למשל‪,‬‬
‫) ‪QBF 3 ϕ = ∃x1 ∀x2 (x1 ∨ x2‬‬
‫) ‪QBF 63 ψ = ∀x1 ∀x2 ∃x3 (x1 ∨ x3 ) ∧ (x2 ∨ ¬x3‬‬
‫‪8‬שימו לב שמדובר בזמן‪ ,‬ולא זיכרון‪ .‬למעשה זוהי דרישה חזקה יותר ואכן קיימת שפה ‪-PSPACE‬שלמה ביחס לכך‪ ,‬ולכן גם קיימת‬
‫בעיה ‪-PSPACE‬שלמה ביחס לרדוקציות רק עם זיכרון פולינומי‪.‬‬
‫‪37‬‬
‫‪ .7.5‬שלמות ב‪ ,PSPACE-‬קיום בעיה שלמה ב‪PSPACE-‬‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫טענה ‪ QBF 7.27‬היא ‪-PSPACE‬שלמה‪.‬‬
‫הוכחה‪ .‬ראשית‪ ,‬נוכיח כי ‪ .QBF ∈ PSPACE‬בהינתן ‪ ,ϕ‬צ"ל בסיבוכיות מקום פולינומית ב‪ |ϕ|-‬להכריע האם‬
‫‪ .ϕ ∈ QBF‬ניתן לעשות זאת באופן דומה לאופן שבו ראינו כי ‪ ,PH ⊆ PSPACE‬בהוכחת טענה ‪ .7.25‬ההבדל בין‬
‫שני המקרים הוא שמספר הכמתים המופיעים ב‪ ϕ-‬חסום ע"י |‪ ,9 |ϕ‬אך עדיין זכרון העבודה הנדרש הוא )|‪ O(|ϕ‬כדי‬
‫לשמור ערך נוכחי לכל משתנה כאשר עוברים על כל ההשמות האפשריות למשתנים‪ .‬כמו כן‪ ,‬הוידוא שהשמה מסוימת‬
‫מספקת ניתן להיעשות בזמן פולינומי ב‪ |ϕ|-‬ולכן גם בזיכרון פולינומי ב‪.|ϕ|-‬‬
‫כעת נותר להראות שעבור כל ‪ B ∈ PSPACE‬קיימת רדוקציית קארפ מ‪ B-‬ל‪ .QBF-‬כלומר‪ ,‬קיימת פונקציה ‪ f‬כך‬
‫ש‪-‬‬
‫‪x ∈ B ⇐⇒ f (x) ∈ QBF‬‬
‫וכן )‪ f (x‬ניתן לחישוב בזמן פולינומי ב‪.|x|-‬‬
‫מכיוון ש‪ ,B ∈ PSPACE-‬קיימת מ"ט ‪ MB‬שמכריעה את ‪ B‬בזיכרון פולינומיאלי‪ .‬ז"א‪ ,‬עבור קלט ‪MB (x) ,x‬‬
‫‪c‬‬
‫משתמשת בזיכרון ≥ ‪ |x|c‬עבור ‪ c‬קבוע כלשהו‪ .‬ז"א‪ ,‬מספר הקונפיגורציות של של ריצת )‪ MB (x‬חסום ע"י ) |‪.10 2O(|x‬‬
‫יהי ‪ GB,x‬גרף בו יש קודקוד לכל קונפיגורציה‪ ,‬וכן יש קשת בין כל שתי קונפיגורציות שניתן לעבור בינהם בצעד יחיד‬
‫של ‪ .MB‬וכמו כן‪ ,‬יהי ‪ - sinit‬שם קונפיגורציה התחלתית‪ ,‬ו‪ tacc -‬שם קונפיגורציה מקבלת ‪ .11‬כלומר‪,‬‬
‫) ‪x ∈ B ⇐⇒ Φ (sinit , tacc , 2m‬‬
‫כאשר )‪ ΦGB,x (u, v, k‬מחזירה ‪ ⇐⇒ T‬בגרף ‪ GB,x‬יש מסלול באורך ≥ ‪ k‬כן ל‪ u-‬ו‪ m .v-‬מסמן את אורך‬
‫הקונפיגורציות‪.‬‬
‫נשים לב שהכלל הבא תקף‪,‬‬
‫‬
‫‬
‫‬
‫‬
‫‪Φ (s, t, 2m ) = ∃wΦ s, w, 2m−1 ∧ Φ w, t, 2m−1‬‬
‫אם נפתח את הנוסחא המתקבלת ע"י הפעלת הרקורסיה עד תנאי עצירה )‪ Φ(·, ·, 1‬נקבל נוסחא בוליאנית ‪ 12‬עם כמתים‬
‫באורך ≥ ) ‪ ,O(2m‬כלומר באורך אקספוננציאלי ב‪ ,|x|-‬וזה בעייתי לנו‪.‬‬
‫כדי לפתור את הבעיה שתארנו‪ ,‬נשתמש ברעיון הבא‪ .‬נכתוב את הכלל כך‪,‬‬
‫‬
‫‬
‫‪Φ (s, t, 2m ) = ∃w ∈ {0, 1}m ∀(x,y)∈{(s,w),(w,t)} Φ x, y, 2m−1‬‬
‫ואם נפתח ) ‪ Φ (s, t, 2m‬לפי הכלל החדש‪ ,‬אזי הנוסחא המתקבלת היא באורך פולינומי ב‪ |m|-‬ולכן פולינומי ב‪.|x|-‬‬
‫אבל‪ ,‬נוסחא זו אינה בוליאנית‪ .‬כעת נכתוב כלל רקורסיה חדש שקול לקודם שכן יהיה בוליאני‪.‬‬
‫‪Φ (s, t, 2m ) = ∃w∈{0,1}m ∀σ∈{0,1} ∃x∈{0,1}m ∃y∈{0,1}m‬‬
‫‬
‫‬
‫‪[σ = 0 → ((x = s) ∧ (y = w))] ∧ [σ = 1 → ((x = w) ∧ (y = t))] ∧ Φ x, y, 2m−1‬‬
‫‬
‫‪9‬ולא קבוע כפי בהוכחה של טענה ‪.7.25‬‬
‫‪10‬תזכורת‪ :‬קונפיגורציה מוגדרת ע"י מיקום על סרט קלט‪ ,‬מיקום על סרט עבודה‪ ,‬תוכן סרט עבודה ומצב פנימי של המכונה‪.‬‬
‫‪11‬בלי הגבלת הכלליות‪ ,‬יש אחת כזאת‪.‬‬
‫‪m‬‬
‫‪c‬‬
‫‪12‬שימו לב שהכמתים הם על קודקודים המייצגים קונפיגורציות‪ ,‬כאשר קונפיגורציה בסדר גודל של ) |‪ ,O(|x‬כלומר }‪ ,w ∈ {0, 1‬ולבסוף‬
‫פשוט ניתן לפצל את ‪ w‬לאוסף משתנים של ביטים באורך ‪ ,m‬ולכן לבסוף נקבל נוסחא בוליאנית‪.‬‬
‫‪38‬‬
‫‪ .7.5‬שלמות ב‪ ,PSPACE-‬קיום בעיה שלמה ב‪PSPACE-‬‬
‫פרק ‪ .7‬סיבוכיות זיכרון‬
‫וכעת‪ ,‬כאשר נפתח נוסחא לפי הכלל הנ"ל‪ ,‬נקבל נוסחא בוליאנית עם כמתים שאורכה חסום ע"י ) ‪ ,O(m2‬כלומר‬
‫פולינומי ב‪ |m|-‬ולכן גם ב‪ ,|x|-‬וכן מתקיים‬
‫‪f (x) = ϕ ∈ QBF ⇐⇒ x ∈ B‬‬
‫ו‪ |ϕ| ≤ p(|x|)-‬ולכן נסיק ש‪ QBF-‬היא ‪-PSPACE‬שלמה‪.‬‬
‫‪39‬‬
‫פרק ‪8‬‬
‫אלגוריתמים ראנדומיים‬
‫‪8.1‬‬
‫מכונת טיורינג הסתברותית‪ ,‬הגדרות ומוטיבציה‬
‫מכונת טיורינג הסתברותית היא מ"ט לא דטרמיניסטית בעלת היכולת להטיל מאבע אחיד ‪ 1‬הפועלת באופן הבא‪ :‬כל‬
‫פעם שהמכונה מגיעה לפיצול בו המעבר אינו מוגדר באופן יחיד ‪ ,2‬המכונה מטילה מטבע‪ ,‬ובסיכוי ‪ 12‬מבצעת מעבר‬
‫ראשון ובסיכוי ‪ 21‬מבצעת מעבר שני‪.‬‬
‫בשונה ממ"ט ל"ד כללית‪ ,‬המקבלת קלט אם קיים מסלול מקבל עבור קלט זה‪ ,‬מ"ט הסתברותית מקבלת קלט אם‬
‫קיימת "הסתברות גבוהה" להגיע למצב מקבל‪.‬‬
‫נאמר כי תוצאת החישוב של מ"ט הסתברותית ‪ M‬על קלט ‪ M (x) ,x‬היא משתנה מקרי ‪ .3‬כמו כן‪ ,‬קיים מודל‬
‫‪ Off-line‬שקול בו המ"ט ‪ M‬שלעיל מתוארת ע"י ‪ M 0‬דטרמיניסטית‪ ,‬המקבלת כקלט זוג )‪ (x, r‬כאשר ‪ x‬הוא קלט‬
‫מקורי ל‪ M -‬ו‪ r-‬היא סדרה של הטלות מטבע‪ ,‬ו‪ M 0 (x, r)-‬מחזירה את תוצאת ריצת ‪ M‬על ‪ x‬עם סדרת הטלות מטבע‬
‫‪ .r‬עבור ‪ r‬שנבחר באקראי‪ M 0 (x, r) ,‬הוא משתנה מקרי המתפלג כמו )‪ .M (x‬המכונות עליהן נדבר הן פולינומיות‪.‬‬
‫טענה ‪ 8.1‬תהי ‪ M‬מ"ט הסתברותית להכרעת ‪ A‬אשר על כל קלט ‪ x‬מחזירה תשובה נכונה בהסתברות ‪ .1‬אזי קיימת‬
‫מ"ט ‪ M 0‬דטרמיניסטית המכריעה את ‪ A‬בעלת זמן ריצה זהה לזה של ‪.A‬‬
‫הוכחה‪ .‬נניח כי קיימת ‪ M‬עפ"י המתואר‪ M 0 .‬תסמלץ את ריצת ‪ ,M‬וכל פעם ש‪ M -‬מטילה מטבע‪ M 0 ,‬תניח כי‬
‫תוצאת הטלת המטבע הייתה ‪ .0‬נטען כי ‪ M 0‬לעיל מכריעה את ‪ .A‬אם נניח שהנחה זו שגויה‪ ,‬אז קיים קלט ‪ x‬עבורו‬
‫‪ M 0‬טועה‪ .‬ז"א‪ ,‬שגם ‪ M‬כאשר מקבלת את הקלט ‪ x‬וסדרת הטלות המטבע שכולה ‪ ,0‬טועה‪ M .‬תגריל סדרת הטלות‬
‫‪1‬‬
‫מטבע שכולה ‪ 0‬בהסתברות ≤‬
‫)|‪ 0 < 2p(|x‬כאשר )|‪ p(|x‬הוא פולינום החוסם את זמן הריצה של ‪.M‬‬
‫כלומר‪ M ,‬מחזירה תשובה נכונה בהסתברות ≥‬
‫בהסתברות ‪.1‬‬
‫‪1‬‬
‫)|‪2p(|x‬‬
‫‪ 1 > 1 −‬בסתירה להנחה ש‪ M -‬מחזירה תשובה נכונה‬
‫‪1‬בסיכוי ‪ 1/2‬מחזיר ‪ ,1‬בסיכוי ‪ 1/2‬מחזיר ‪.0‬‬
‫‪2‬בלי הגבלת הכלליות‪ ,‬אפשר להניח כי קיימות במקרה זה בדיוק ‪ 2‬אפשרויות‪.‬‬
‫‪3‬מודל ה‪.On-line-‬‬
‫‪40‬‬
‫‪ .8.2‬חישוב הסתברותי פולינומי עם טעות חד‪-‬צדדית‪RP ,‬‬
‫פרק ‪ .8‬אלגוריתמים ראנדומיים‬
‫‪8.2‬‬
‫חישוב הסתברותי פולינומי עם טעות חד‪-‬צדדית‪RP ,‬‬
‫הגדרה ‪ 8.2‬נאמר שקבוצה ‪ A‬שייכת ל‪ RP-‬אם קיימת מ"ט הסתברותית ‪ M‬העוצרת בזמן פולינומי ומקיימת‬
‫‪∀x ∈ A Prr [M (x, r) = 1] ≥ 21‬‬
‫∈ ‪∀x‬‬
‫‪/ A Prr [M (x, r) = 0] = 1‬‬
‫נשים לב לדמיון בין ההגדרה הנ"ל למחלקה ‪ .NP‬נוכיח איך בא לידי ביטוי דמיון זה בטענה הבאה‪.‬‬
‫טענה ‪RP ⊆ NP 8.3‬‬
‫הוכחה‪ .‬תהי ‪ ,A ∈ RP‬ונוכיח כי ‪ .A ∈ NP‬כזכור‪ A ∈ NP ,‬אם קיים מוודא פולינומי ‪ V‬ופולינום )·(‪ p‬כך שמתקיים‬
‫‪x ∈ A ⇐⇒ ∃y, |y| < p(|x|) : V (x, y) = 1‬‬
‫מכיוון ש־‪ A ∈ RP‬אזי קיימת מ"ט דטרמיניסטית )‪ M (x, r‬המקבלת כקלט זוג )‪ (x, r‬ומקיימת ‪⇐= x ∈ A‬‬
‫‪ Prr [M (x, r) = 1] ≥ 21‬ולכן בפרט קיים ‪ r‬כך ש‪.M (x, r) = 1-‬‬
‫∈ ‪ ⇐= x‬לכל ‪ M (x, r) = 0 ,r‬ולכן קיבלנו‬
‫אם לעומת זאת ‪/ A‬‬
‫‪x ∈ A ⇐⇒ ∃r, |r| < p(|x|) : M (x, r) = 1‬‬
‫כאשר )|‪ p(|x‬חוסם את זמן הריצה של ‪ ,M‬ולכן קיבלנו אפשר לבחור מוודא פולינומי שהינו מכונה )‪ M (x, r‬המובטחת‬
‫מהגדרת ‪ RP‬ופולינום )·(‪ p‬שהינו הפולינום החוסם את זמן ריצת ‪ M‬כך שתנאיי ‪ NP‬מתקיימים‪.‬‬
‫הגדרה ‪ 8.4‬נאמר ש‪ L ∈ RP1 -‬אם קיימת מ"ט פולינומית הסתברותית ‪ M‬ופולינום )·(‪ p‬כך ש‪-‬‬
‫‪1‬‬
‫)|‪x ∈ L =⇒ Prr [M (x, r) = 1] ≥ p(|x‬‬
‫∈‪x‬‬
‫‪/ L =⇒ Prr [M (x, r) = 0] = 1‬‬
‫ונאמר ש‪ L ∈ RP2 -‬אם קיימת מ"ט פולינומית הסתברותית ‪ M‬ופולינום )·(‪ p‬כך ש‪-‬‬
‫)|‪x ∈ L =⇒ Prr [M (x, r) = 1] ≥ 1 − 2−p(|x‬‬
‫∈‪x‬‬
‫‪/ L =⇒ Prr [M (x, r) = 0] = 1‬‬
‫טענה ‪RP1 = RP2 8.5‬‬
‫הוכחה‪ .‬נשים לב ‪ .RP2 ⊆ RP1‬ע"מ להראות שיוויון‪ ,‬נראה ‪ .RP1 ⊆ RP2‬לשם כך‪ ,‬תהי ‪ ,A ∈ RP1‬ונוכיח‬
‫‪ .A ∈ RP2‬אזי‪ ,‬עפ"י הגדרת ‪ ,RP1‬קיימת מ"ט הסתברותית פולינומית ‪ M1‬ופולינום )·(‪ p‬כך ש‪-‬‬
‫‪1‬‬
‫)|‪x ∈ A =⇒ Prr [M1 (x, r) = 1] ≥ p(|x‬‬
‫∈‪x‬‬
‫‪/ A =⇒ Prr [M1 (x, r) = 0] = 1‬‬
‫נגדיר מ"ט הסתברותית ‪ M2‬באופן הבא‪,‬‬
‫‪41‬‬
‫‪ .8.3‬טעות דו‪-‬צדדית‪ BPP ,‬והקשר למחלקות אחרות‬
‫פרק ‪ .8‬אלגוריתמים ראנדומיים‬
‫אלגוריתם ‪M2 1.8‬‬
‫‪ .1‬הפעל את )‪ t(|x|) M1 (x, r‬פעמים‪ ,‬עם ‪/r‬ים אקראיים חדשים בכל הפעלה‪.‬‬
‫‪ .2‬אם אחת ההפעלות של )‪ M1 (x, r‬החזירה כן החזר כן‪ ,‬אחרת החזר לא‪.‬‬
‫עבור ‪ ,x ∈ A‬הסתברות השגיאה של ‪ M2‬היא‬
‫)|‪t(|x‬‬
‫ואנחנו צריכים להוכיח כי‬
‫‪1‬‬
‫‪2‬‬
‫‪≤t‬‬
‫‪1‬‬
‫)|‪p(|x‬‬
‫‪1‬‬
‫)|‪2p(|x‬‬
‫‪!t‬‬
‫‪p‬‬
‫≤‬
‫≤‬
‫‬
‫‪1‬‬
‫)|‪p(|x‬‬
‫⇒⇐‬
‫‬
‫‪ . 1 −‬נפשט‪:‬‬
‫‪ p‬‬
‫‪1‬‬
‫‪2‬‬
‫‪!−1 ‬‬
‫‬
‫‪− log2 1 −‬‬
‫‪p‬‬
‫‪≤t‬‬
‫‪· (−1) · log2 e−1‬‬
‫)|‪t(|x‬‬
‫‪1‬‬
‫‪1−‬‬
‫‪p‬‬
‫‪p‬‬
‫‪1‬‬
‫‪p‬‬
‫‬
‫‪Prr [M2 (x, r) = 0] = (Prr [M1 (x, r) = 0])t(|x|) ≤ 1 −‬‬
‫‪1‬‬
‫‪p‬‬
‫⇒⇐‬
‫‪‬‬
‫⇒⇐ ‪≤ t‬‬
‫‪! t ·p‬‬
‫‪p‬‬
‫≤‬
‫‪1‬‬
‫‪1−‬‬
‫‪p‬‬
‫‪‬‬
‫‪t‬‬
‫‪1‬‬
‫‪⇐⇒ 1 ≤ log2  1 −‬‬
‫‪p‬‬
‫‪p‬‬
‫‪p‬‬
‫ ‪p‬‬
‫⇒⇐‬
‫‪1‬‬
‫‪p‬‬
‫‬
‫‪1−‬‬
‫‪· (−) · log2‬‬
‫‪ p‬‬
‫‪1‬‬
‫‪2‬‬
‫‪!t‬‬
‫≤‬
‫‪!−1  pt‬‬
‫‪‬‬
‫‪‬‬
‫‪1‬‬
‫‪⇐⇒ 2 ≤  1 −‬‬
‫‪p‬‬
‫ ‪≤ t ⇐⇒ 1‬‬
‫‪p‬‬
‫‪1‬‬
‫‪1−‬‬
‫‪p‬‬
‫‪p‬‬
‫‪p· 1‬‬
‫‪p‬‬
‫‪1‬‬
‫‪p‬‬
‫⇒⇐‬
‫‬
‫‪− log2 1 −‬‬
‫‪p2‬‬
‫‪≤t‬‬
‫‪log2 e‬‬
‫כלומר‪ ,‬אם נבחר‬
‫‪8.3‬‬
‫)|‪p2 (|x‬‬
‫‪log2 e‬‬
‫= )|‪ t(|x‬אזי ‪ M2‬שתארנו מקיימת את תנאי ‪ ,RP2‬וכן ‪ M2‬פולינומית הסתברותית כנדרש‪.‬‬
‫טעות דו‪-‬צדדית‪ BPP ,‬והקשר למחלקות אחרות‬
‫המחלקה המתאימה כאן תהיה המחלקה ‪.4 BPP‬‬
‫הגדרה ‪ 8.6‬נאמר כי קבוצה ‪ A ∈ BPP‬אם קיימת מ"ט הסתברותית ‪ M‬הרצה בזמן פולינומי ומקיימות‬
‫‪2‬‬
‫‪3‬‬
‫≥ ])‪∀x : Prr [M (x, r) = χA (x‬‬
‫כאשר ‪ χA‬האינדיקטור של ‪ .A‬כלומר‪,‬‬
‫‪x∈A‬‬
‫∈‪x‬‬
‫‪/A‬‬
‫(‬
‫‪1‬‬
‫‪0‬‬
‫‪4‬עבור ‪.Bounded error Probabilistic Polynomial‬‬
‫‪42‬‬
‫= )‪χA (x‬‬
‫‪ .8.3‬טעות דו‪-‬צדדית‪ BPP ,‬והקשר למחלקות אחרות‬
‫פרק ‪ .8‬אלגוריתמים ראנדומיים‬
‫מסקנה ‪ 8.7‬נשים לב לאבחנות הבאות‪,‬‬
‫‪ ,RP ⊆ BPP .1‬וזה קל לראות‪.‬‬
‫‪ ,BPP ⊆ PSPACE ⊆ EXP .2‬כאשר ההסבר להכלה של ‪ BPP ⊆ PSPACE‬הוא שאפשר לעבור על כל‬
‫ה‪r-‬ים האפשריים ולבדוק עבור איזה אחוז מתוכם מתקבל ש‪ M (x, r) = 1-‬ועבור איזה אחוז מתוכם מתקבל‬
‫ש‪ M (x, r) = 0-‬ונענה עפ"י הרוב‪ .‬מהגדרת ‪ BPP‬מובטח כי אם נענה עפ"י הרוב נקבל תשובה שנכונה עבור‬
‫שייכות ‪ x‬לשפה עבור כל ‪.x‬‬
‫נאמר בנוסף כי הקשר בין ‪ BPP‬ו‪ NP-‬הוא שאלה פתוחה‪.‬‬
‫בדומה למקרה של ‪ ,RP‬אפשר גם עבור ‪ BPP‬לעשות אמפליפיקציה להסתברות ההצלחה‪ ,‬ולמעשה הטענה הבאה‬
‫נכונה‪.‬‬
‫טענה ‪ 8.8‬תהי ‪ .A ∈ BPP‬אזי לכל פולינום )·(‪ p‬ישנה מ"ט ∗ ‪ M‬הסתברותית העוצרת בזמן פולינומי המקיימת‬
‫‪1‬‬
‫)|‪2p(|x‬‬
‫‪∀x : Prr [M ∗ (x, r) = χA (x)] ≥ 1 −‬‬
‫ראשית‪ ,‬נציין כאן ללא הוכחה את חסם צ'רנוב‪ ,‬חסם חשוב בתורת ההסתברות במתמטיקה ומדעי המחשב בכלל‪.‬‬
‫למה ‪) 8.9‬חסם צ'רנוב( יהיו ‪ X1 , . . . , Xn‬משתנים מקריים בלתי תלויים שווי התפלגות המקבלים ערכים ב‪,{0, 1}-‬‬
‫ותהי ‪ µ‬התוחלת של כ"א מהם‪ .‬אזי‪ ,‬עבור כל ‪ε > 0‬‬
‫‪2k‬‬
‫‪#‬‬
‫‪≥ µ + ε < e−2ε‬‬
‫‪Xi‬‬
‫‪" Pk‬‬
‫‪i=1‬‬
‫‪k‬‬
‫‪Pr‬‬
‫הוכחה‪ ,A ∈ BPP .‬ולכן קיימת מ"ט הסתברותית ‪ M‬העוצרת בזמן פולינומי הקיימת‬
‫‪2‬‬
‫‪3‬‬
‫≥ ])‪∀x : Prr [M (x, r) = χA (x‬‬
‫וכעת נגדיר את )‪ M ∗ (x, r‬באופן הבא‪,‬‬
‫אלגוריתם ‪M ∗ 2.8‬‬
‫‪.T ← 0 .1‬‬
‫‪ .2‬הרץ את )‪ k M (x, r‬פעמים וקדם את ‪ T‬כאשר כל פעם שהתוצאה המתקבלת היא ‪.1‬‬
‫‪ .3‬אם‬
‫‪k‬‬
‫‪2‬‬
‫> ‪ T‬החזר ‪ ,1‬אחרת ‪.0‬‬
‫נגדיר משתנים מקריים ‪ w1 , . . . , wk‬כך ש‪-‬‬
‫‪‬‬
‫‪1‬‬
‫)‪The i’th execution of M (x, r) 6= χA (x‬‬
‫‪wi = ‬‬
‫‪0 otherwise‬‬
‫‪43‬‬
‫‪ .8.3‬טעות דו‪-‬צדדית‪ BPP ,‬והקשר למחלקות אחרות‬
‫פרק ‪ .8‬אלגוריתמים ראנדומיים‬
‫נשים לב כי התוחלת של של ‪ ,wi‬אותה נסמן ) ‪ ,µ(wi‬מקיימת ‪ wi .µ(wi ) ≤ 1/3‬הם משתנים מקריים שווי התפלגות‬
‫‪P‬‬
‫‪k‬‬
‫המקבלים ערכים ב‪ {0, 1}-‬וכן ‪ .µ(wi ) ≤ 13‬כעת‪ ,‬מתקיים כי ∗ ‪ M‬טועה אם ‪ , ki=1 wi > k2‬כלומר היו לנו <‬
‫‪2‬‬
‫שגיאות‪.‬‬
‫במילים אחרות‪ M ∗ ,‬טועה אם‬
‫‪1‬‬
‫‪2‬‬
‫אבל‬
‫‪1‬‬
‫‪3‬‬
‫≤‬
‫‬
‫‪wi‬‬
‫>‬
‫‪wi‬‬
‫‪Pk‬‬
‫‪i=1‬‬
‫‪k‬‬
‫‪ Pk‬‬
‫‪i=1‬‬
‫‪k‬‬
‫‪ ,E‬כלומר‪ ,‬מתקיימים תנאיי חסם צ'רנוב ולכן נוכל לחסום‬
‫‪= e−k/18‬‬
‫‪k‬‬
‫‪2‬‬
‫)‪≤ e−2·(1/6‬‬
‫‬
‫‪1‬‬
‫‪6‬‬
‫‪+‬‬
‫‪1‬‬
‫‪3‬‬
‫≥‬
‫‪wi‬‬
‫‪ Pk‬‬
‫‪i=1‬‬
‫‪k‬‬
‫∗‬
‫‪Prr [M (x, r) 6= χA (x)] ≤ Pr‬‬
‫כלומר‪ ,‬אנחנו צריכים לבחור ‪ k‬כך ש‪-‬‬
‫)|‪e− /18 ≤ 2−p(|x‬‬
‫‪k‬‬
‫אם נבחר למשל )|‪ ,k = 18 · p(|x‬אזי נקבל‬
‫)|‪e− /18 = e−p(|x|) ≤ 2−p(|x‬‬
‫‪k‬‬
‫כנדרש‪.‬‬
‫כעת‪ ,‬ברור כי ‪ 5 BPP ⊆ EXP‬ובכך כן אפשר לעשות דה‪-‬רנדומיזציה על שפות ב‪ ,BPP-‬אך נראה כי אפשר לעשות‬
‫את הבא‪.‬‬
‫משפט ‪BPP ⊆ P/poly 8.10‬‬
‫הוכחה‪ .‬תהי ‪ ,A ∈ BPP‬וזה אומר כי קיימת מ"ט הסתברותית ‪ M‬פולינומית המקיימת לכל קלט ‪x‬‬
‫‪2‬‬
‫‪3‬‬
‫≥ ])‪Prr [M (x, r) = χA (x‬‬
‫כמו כן‪ ,‬ראינו כי עבור ‪ A ∈ BPP‬קיימת מ"ט הסתברותית פולינומית ∗ ‪ M‬וכל פולינום )·(‪ p‬המקיימת שלכל ‪x‬‬
‫‪1‬‬
‫)|‪2p(|x‬‬
‫‪Prr [M ∗ (x, r) = χA (x)] ≥ 1 −‬‬
‫האסטרטגיה שלנו היא למצוא ‪ rn‬טוב‪ ,‬כלומר‪ rn ,‬כך שעבור כל ‪ x‬באורך ‪ n‬מתקיים‬
‫)‪M ∗ (x, rn ) = χA (x‬‬
‫‪5‬נרוץ על כל רצפי המטבעות האפשריים‪ ,‬וניקח את התשובה שמופיעה בלפחות ‪ 2/3‬מהפעמים‪ ,‬כמובטח ע"י הגדרת ‪.BPP‬‬
‫‪44‬‬
‫‪ .8.3‬טעות דו‪-‬צדדית‪ BPP ,‬והקשר למחלקות אחרות‬
‫פרק ‪ .8‬אלגוריתמים ראנדומיים‬
‫עפ"י האמור לעיל‪ ,‬קיימת מ"ט הסתברותית פולינומית המקיימת לכל ‪x‬‬
‫‪1‬‬
‫|‪22|x‬‬
‫≤ ])‪Prr [M ∗ (x, r) 6= χA (x‬‬
‫כאשר פולינום האמפליפיקציה כאן הוא עם פולינום ‪.q(n) = 2n‬‬
‫יהי )‪ p(n‬הפולינום החוסם את מספר הטלות המטבע שהמכונה ∗ ‪ M‬משתמש עבור קלט באורך ‪ .n‬נראה כי קיים‬
‫)‪ rn ∈ {0, 1}p(n‬שהינו טוב‪ .‬נעשה זאת ע"י כך שנחסום את ההסתברות ש‪ rn -‬מקרי איננו טוב‪ .‬כלומר‪ ,‬נראה כי‬
‫ההסתברות ל‪ rn -‬שאיננו טוב קטנה ממש מ‪ ,1-‬ומכך נסיק שקיים ‪ rn‬שהוא טוב‪.‬‬
‫≤ ])‪Prrn [rn is bad] = Prrn [∃x ∈ {0, 1}n M ∗ (x, rn ) 6= χA (x‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪= 2n · 2n = n‬‬
‫‪2n‬‬
‫‪2‬‬
‫‪2‬‬
‫‪2‬‬
‫‪X‬‬
‫≤ ])‪Prrn [M ∗ (x, rn ) 6= χA (x‬‬
‫‪x∈{0,1}n‬‬
‫‪X‬‬
‫≤‬
‫‪x∈{0,1}n‬‬
‫כאשר הצעד השני נובע לפי חסם האיחוד ‪ ,6‬ולכן ‪ Prrn [rn is bad] ≤ 21n‬ולכן ‪ .Prrn [rn is good] ≥ 1 − 21n‬כלומר‪,‬‬
‫כדי לקבל ש‪ A ∈ P/poly-‬נשתמש במכונה הדטרמיניסטית הפולינומית ∗ ‪ M‬שתקבל כקלט ‪ x‬באורך ‪ n‬ו‪ rn -‬שהינו‬
‫טוב עבור קלטים באורך ‪ .n‬עפ"י מה שהראנו‪ ,‬קיים ‪ rn‬טוב עבור ‪ |x| = n‬המקיים )|‪ |rn | < p(|x‬עבור פולינום כלשהו‬
‫)·(‪ .p‬מובטח מהגדרת ‪ rn‬כי‬
‫)‪M ∗ (x, rn ) = χA (x‬‬
‫כלומר ∗ ‪ M‬המקבלת עצה ‪ rn‬מכריעה את ‪ A‬ולכן ‪.A ∈ P/poly‬‬
‫כזכור‪ RP ⊆ BPP ,‬וגם ‪ .RP ⊆ NP‬כזכור ‪ A ∈ RP‬אם קיימת מ"ט הסתברותית ‪ M‬פולינומית אם‬
‫‪x ∈ A =⇒ Prr [M (x, r) = 1] ≥ 21‬‬
‫∈‪x‬‬
‫‪/ A =⇒ Prr [M (x, r) = 0] = 1‬‬
‫כזכור‪ ,‬לא ברור מה היחס בין ‪ BPP‬ל‪.Σ1 = NP-‬‬
‫משפט ‪.BPP ⊆ Σ2 ∩ Π2 8.11‬‬
‫הוכחה‪ .‬ראשית נראה כי ‪ .BPP ⊆ Σ2‬עבור ‪ ,A ∈ BPP‬נבצע את הדברים הבאים‪:‬‬
‫‪ .1‬הקטנת השגיאה‪ :‬נרצה להראות מכונה ∗ ‪ M‬שעבור קלט באורך ‪ n‬מטילה )‪ m = m(n‬מטבעות המקיימת‬
‫‪1‬‬
‫‪3m‬‬
‫‪Pr (Ax )6‬‬
‫‪P‬‬
‫‪x‬‬
‫≤ ] ‪Ax‬‬
‫‪S‬‬
‫≤ ])‪Prr [M ∗ (x, r) 6= χA (x‬‬
‫[ ‪.Pr‬‬
‫‪45‬‬
‫‪ .8.3‬טעות דו‪-‬צדדית‪ BPP ,‬והקשר למחלקות אחרות‬
‫פרק ‪ .8‬אלגוריתמים ראנדומיים‬
‫‪ .2‬נבנה נוסחא )‪ ϕ(x, r, s‬מוודא של ‪ ,Σ2‬ונראה שמתקיים‬
‫‪x ∈ A ⇐⇒ ∃s∀r ϕ(x, r, s) = 1‬‬
‫כאשר ‪ x‬יתאר קלט באורך ‪ r ,n‬יתאר סדרת הטלות מטבע של ∗ ‪ M‬עבור קלט באורך ‪r ∈ {0, 1}m ,n‬‬
‫ו‪ s = (s1 , . . . , sm )-‬כאשר ‪,|s| = m · m ,si ∈ {0, 1}m‬‬
‫) ‪M ∗ (xi , r ⊕ si‬‬
‫‪m‬‬
‫_‬
‫= )‪ϕ(x, r, s‬‬
‫‪i=1‬‬
‫ונראה‬
‫‪#‬‬
‫!‬
‫‪M ∗ (x, r ⊕ si ) = 1‬‬
‫‪"m‬‬
‫_‬
‫‪x ∈ A ⇐⇒ ∃s∀r‬‬
‫‪i=1‬‬
‫כעת‪ ,‬נראה כיצד לבצע את הדברים שרשמנו לעיל‪ ,‬ראשית עבור צעד הראשון‪.‬‬
‫עבור ‪ ,A ∈ BPP‬תהי ‪ M‬המכונה ההסתברותית הפולינומית המובטחת מהגדרת ‪ ,BPP‬המקיימת שעבור קלט‬
‫באורך ‪ M ,n‬מטילה )‪ p(n‬מטבעות‪ ,‬ותהי ∗ ‪ M‬המכונה המריצה את ‪ k M‬פעמים ‪ 7‬ומחזירה תשובה עפ"י תוצאת רוב‬
‫ההרצות‪ ,‬ויהיו ‪ w1 , . . . , wk‬משתנים מקריים כאשר ‪ wi = 1‬אם הייתה טעות בהרצה ה‪i-‬ית של ‪ .M‬בדומה להוכחה‬
‫של טענה ‪ 8.8‬מתקיים‬
‫‪P‬‬
‫‪1 2‬‬
‫‪k‬‬
‫‪1 1‬‬
‫‪wi‬‬
‫‪≥ +‬‬
‫‪≤ e−2( 6 ) k = e− 18‬‬
‫‪k‬‬
‫‪3 6‬‬
‫‬
‫∗‬
‫‪Prr [M (x, r) 6= χA (x)] = Prr‬‬
‫נקבע את ))‪ k = 18 ln (3p2 (n‬ונקבל‬
‫‪1‬‬
‫‪1‬‬
‫=‬
‫)‪3kp(n‬‬
‫)‪3m(n‬‬
‫≤‬
‫‪1‬‬
‫)‪3p2 (n‬‬
‫)‬
‫(‬
‫)‪−18 ln 3p2 (n‬‬
‫=‬
‫‪18‬‬
‫‪=e‬‬
‫נשים לב כי בלי הגבלת הכלליות )‪ ,k ≤ p(n‬נשים לב כי מספר הטלות המטבע של ∗ ‪ M‬עבור קלט באורך ‪ n‬שקראנו‬
‫לו )‪ m(n‬הוא ‪.m(n) = p(n) · k‬‬
‫כעת‪ ,‬נוכיח את הטענות הבאות‪,‬‬
‫טענה ‪ .1‬מתקיים‬
‫‪1‬‬
‫‪2‬‬
‫‪##‬‬
‫>‬
‫∗‬
‫‪M (x, r ⊕ si ) = 1‬‬
‫‪"m‬‬
‫_‬
‫"‬
‫‪x ∈ A =⇒ Prs ∀r‬‬
‫‪i=1‬‬
‫טענה ‪ .2‬מתקיים‬
‫‪#‬‬
‫‪1‬‬
‫‪2‬‬
‫‪#‬‬
‫≥ ‪M ∗ (x, r ⊕ si ) = 0‬‬
‫‪"m‬‬
‫_‬
‫‪i=1‬‬
‫‪ k 7‬ייקבע מיד‪.‬‬
‫‪46‬‬
‫"‬
‫∈‪x‬‬
‫‪/ A =⇒ ∀s Prr‬‬
‫‪ .8.3‬טעות דו‪-‬צדדית‪ BPP ,‬והקשר למחלקות אחרות‬
‫פרק ‪ .8‬אלגוריתמים ראנדומיים‬
‫נשים לב כי טענה ‪ 1‬טענה ‪ 2‬גוררות את העובדה כי‬
‫!‬
‫‪"m‬‬
‫_‬
‫‪#‬‬
‫∗‬
‫‪M (x, r ⊕ si ) = 1‬‬
‫‪x ∈ A ⇐⇒ ∃s∀r‬‬
‫‪i=1‬‬
‫הוכחת טענה ‪ .1‬כדי להוכיח זאת‪ ,‬נוכיח כי ההסתברות המשלימה‬
‫‪##‬‬
‫‪1‬‬
‫‪2‬‬
‫יהי ‪ Ar‬המאורע ש‪M ∗ (x, r ⊕ si ) = 0-‬‬
‫∗‬
‫<‬
‫‪M (x, r ⊕ si ) = 0‬‬
‫‪Wm‬‬
‫עבור ‪ r‬כלשהו‪.‬‬
‫‪"m‬‬
‫_‬
‫"‬
‫‪Prs ∃r‬‬
‫‪i=1‬‬
‫‪i=1‬‬
‫‪#‬‬
‫∗‬
‫= ‪M (x, r ⊕ si ) = 0‬‬
‫‪"m‬‬
‫_‬
‫"‬
‫‪#‬‬
‫‪X‬‬
‫‪Prs‬‬
‫≤ ‪Ar‬‬
‫[‬
‫‪r‬‬
‫‪r∈{0,1}m‬‬
‫‪i=1‬‬
‫‪‬‬
‫‪Prs‬‬
‫‪‬‬
‫‪[M ∗ (x, r ⊕ si ) = 0]‬‬
‫=‪‬‬
‫‪‬‬
‫}‬
‫|‬
‫‪{z‬‬
‫‪event Asi‬‬
‫‪m‬‬
‫^‪‬‬
‫‪X‬‬
‫‪Prs ‬‬
‫‪‬‬
‫=‬
‫‪r∈{0,1}m‬‬
‫‪i=1‬‬
‫המאורעות ‪ Asi , Asj‬הם בת"ל עבור ‪ ,i 6= j‬ולכן‬
‫‪1‬‬
‫‪2‬‬
‫<‬
‫‪1‬‬
‫‪3m mm‬‬
‫· ‪= 2m‬‬
‫‪m‬‬
‫‪1‬‬
‫‪3m‬‬
‫‬
‫‪X‬‬
‫‪r∈{0,1}m‬‬
‫≤ ]‪Prsi [M ∗ (x, r ⊕ si ) = 0‬‬
‫}‬
‫|‬
‫‪{z‬‬
‫‪1‬‬
‫‪≤ 3m‬‬
‫‪m‬‬
‫‪Y‬‬
‫‪X‬‬
‫=‬
‫‪r∈{0,1}m i=1‬‬
‫עבור ‪ ,m > 1‬ולכן קיבלנו את הדרוש עבור טענה ‪.1‬‬
‫הוכחת טענה ‪ .2‬נקבע ‪ ,s = s1 , . . . , sm‬ואנו צריכים להוכיח כי‬
‫‪1‬‬
‫‪2‬‬
‫‪#‬‬
‫≥ ‪M ∗ (x, r ⊕ si ) = 0‬‬
‫‪"m‬‬
‫_‬
‫‪Prr‬‬
‫‪i=1‬‬
‫כעת‪,‬‬
‫‪#‬‬
‫= ‪M ∗ (x, r ⊕ si ) = 1‬‬
‫‪"m‬‬
‫_‬
‫‪#‬‬
‫‪M ∗ (x, r ⊕ si ) = 0 = 1 − Prr‬‬
‫‪i=1‬‬
‫‪"m‬‬
‫_‬
‫‪Prr‬‬
‫‪i=1‬‬
‫ויהי ‪ Asi‬המאורע ש‪ ,M ∗ (x, r ⊕ si ) = 1-‬ושוב הפעם בעזרת חסם האיחוד‪,‬‬
‫≥ ]‪Prr [M ∗ (x, r ⊕ si ) = 1‬‬
‫}‬
‫‪{z‬‬
‫‪1‬‬
‫‪≤ 3m‬‬
‫|‬
‫‪m‬‬
‫‪X‬‬
‫‪Prr [Asi ] = 1 −‬‬
‫‪i=1‬‬
‫‪m‬‬
‫‪X‬‬
‫‪i‬‬
‫‪Asi ≥ 1 −‬‬
‫[‪h‬‬
‫‪= 1 − Prr‬‬
‫‪i=1‬‬
‫‪m‬‬
‫‪X‬‬
‫‪1‬‬
‫‪m‬‬
‫‪2‬‬
‫‪=1−‬‬
‫=‬
‫‪3m‬‬
‫‪3‬‬
‫‪i=1 3m‬‬
‫‪≥1−‬‬
‫ולכן הוכחנו את טענה ‪.2‬‬
‫לכן‪ ,‬סה"כ קיבלנו כי ש‪ .BPP ⊆ Σ2 -‬כדי להראות ש‪ ,BPP ⊆ Σ2 ∩Π2 -‬נשים לב כי ‪ A ∈ BPP‬גורר כי ‪,A ∈ BPP‬‬
‫ולכן ‪ A ∈ Σ2‬ולכן ‪ ,A ∈ Π2‬ולכן ‪ ,A ∈ Σ2 ∩ Π2‬ולכן ‪.BPP ⊆ Σ2 ∩ Π2‬‬
‫‪47‬‬