קושי של קירובים - Notes

Transcription

קושי של קירובים - Notes
‫קושי של קירובים‬
‫עפ"י הרצאות של ד"ר גיא קינדלר‬
‫סמסטר א'‪ ,‬תש"ע‬
‫סיכם‪ :‬שיר פלד‪ ,‬באמצעות ‪ LYX‬גרסה ‪1.6.1‬‬
‫תיקונים יתקבלו בברכה בכתובת מייל ‪shirpeled@cs‬‬
‫‪1‬‬
‫מבוא היסטורי‬
‫ישנם שני נושאים שהתפתחו ולבסוף נפגשו ויצרו את הנושא הנ"ל‪:‬‬
‫קושי של בעיות אופטימיזציה )וקירובן(‬
‫בעיית אופטימיזציה היא אוסף של קלטים שמיוצגת ע"י ‪ ,X‬כך שהתשובה היא ‪) S‬מחרוזת( כלשהי‪ .‬בעית האופטימיזציה‬
‫מיוצגת ע"י הצורך למקסם פונקציה כלשהי }⊥{ ∪ ‪ ,f (X, S) → R+‬כך שלכל פתרון נותנים משקל או סימן מיוחד‬
‫המייצג את העובדה ש ‪ S‬כלל אינה פתרון עבור ‪.X‬‬
‫אפשר כמובן גם לבחור בבעיית מינימיזציה‪ ,‬לדוגמה‪ :‬צביעה של גרף‪ X .‬יהיה גרף‪ S .‬תהיה צביעה של הגרף‪ ,‬כך ש‬
‫)‪=f (X, S‬מספר הצבעים ש ‪ S‬משתמשת בהם )אם היא צביעה חוקית ו⊥ אחרת(‪.‬‬
‫בעיה נוספת היא ‪ ,Exact 3 − CN F − SAT‬כאשר הקלט הוא ‪.(x1 ∨ x2 ∨ x3 ) ∧ (x¯1 ∨ x2 ∨ x¯3 ) ∧ ...‬‬
‫מרחב הפתרונות הוא כל ההשמות הבוליאניות למשתנים‪ .‬אם נסמן השמה כלשהי ב ‪ ,I‬אזי נגדיר את פונקציית המשקל‬
‫להיות מספר הסוגריים שערכם ביחס להשמה )‪ f (I, S‬הוא אמת‪.‬‬
‫בעיות נוספות‪ :‬כיסוי קודקודים‪ ,‬כיסוי קבוצות‪ ,‬קבוצה בת"ל ועוד‪...‬‬
‫אפשר לגזור מכל בעיית אופטימיזציה בעיית הכרעה‪ .‬למשל ־ עבור קבוצה בת"ל ־ נבקש עבור גרף נתון לענות על‬
‫השאלה האם עבור ‪ k‬נתון יש קבוצה בלתי תלויה בגודל ‪ .k‬מה שמעניין הוא גם שברוב המקרים זה גם עובד בכיוון‬
‫השני‪ .‬בבעיה הקודמת למשל ־ נשאל את שאלת ההכרעה עבור ‪ .k = 1, 2, 3, ...‬שאלה נוספת היא איך ניתן למצוא‬
‫קבוצה בלתי תלויה מסויימת בגודל ‪ k‬־ וגם לכך יש אלגוריתם פשוט )היה בקורס אלגוריתמים(‪.‬‬
‫הגדרה ‪ 1.1‬קירוב ‪ α‬לבעיית מקסימיזציה ) ‪ :f ( ,‬אלגוריתם אשר בהנתן קלט ‪ I‬מוצא ‪ S‬כך ש־ · ‪f (I, S) ≥ α‬‬
‫)‪ ,max f (I, S‬וקירוב ‪ α‬לבעית מינימיזציה מוגדר ע"י )‪.f (I, S) ≤ α1 · min f (I, S‬‬
‫‪S‬‬
‫‪S‬‬
‫מאוחר יותר הוגדרה המחלקה ‪ N P‬ע"י ‪ Cook‬ו ‪ ,Levin‬והם הראו שקיימת בעיה שלמה ב ‪ N P‬והיא ‪E3 − :‬‬
‫‪ .CN F − SAT‬עד היום רוב בעיות האופטימיזציה נמצאות ב ‪ .N P‬התוצאה היתה די אזוטרית‪ ,‬עד שהוכיח ‪Karp‬‬
‫שיש אוסף אדיר של בעיות שגם הן ‪ N P‬שלמות‪ :‬כיסוי קבוצות‪ ,‬כיסוי קודקודים‪ ,‬חיתוך מקסימלי בגרף‪ ,‬צביעה‪ ,‬ועוד‪...‬‬
‫עד תחילת השמונים עיקר העיסוק היה לנסות להוכיח ש ‪ P ̸= N P‬ומאידך להוכיח שבעיות מסוימות הן ‪N P‬‬
‫קשות‪ .‬הנסיון להוכיח ש ‪ P ̸= N P‬לא נשא פרי עד היום‪ ,‬וגם הרדוקציות הפכו להיות די סטנדרטיות‪ .‬החל משנות‬
‫השמונים הכיוון היה למצוא קירובים עבור בעיות ‪N P‬־קשות‪ .‬אחת התוצאות הראשונות )מ ‪ (76‬בענף הקירובים היא‬
‫שדי קל למצוא ‪ 2‬־ קירוב לבעיית ‪) M ax − cut‬למצוא חתך מקסימלי בגרף ממושקל לא־מכוון(‪ .‬בשנת ‪ 94‬מצאו‬
‫‪ Goemans‬ו ‪ W illiamson‬מצאו קירוב ‪ 0.878...‬לבעיית החיתוך המקסימלי ע"י שיכון הגרף ב ‪ Rn‬ומציאת פתרון‬
‫גיאומטרי‪ ,‬ועד היום לא הצליחו לשפר את הקירוב הזה ואף לא להגיע לאותו קירוב באמצעים שאינם גיאומטריים‪.‬‬
‫נזכיר את בעיית ה ‪ ,E3 − CN F − SAT‬שאותה ניתן לקרב ע"י השמה רנדומית‪ .‬מכיוון שעבור שלושה ליטרלים‬
‫המשורשרים ע"י ∨ יש רק השמה אחת שנותנת ‪ ,F alse‬בתוחלת נקבל קירוב של ‪) 78‬יש ‪ 8‬השמות אפשריות(‪ .‬יש עם‬
‫זה כמה בעיות ־ השימוש ברנדומיות ומאידך ההסתמכות על תוחלת‪.‬‬
‫אם משלבים את הרעיון של חלוקה למחלקות סיבוכיות עם הרעיון של קירובי בעיות אופטימיזציה אפשר לשאול ־‬
‫אולי ניתן להראות שקירוב של יותר מ ‪ 78‬לבעיה האחרונה הוא בעיה ‪ N P‬קשה? מסתבר שהטכניקות שהיו לנו קודם‬
‫לכן ־ לא טובות לשם כך‪.‬‬
‫‪1‬‬
‫‪) P CP − T heorem‬הוכחות ניתנות לווידוא הסתברותי‪ ,‬הוכח בשנת ‪(92‬‬
‫הגיע מתחום אחר לגמרי של עיסוק ־ של העברת מידע והצפנה ומתישהו בשנות התשעים הסתבר שיש קשר בין הדברים‪.‬‬
‫‪ Cook‬הבחין בכך )במאמרו המקורי על בעיות ‪ (N P‬שבעיות ‪ N P‬מגלמות בתוכן הוכחות לטענות מתמטיות שניתן‬
‫לוודא בזמן פולינומי‪ .‬נניח ש ‪ I‬הטענה ויש מקום של ‪ n‬ביטים להוכחה‪ Cook .‬הראה שניתן לתרגם את הטענה‬
‫למערכת ‪ n − CN F − SAT‬שהיא ספיקה אם"ם הטענה נכונה‪.‬‬
‫הגדרה ‪ IP 1.2‬־ פרוטוקול אינטראקטיבי‪ ,‬שבו ה ‪ V erif ier‬מנסה לוודא טענה של ה ‪ .P rover‬למשל ־ המוכיח‬
‫מנסה להראות שיש לו אסטרטגיה מנצחת עבור משחק כלשהו‪ .‬נרצה שהפרוטוקול יהיה כזה שבסיום הבדיקה‪ ,‬אם יש‬
‫אסטרטגיה מנצחת אז בהסתברות ‪ 32‬המוודא יווכח בכך‪ ,‬ואם אין ־ אז בהסתברות של ‪ 32‬המוודא יעלה על השקר‪.‬‬
‫מסתבר שאם מוסיפים ל ‪ V erif ier‬גם כוח של רנדומיות ־ זה ניתן‪.‬‬
‫‪ ZK‬־ הוכחות אפס מידע‪ .‬הרעיון הוא דומה ל ‪ IP‬אלא שהמוודא ישתכנע בוודאות גבוהה אם יש אסטרטגיה‬
‫מנצחת‪ ,‬אבל הוא לא יקבל מכך שום מידע מהי האסטרטגיה המנצחת הזו‪.‬‬
‫‪ AM‬־ ארתור ומרילין במקום מוודא ומוכיח‪ ,‬וכל השאר דומה מלבד העובדה שמקור הרנדומיות הוא משותף‬
‫לארתור ומרילין‪ ,‬ומסתבר שזה בדיוק שקול ל ‪. IP‬‬
‫בהמשך הוכח )ע"י שמיר( ש ‪ IP = P SP ACE‬ומאידך )הראו אחרים( כי ‪) ∃A : Co − N P A * IP A‬כאן העלאה‬
‫בחזקה משמעו הנחת אורקל לשפה ‪ .(A‬ואחריו הראו ש ‪ M IP ) M IP = N EXP‬היא המחלקה שבה יש מספר‬
‫‪ P rovers‬שאינם יכולים לתאם ביניהם ולכן זה מוסיף כוח כי המוודא יכול לשאול אותם ולהשוות(‪.‬‬
‫נשאלה השאלה האם אפשר להגביל את הפרוטוקולים ב ‪ M IP‬ולקבל משהו ששקול ל ‪ ?N P‬למה זה יתכן? כי‬
‫אם בזמן פולינומי אפשר בהסתברות ‪ 32‬לוודא בעיה ענקית שהיא ב ‪ N EXP‬־ אז אולי אפשר באמצעים דומים לקבל‬
‫קירוב הסתברותי לווידוא של בעיה ב ‪ ,N P‬שהיא יותר פשוטה מן הסתם‪.‬‬
‫הגדרה ‪P CP [r (n) , q (n)] 1.3‬‬
‫נתונה הוכחה באורך ‪ .n‬פרוטוקול לבדיקת נכונות ההוכחה הוא ב ])‪ P CP [r (n) , q (n‬אם מתקיימים התנאים‬
‫הבאים‪:‬‬
‫‪ .1‬רץ בזמן פולינומי ב ‪n‬‬
‫‪ .2‬משתמש לכל היותר ב )‪ r (n‬הגרלות של ביטים רנדומיים‬
‫‪ .3‬קורא לכל היותר )‪ q (n‬ביטים מתוך ההוכחה‬
‫‪ .4‬אם הטענה נכונה וגם ההוכחה נכונה אזי‬
‫‪P r (P rotocol accepts) = 1‬‬
‫‪ .5‬אם הטענה אינה נכונה אזי‬
‫‪1‬‬
‫‪3‬‬
‫≤ )‪P r (P rotocol accepts‬‬
‫ב ‪ 91‬הוכיחו )פייגה‪ ,‬גולדרייך‪ ,‬לובאץ' וספרא( כי לכל שפה ב ‪ N P‬יש‪:‬‬
‫)‪f (n) = log (n) · log log (n‬‬
‫כך שהשפה שייכת ל ])‪.P CP [f (n) , f (n‬‬
‫הראו שנובע שלכל קבוע ‪ ,c‬אם יש אלגוריתם המבטיח ‪c‬־קירוב לבעיית ה ‪ M ax−Clique‬בזמן פולינומי‪,‬‬
‫]ומכאן הם [‬
‫אזי )‪ .N P ⊆ T IM E nlog log(n‬בדיעבד ־ זה המאמר שגרר את ההתפתחות של תחום המחקר של קושי חישובי‪.‬‬
‫משפט ‪.N P = P CP (log (n) , 1) 1.4‬‬
‫כלומר יש הוכחה וטענה ששתיהן יחד באורך ‪ m‬־ המוכיח מתרגם את ההוכחה למשהו באורך ‪ n‬בפורמט מוסכם‪ ,‬כך‬
‫שאורך התרגום הוא לא יותר מפולינומי ב ‪ .m‬אפשר לקרוא מספר קבוע של ביטים )תוך הגרלת )‪ log (n‬ביטים( ולקבוע‬
‫בוודאות מסויימת האם ההוכחה נכונה או לא‪ .‬יש שיפורים כך שהאורך של ‪ n‬יהיה בסדר גודל של ))‪.m · poly (log (m‬‬
‫‪2‬‬
‫קושי של בעיות קירוב ו ‪P CP‬‬
‫הגדרה ‪ 2.1‬בעיית אופטימיזציה ‪ ,f (I, S) → R+ ∪ {⊥} :‬בהנתן ‪ I‬מצא ‪ S‬כך ש ‪ f‬מקסימלית‪.‬‬
‫קירוב ‪ α‬־ מצא ‪ S‬כך ש־ )‪f (I, S) ≥ α · maxS f (I, S‬‬
‫הגדרה ‪ 2.2‬המחלקה ‪ N P O‬היא מחלקת בעיות האופטימיזציה עבורן כל פתרון פיזיבילי ‪ S‬הוא באורך פולינומי ב |‪,|I‬‬
‫וכן )‪ f (I, S‬ניתנת לחישוב בזמן פולינומי‪.‬‬
‫מעכשיו כשנאמר "בעיית אופטימיזציה" נתכוון לבעיה ב ‪.N P O‬‬
‫איך נראה שבעיה היא ‪ N P O‬קשה? כלומר קשה לקירוב?‬
‫)‪IS(G‬‬
‫‪ α (G) = max‬וננסה לסדר את כל‬
‫נסתכל על בעיית הקבוצה הבלתי תלויה בגרף‪ .‬נגדיר לכל גרף ‪ G‬את‬
‫|)‪|V (G‬‬
‫‪1‬‬
‫‪2‬‬
‫הגרפים בעולם בתוך עיגול‪ ,‬שבשלישו העליון נמצאים כל הגרפים המקיימים ‪ α (G) ≥ 3‬ובשלישו התחתון ‪.α (G) ≤ 3‬‬
‫באופן דומה נתבונן בבעיית ה ‪ ,E3SAT‬ונגדיר את )‪ S (I‬להיות מספר ההסגרים הספיקים המקסימלי לחלק‬
‫למספר ההסגרים‪ ,‬כלומר החלק היחסי של ההסגרים הספיקים ע"י השמה מיטבית‪ .‬שוב נפזר בתוך עיגול את כל‬
‫הבעיות ‪ ,E3SAT‬כאשר בחלק העליון נשים את ‪ S (I) = 1‬ומתחתיו כל השאר‪ .‬אנחנו יודעים שלהכריע האם בעיה‬
‫מסויימת ב ‪ E3SAT‬היא בחלק העליון או בשאר העיגול זה ‪.N P − Hard‬‬
‫כעת היינו רוצים רדוקציה פולינומית שתהיה לה התכונה הבאה ־ את החלק העליון של ‪ E3SAT‬נמפה לשליש‬
‫העליון של העיגול של הגרפים‪ ,‬ואת שאר העיגול ־ לשליש התחתון של עיגול הגרפים‪ .‬אם היתה לנו רדוקציה כזו ־‬
‫היינו מקבלים שבעיית ‪ IS‬הוא ‪ N P − Hard‬לקירוב עד כדי פקטור ‪.2‬‬
‫הגדרה ‪ 2.3‬בעיית הפער ‪− gap IS‬‬
‫)‬
‫‪(2‬‬
‫‪1‬‬
‫‪3, 3‬‬
‫‪ :‬יש להכריע בין המקרים‬
‫‪2‬‬
‫‪3‬‬
‫≥ )‪ α (G‬ו‬
‫‪1‬‬
‫‪3‬‬
‫≤ )‪.α (G‬‬
‫‪.‬‬
‫הגדרה ‪ 2.4‬בעיית פער )‪ (α, β‬היא ‪N P‬־שלמה אם בעיית האופטימיזציה המתאימה היא ב ‪ N P O‬ויש רדוקציה מ‬
‫‪ 3SAT‬אליה כך ש‪:‬‬
‫‪ .1‬הרדוקציה ‪ R‬רצה בזמן פולינומי‬
‫‪ .2‬עבור קלט ספיק ‪ I‬מתקיים ‪OP T (R (I)) ≥ α‬‬
‫‪ .3‬עבור קלט לא־ספיק ‪ I‬מתקיים ‪OP T (R (I)) ≤ β‬‬
‫הערה ‪ 2.5‬אם ‪ f‬היא בעיית אופטימיזציה ב ‪ N P O‬ו ‪ (α, β) − gap f‬היא ‪N P‬־שלמה אז זה ‪N P‬־קשה לקרב את ‪f‬‬
‫‪β‬‬
‫‪.α‬‬
‫כדי פקטור‬
‫נפעיל עיקרון דומה לגבי בעיות צביעה‪ .‬ידוע שההכרעה האם גרף הוא ‪ 3‬־ צביע היא קשה‪ ,‬ולכן נוכל לבנות עיגול‬
‫)או אליפסה כמו קודם( שבחלקה העליון יהיו הגרפים שהם ‪ 3‬־צביעים או פחות מכך‪ ,‬ובחלקה התחתון הגרפים שהם‬
‫לפחות ‪4‬־צביעים‪ .‬מכאן נקבל ש ‪ (3, 4) − gap coloring‬היא ‪N P‬־שלמה‪.‬‬
‫‪3‬‬
‫)‪( 1‬‬
‫‪ 1, m‬היא ‪ N P‬שלמה )כאשר ‪ m‬מספר ההסגרים( אבל זה טיפשי כמובן‪ ,‬כי זו‬
‫הערה ‪ 2.6‬כמו כן ‪− gap 3SAT‬‬
‫דרך אחרת להגיד)ספיק או(לא ספיק‪.‬‬
‫‪) n, 106 n − gap T SP‬סוכן נוסע( היא ‪ N P‬קשה‪ .‬נשנה קצת את ההגדרה ל"צריך לבקר בכל קודקוד פעם‬
‫אחת בדיוק במחיר מינימלי"‪ .‬נעשה את הרדוקציה המוכרת מ ‪ 3SAT‬לבעיית מציאת המילטוניאן בגרף‪ ,‬וניתן לכל‬
‫הקשתות שמשתתפות בגרף משקל ‪ 1‬ולכל הקשתות האחרות מחיר ‪.106 n‬‬
‫נשים לב שהרדוקציות שאנחנו מכירים עבור בעיות הכרעה מסתמכות על העתקות מקומיות )ליטרלים ב ‪3SAT‬‬
‫הופכים לקודקודים בבעיית ‪ (IS‬ולכן אם יש רק ביט אחד שמקלקל )למשל הסגר יחיד שלא מסתפק בשום השמה( ־‬
‫יש רק ביט קטן בצד השני של הרדוקציה )רק שלושה קודקודים( שמשקף את זה‪ ,‬ולכן אותן שיטות לא עובדות עבור‬
‫רדוקציות של בעיות פער‪.‬‬
‫‪ E3SAT‬בניסוח(הפער )‪ ,(1, 1 − ε‬אז נפעיל רדוקציה מוכרת ל ‪) IS‬ליטרלים עוברים לקודקודים‬
‫נניח שבידינו בעיית )‬
‫וכו'( ונקבל ‪ . 13 , 13 (1 − ε) − gap IS‬עבור ‪ ε = n1‬זה קל ומקבלים חסם קצת טיפשי‪ ,‬אבל בהמשך זה יהיה שימושי‪.‬‬
‫נזכיר בעיית )‪ V C (G‬־ כיסוי קודקודים בגרף‪ ,‬גודל כיסוי הקודקודים המינימלי כך שכל צלע מכוסה לפחות ע"י‬
‫מקודקודיה‪ .‬נזכיר (שכיסוי קודקודים ו ‪ IS‬הן בעיות משלימות‪ ,‬ולכן כמובן יש רדוקציה מ ‪ E3SAT‬והפער‬
‫אחד‬
‫)‬
‫המתאים יהיה ‪. 23 , 32 + 3ε‬‬
‫הערה ‪ 2.7‬בעיית אופטימיזציה תלויה בפונקציה שנותנת משקל לפתרונות‪ .‬לאותה בעיה אפשר לתת פונקציות שונות‬
‫ולכן צריך לשים לב שההגדרה של הבעיה היא טבעית וטובה‪.‬‬
‫הגדרה ‪ 2.8‬פרוטוקול ])‪ P CP na [r (n) , q (n‬עבור שפה ‪ ,L‬הוא אלגוריתם אשר מקבל קלט ‪ I‬באורך ‪ ,n‬מחרוזת‬
‫אקראית באורך )‪ ,r (n‬וגישה לפונקציית אוב ∆ )על שם בעלת האוב מעין דור(‪.‬‬
‫‪ .1‬בוחר )‪ q (n‬שאילתות לפונקציית האוב‬
‫‪ .2‬מקבל לכל היותר )‪ q (n‬תשובות )ביט לכל תשובה(‬
‫‪ .3‬עפ"י התשובות הוא מקבל או דוחה‪.‬‬
‫בנוסף‪:‬‬
‫• אם ‪ I ∈ L‬אז קיימת ∆ כך ש ‪P r [A (I) = accept] = 1‬‬
‫• אם ‪ I ̸= L‬אז לכל ∆ מתקיים‬
‫‪1‬‬
‫‪3‬‬
‫≤ ]‪P r [A (I) = accept‬‬
‫הערה ‪ na 2.9‬בשם הפרוטוקול משמעה שהוא אינו סתגלני‪ ,‬לכן קודם בחירת השאילתות ואז קבלת התשובות ולא‬
‫שליחת שאילתה ואז קבלת החלטה לגבי המשך השאילתות על סמך התשובה‪.‬‬
‫הגדרה ‪ = P CP na [r, q] 2.10‬מחלקת כל השפות שיש עבורן פרוטוקול כנ"ל‪.‬‬
‫משפט ‪:BF L 2.11‬‬
‫])‪N EXP = P CP na [poly (n) , poly (n‬‬
‫משפט ‪:P CP 2.12‬‬
‫]‪N P ⊆ P CP na [log (n) , 1‬‬
‫בהנתן קלט זה אומר שאם מספר הביטים המוגרלים הוא )‪ log (n‬אז יש בעצם )‪ poly (n‬התנהגויות אפשריות‬
‫לאלגוריתם‪.‬‬
‫טענה ‪2.13‬‬
‫‪P CP na [log (n) , 1] ⊆ P CP na [log n, poly {n}] ⊆ N P‬‬
‫‪.‬‬
‫טענה ‪ 2.14‬יש ‪ ε‬כך ש ‪ (1, 1 − ε) − gap E3SAT‬היא ‪N P‬־שלמה‪.‬‬
‫הוכחה‪ :‬לטענה הראשונה ־ ההכלה הראשונה פשוטה‪ .‬מדוע זה מוכל ב ‪ ?N P‬מכיוון שרצף הביטים המוגרל קובע‬
‫באופן יחיד את המשך הפרוטוקול ־ אפשר פשוט להריץ את הפרוטוקול על כל הרצפים האפשריים של ביטים )זה‬
‫פולינומיאלי( ‪ ,‬ואם ‪ I‬הוא השמה מספקת ־ נקבל בכולם שהאלגוריתם יקבל‪ ,‬ואחרת ־ נקבל שהאלגוריתם דחה בחלק‬
‫מהפעמים‪.‬‬
‫טענה ‪ 2.15‬תרגיל לבית‪ :‬בהנחה ש ‪ ,P ̸= N P‬להראות ש ]‪ N P * P CP na [r, 1‬אם ))‪ ,r (n) = o (log (n‬כלומר‬
‫הלוגריתם במשפט ה ‪ P CP‬הוא הדוק‪.‬‬
‫הגדרה ‪ 2.16‬עבור קבוע ‪ ,q‬בעיית האופטימיזציה ‪ q − csp‬מוגדרת כך‪:‬‬
‫• הקלט ‪ I‬הוא אוסף פרדיקטים בוליאנים על ‪ q‬משתנים בוליאנים‪.‬‬
‫• פונקציית המטרה‪ :‬בהנתן קלט והשמה למשתנים‪ ,‬הפונקציה מחזירה את החלק היחסי של הפרדיקטים‬
‫המסופקים‪.‬‬
‫משפט ‪ q − csp 2.17‬כבעיית פער היא ‪ N P‬קשה )עבור ‪ q‬כלשהו(‪.‬‬
‫הוכחה‪ :‬במקום להסתמך על פונקציית אוב‪ ,‬נאמר שכל הפלטים שהפונקציה יכולה לתת הם )‪, X1 , X2 , ..., Xpoly(n‬‬
‫כל אחד באורך ביט‪ ,‬מדוע? כי יש )‪ poly (n‬פרמוטציות אפשריות למחרוזת האקראית)=השאלה המופנית לפונקציית‬
‫= )‪ ,O (1‬הפרוטוקול(יבחר לפי המחרוזת‬
‫האוב(‪ ,‬ופונקציית האוב היא חד ערכית‪ .‬בהנתן ‪ I‬ומחרוזת אקראית באורך ‪) q‬‬
‫אילו מהביטים של פונקציית האוב הוא בודק‪ ,‬ועליהם נגדיר פרדיקט בוליאני ‪ P Xk1 , Xk2 , ..., Xkq‬אשר נותן אמת‬
‫אם הפרוטוקול מקבל‪ .‬נקבל שאנחנו מייצרים )‪ poly (n‬פסוקיות שבכל אחת ‪ q‬ליטרלים‪ .‬לפי תכונות ‪P CP‬מובטח‬
‫שאם ‪ I‬ספיקה אז ‪ q − csp‬ניתנת לסיפוק מלא‪ ,‬ואחרת ־ בפחות משליש מהפסוקיות‪ ,‬ולכן קיבלנו בעיית פער על‬
‫‪ q − csp‬שמהווה את הרדוקציה הדרוש‪.‬‬
‫‪ 3‬המשך ‪P CP‬‬
‫הערה ‪ 3.1‬קיבלנו את המשפט הקודם כתוצאה של משפט ה ‪ ,P CP‬אבל אם היה נתון לנו המשפט הקודם ־ ניתן‬
‫משפט ה ‪ .P CP‬מדוע? נניח שהמשפט הקודם נכון‪ ,‬ולכן לכל ‪ ,L ∈ N P‬יש רדוקציה של ‪ L‬לבעיית הפער‬
‫את‬
‫(‬
‫להסיק )‬
‫‪ . 1, 31 q − csp‬נראה ש ]‪ .L ∈ P CP [log (n) , 1‬תהי ‪ I‬בעיית הכרעה )כלומר נוסחה ספציפית(‪ ,‬אז )‪ R (I‬היא‬
‫הבעיה ב ‪ q − csp‬אחרי הפעלת הרדוקציה‪ .‬נבקש שהאורקל שלנו יענה על שאלות שהן "מהי ההשמה למשתנה ה־‪i‬‬
‫בנוסחה )‪ ."R (I‬הפרוטוקול יהיה כדלהלן‪:‬‬
‫‪ .1‬בחר הסגר אקראי‪.‬‬
‫‪ .2‬שאל מה ערכי המשתנים בהסגר הזה‪.‬‬
‫‪ .3‬נקבל אם"ם ההסגר מסתפק‪.‬‬
‫אם ‪ I ∈ L‬אז )‪ R (I‬ספיקה ולכל הסגר שנבחר ־ ההסגר ספיק והשמתו תינתן על ידי האורקל‪ ,‬ולכן נקבל‪.‬‬
‫אם ‪/ L‬‬
‫∈ ‪ I‬אז )‪ R (I‬לכל היותר ‪ 13‬־ספיקה‪ ,‬ולכן אם נבחר הסגר באקראי‪" ,‬ניפול" על הסגר ספיק בהסתברות ‪, 31‬‬
‫וזה המקרה היחיד שבו נטעה‪ ,‬ולכן נקבל בהסתברות קטנה מ ‪. 13‬‬
‫משפט ‪ 3.2‬לכל ‪ s > 0‬מתקיים שבעיית הפער ‪ (1, s) q − csp‬היא ‪N P‬־שלמה )עבור ‪ q‬קבוע שאולי תלוי ב ‪.(s‬‬
‫‪5‬‬
‫‪na‬‬
‫‪ P CPc,s‬כאשר ‪ c‬היא פרמטר השלמות )‪ (completeness‬ונאותות )‪ .(soundness‬כלומר עד כה‬
‫הגדרה ‪[r, q] 3.3‬‬
‫דיברנו על ]‪.P CP1,na1 [r, q‬‬
‫‪3‬‬
‫למה ‪ P CPc,s [r, q] ⊆ P CPc2 ,s2 [2r, 2q] 3.4‬־ ‪Hardness amplif ication‬‬
‫הוכחה‪ :‬מפעילים את הפרוטוקול פעמיים ונקבל אם"ם הפרוטוקול קיבל בשתי הפעמים‪ ,‬ומכיוון שהמאורעות בלתי‬
‫תלויים ־ ההסתברויות נכפלות‪.‬‬
‫זה כמובן נכון באופן כללי‪ ,‬ולכן אם התחלנו עם ‪ ,c = 1‬אז ניתן לחזור על הפרוטוקול מספר פעמים גדול כרצוננו )אך‬
‫קבוע( וכך לקבל ‪ s‬קטן כרצוננו מבלי לגרוע מ ‪.c‬‬
‫מכאן נובעת הוכחת המשפט ־ בהוכחת המשפט המקורי הוכחנו עבור שלמות ‪ 1‬ונאותות ‪ , 31‬כאשר הסתמכנו על ‪q‬‬
‫שאילתות לאורקל )כאן זהו אותו ‪ q‬מה ‪ (q − csp‬ולכן הקטנת הנאותות תבוא במחיר של הגדלת ‪.q‬‬
‫משפט ‪ 3.5‬קיים ‪ ε‬קבוע כך שבעיית הפער ‪ (1, 1 − ε) E3 − CN F − SAT‬היא ‪ N P‬שלמה‪.‬‬
‫הוכחה‪ :‬אנחנו רוצים רדוקציה שלוקחת בעיות מ ‪ q − csp‬שהן ספיקות לבעיות ספיקות ב ‪,3 − CN F − SAT‬‬
‫ובעיות שהן פחות מ ‪ 31‬ספיקות ־ ממירה לבעיות שהן פחות מ ‪ 1 − ε‬ספיקות‪ .‬ננסה להמיר בעיה מ ‪ q − csp‬לבעיית‬
‫‪ 3 − CN‬בדרך הנאיבית ביותר ונקווה שזה יעזור‪ .‬למשל ניקח את הפרדיקט ה ‪) i‬שפועל על ‪ q‬משתנים(‪:‬‬
‫)‪( F − SAT‬‬
‫‪ Pi xi1 , ..., xiq‬ונמיר אותו‪ ,‬ע"י פונקציה ‪ G‬לנוסחת ‪ .3 − CN F − SAT‬מה צריכה ‪ G‬לקיים?‬
‫ראשית כל ש ‪ 1 ≤ |G (Pi )| ≤ c‬עבור ‪ c‬קבוע כלשהו‪.‬‬
‫שנית ־ אם השמה ‪ A‬מספקת את ‪ Pi‬אז קיימת השמה מספקת ‪e‬‬
‫‪ A‬ל ) ‪ ,G (Pi‬שהיא הרחבה של ‪ .A‬כלומר ־ יכול‬
‫להיות שבתהליך המעבר יצרנו משתנים חדשים‪ ,‬אבל אנחנו רוצים שהשמה מספקת ל ‪ Pi‬תיתרגם להשמה מספקת ל‬
‫) ‪ G (Pi‬שמסכימה ממש עם ‪ Pi‬על כל המשתנים ב ‪.Pi‬‬
‫‪e‬‬
‫שלישית ־ אם ‪ A‬אינה מספקת את ‪ ,Pi‬אז כל הרחבה של ‪ A‬להשמה ל ‪ A‬למשתני ) ‪ G (Pi‬לא תספק את ) ‪.G (Pi‬‬
‫שלוש התכונות הנ"ל אז הפעלת ‪ G‬על בעיה נתונה מהסוג ‪ ,q − csp‬מספקת את הרדוקציה‬
‫את (‬
‫נשים לב שאם ל ‪ G‬יש )‬
‫‪2‬‬
‫‪.ε = 3c‬‬
‫מבעיית הפער ‪ 1, 13 q − csp‬לבעיית הפער ‪ (1, 1 − ε) E3 − SAT‬עבור‬
‫לתרגם נוסחה ספיקה מ ‪ q − csp‬לנוסחה ב ‪ E3 − SAT‬שהספיקות שלהם שקולה זה לא קשה‪ .‬הבעיה היא להתמודד‬
‫עם הנוסחאות שהן ספיקות באופן חלקי‪ ,‬או בפרט ־ פחות מ ‪ 1‬ספיקות‪ .‬תהי ‪e‬‬
‫‪ A‬השמה לנוסחה )‪ G (I‬ונניח ש ‪ I‬היא‬
‫‪3‬‬
‫‪1‬‬
‫פחות מ ‪ 1‬ספיקה‪ .‬נתבונן ב ‪e‬‬
‫‪ A‬מצומצמת למשתני ‪ ,I‬נקרא לזה השמה ‪ .A‬ידוע לנו שזה מספק פחות מ ‪ 3‬מההסגרים‪,‬‬
‫‪3‬‬
‫‪2‬‬
‫כלומר היא אינה מספקת לפחות ‪ 3‬מההסגרים‪ ,‬ולכן אם נסתכל על האופן שבו ‪ G‬תרגמה את ההסגרים הללו )כל אחד‬
‫תורגם ללכל היותר ‪ c‬הסגרים( אזי כל אחד מהם )לפי דרישה ‪ (3‬הוסיף לנו הסגר אחד שאינו מסתפק ב ‪e‬‬
‫‪ ,A‬כלומר יש‬
‫‪2‬‬
‫‪ 1 − 3c‬ספיקה‪.‬‬
‫לפחות ‪ 23 · 1c‬הסגרים שאינם מסתפקים בנוסחה המתורגמת‪ ,‬כלומר הנוסחה היא לכל היותר‬
‫נותר להראות ‪ G‬שמבטיחה את שלושת התנאים‪.‬‬
‫לכל ‪ Pi‬נתחיל בלהציג את ‪ Pi‬ע"י נוסחת ‪ ,q − CN F‬כלומר ע"י נוסחה מהסוג‪:‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪‬‬
‫‪‬‬
‫‪... ∨ ... ∨ ... ∨ ... ∧ ... ∨ ... ∨ ... ∨ ... ∧ ... ∨ ... ∨ ... ∨ ... ∧ ...‬‬
‫‪{z‬‬
‫}‬
‫‪{z‬‬
‫}‬
‫‪{z‬‬
‫}‬
‫|‬
‫|‬
‫|‬
‫‪q−variables‬‬
‫‪q−variables‬‬
‫‪q−variables‬‬
‫איך עושים זאת? לכל השמה שאינה מספקת את ‪ Pi‬־ נבנה הסגר שמכיל בדיוק את ההשמה הזו‪.‬‬
‫בשלב הבא נתרגם זאת ל ‪ 3 − CN F‬בדרך אינטואיטיבית שנציג ע" דוגמה‪:‬‬
‫) ‪(x1 ∨ x2 ∨ x3 ∨ x4 ) → (x1 ∨ x2 ∨ xn ) ∧ (x3 ∨ x4 ∨ xn‬‬
‫ובתרגום הראשון שילמנו מחיר של ניפוח ב ‪ 2q‬לכל היותר ובתרגום השני נשלם )בערך( ‪ q‬ולכן נקבל ) ‪.c = O (q · 2q‬‬
‫)‬
‫משפט ‪ 3.6‬בעיית הפער ‪− ε IS‬‬
‫‪(1‬‬
‫‪1‬‬
‫‪3, 3‬‬
‫)קבוצה בת"ל בגרף( היא בעיית ‪N P‬־קשה עבור ‪ ε > 0‬ידוע כלשהו‪.‬‬
‫הוכחה‪ :‬על ידי רדוקציה מ ‪ ,3 − SAT‬כפי שאנחנו כבר מכירים מחישוביות ־ ממירים כל הסגר בשלושה קודקודים‬
‫בגרף הקשורים זה לזה )וכן כל משתנה ושלילתו( ונקבל שיש קבוצה בגודל ‪ 13‬מהגרף שהיא בלתי תלויה אם"ם הנוסחה‬
‫ספיקה‪.‬‬
‫‪6‬‬
‫משפט ‪ 3.7‬לכל ‪ c > 0‬קבוע קיים )‪) β (c‬קבוע שתלוי ב ‪ (c‬כך שבעיית הפער ‪ (β, c · β) − IS‬היא ‪ N P‬שלמה‪.‬‬
‫הגדרה ‪ 3.8‬בהנתן שני גרפים לא מכוונים ‪ G, H‬נגדיר את המכפלה שלהם ‪ G × H‬ע"י‪:‬‬
‫}‪V (G × H) = {(u, v) : u ∈ G, v ∈ H‬‬
‫)‪((u1 , v1 ) , (u2 , v2 ) ∈ E (G × H)) ⇔ (u1 , u2 ) ∈ E (G) ∨ (v1 , v2 ) ∈ E (H‬‬
‫)‪max size of IS (G‬‬
‫|)‪|V (G‬‬
‫= )‪α (G‬‬
‫למה ‪3.9‬‬
‫)‪α (G × H) ≥ α (G) · α (H‬‬
‫הוכחה‪ :‬ניקח את ‪ S, T‬להיות קבוצות בת"ל מקסימליות ב ‪ G, H‬בהתאמה‪ .‬נתבונן בקבוצת הקודקודים ב ‪G × H‬‬
‫הנתונה ע"י ‪ ,S × T‬ושם לכל ) ‪ (u1 , v1‬ו ) ‪ (u2 , v2‬אין צלעות ביניהן )מאי התלות של הקבוצות בגרפים המקוריים( ולכן‬
‫זו קבוצה תלויה ב ‪ G × H‬שהיא ממש בגודל מכפלת הקבוצות התלויות‪ ,‬עם זאת ־ מכפלת הגרפים הטנזורית היא לכל‬
‫היותר בגודל המכפלה שלהם כקבוצות‪ ,‬ולכן הלמה‪.‬‬
‫למה ‪3.10‬‬
‫)‪α (G × H) ≤ α (G) · α (H‬‬
‫הוכחה‪ :‬תהי )‪ U ⊆ V (G × H‬ונניח |)‪ |U | > α (G) · α (H) · |V (G × H‬ויהיו ‪ S, T‬ההיטלים של ‪ U‬על קודקודי‬
‫‪ G, H‬בהתאמה )בנפרד(‪ .‬נובע או ש‬
‫|)‪|S| > α (G) · |V (G‬‬
‫או‬
‫|)‪|T | > α (H) · |V (H‬‬
‫ולכן ‪ S‬או ‪ T‬אינן בלתי תלויות‪ ,‬ומכאן ‪ U‬בלתי תלויה )כי במקום שבו ל ‪ S‬או ל ‪ T‬תהיה צלע ־ תיווצר צלע גם ב ‪(U‬‬
‫ולכן‬
‫)‪α (G × H) ≤ α (G) · α (H‬‬
‫מסקנה ‪3.11‬‬
‫)‪α (G × H) = α (G) · α (H‬‬
‫מדוע זה מוכיח את המשפט? כי בהנתן גרף ־ ניצור את המכפלה הטנזורית שלו עם עצמו‪ ,‬ונשאל את אותה שאלה‪,‬‬
‫וכאן החלק היחסי של הקבוצה הבלתי תלויה הוא ריבוע החלק שהיה‪ ,‬ולכן אם היתה קבוצה בת"ל קטנה מ ‪, 31 − ε‬‬
‫(‬
‫‪)2‬‬
‫עכשיו היא‬
‫מ ‪ , 31 − ε‬ובאופן דומה לקבוצה בת"ל גדולה מ ‪ . 13‬נפעיל זאת ‪ k‬פעמים ונקבל בעיית פער‬
‫קטנה((‬
‫‪) (1‬‬
‫) ‪)k‬‬
‫‪1 k‬‬
‫‪ . 3 , 3 − ε‬מכאן נובע שנוכל להקטין את הפער כרצוננו‪ .‬נשים לב שההקטנה כאן היא רק ההקטנה של‬
‫היחס בין החסמים‪ ,‬אבל למעשה שניהם קטנים מאד‪ .‬מעניין גם לציין שאם מסתכלים על הבעיה המשלימה ־ היכולת‬
‫שלנו לקרב דווקא נפגעת מהחזרה על הרדוקציה‪.‬‬
‫‪7‬‬
‫‪4‬‬
‫‪P CP‬‬
‫טענה ‪ 4.1‬נזכיר את הבעיה מאחד השיעורים הקודמים‪ P CP1, 31 [r, O (1)] ⊆ P :‬אם )‪.r (n) = o (log n‬‬
‫∩‬
‫הוכחה‪ :‬חלקית ־ נראה ש ) ‪.P CP1, 13 [r, O (1)] ⊆ c>0 N T IM E (nc‬‬
‫אם ])‪ L ∈ P CP1, 31 [r, O (1‬אז ניתן לייצר בזמן פולינומי את ‪ ,A‬פרוטוקול ‪ P CP‬שנבצע כך‪ :‬בהנתן ‪ n‬ביטים‬
‫קלט‪ ,‬ו )‪ r (n‬ביטים מוגרלים‪ ,‬נשאל ‪) c‬קבוע( שאלות את האורקל‪.‬‬
‫בהנתן ‪) I‬קלט( ניצר לכל מחרוזת אקראית ‪ R‬את הפרדיקט הבוליאני ‪ P‬שמורכב מ ‪ c‬שאלות אל האורקל‪ .‬נסמן‬
‫זאת ע"י ))‪.PR (q1 (R) , ..., qc (R‬‬
‫מקבלים בעיית ‪ ,c − csp‬נסמן את קבוצת הפרדיקטים שעשויים להתקבל מהפרוטוקול ‪ A‬על הקלט ‪) I‬לכל ‪R‬‬
‫מחרוזת ביטים אקראית אפשרית( ע"י )‪.A (I‬‬
‫ידוע כי אם ‪ I ∈ L‬אז )‪ A (I‬ספיקה )במובן שכל הפרדיקטים ספיקים ע"י פונקציה מסויימת שמבצעת השמה‬
‫∈ ‪ I‬אז ‪ ,opt (A (I)) ≤ 31‬כלומר ההשמה הכי מוצלחת לא תספק יותר משליש מהפרדיקטים‪ .‬ואז‬
‫למשתנים(‪ ,‬ואם ‪/ L‬‬
‫מתקבל‬
‫[‬
‫]‬
‫‪|A (I)| = 2o(log n) < nδ ∀constant δ > 0‬‬
‫)‪o(log n‬‬
‫‪ ,22‬ונוכל להכריע לגבי השייכות של ‪ I‬ל ‪ .L‬אבל כמובן‬
‫נעבור על כל ההשמות האפשריות ל )‪ ,A (I‬כאלה יש‬
‫מכך ינבע‬
‫∩ ) )‪( o(log n‬‬
‫)‪( δ‬‬
‫‪[o (log n) , O (1)] ⊆ T IM E 22‬‬
‫⊆‬
‫‪T IM E 2n‬‬
‫‪N P ⊆ P CP1, 31‬‬
‫‪δ>0‬‬
‫אבל כיום אנחנו מניחים שקיים ‪ ∃δx‬כך ש‪:‬‬
‫‪δx‬‬
‫‪N P * 2n‬‬
‫אבל בעצם זה לא מוכיח את המבוקש‪ ,‬ננסה להוכיח את הטענה המקורית‪ ,‬והיא ־ שהדבר מוכל ממש ב ‪ .P‬הוכחה‪:‬‬
‫קודם התחלנו מ ‪ L ∈ N P‬כלשהי וקיבלנו רדוקציה ל ‪ ,c − csp‬כאשר אם הקלט היה בגודל ‪ n‬־ הפלט היה בגודל‬
‫)‪ 2o(log n‬שהוא תת־פולינומי לכל פולינום‪ .‬זה נחמד מאד כי אפשר לעשות את הרדוקציה שוב )כי ‪ c − csp‬עצמו ב‬
‫‪(N P‬‬
‫))‪A1 (A (I‬‬
‫→‬
‫}‪|{z‬‬
‫)‪A (I‬‬
‫‪reduction‬‬
‫→‬
‫}‪|{z‬‬
‫‪I‬‬
‫‪reduction‬‬
‫כאשר ))‪ A1 (A (I‬מתקבל מפרוטוקול ‪ P CP‬עם מספר תת־לוגריתמי של ביטים אקראיים על ‪) c − csp‬כי הבטחנו‬
‫ש ‪ ,(P CP1, 31 [o (log n) , 1] ⊆ N P‬כשממשיכים מקבלים )))‪ A1 (A1 (A (I‬כי עכשיו אנחנו כבר מפעילים את אותו‬
‫הפרוטוקול שוב ושוב )זה המתאים ל ‪ ,(c − csp‬ולכן לאחר ‪ k‬הפעלות מתקבל )‪.Ak1 ◦ A (I‬‬
‫)‪o(log n‬‬
‫‪ ,2‬ועבור ‪n‬‬
‫נעיר כי כבר ברדוקציה הראשונה ־ הפלט קטן לפחות בחצי ־ מדוע? כי מקבלים פלט בגודל‬
‫גדול מספיק ־ זה קטן משורש ‪ ,n‬שהוא כמעט תמיד קטן מחצי ‪ ,n‬זה נכון לכל רדוקציה בשרשרת‪ ,‬ולכן אחרי מספר‬
‫לוגריתמי של רדוקציות נקבל בעיית ‪ c − csp‬קטנה מאד‪ ,‬כלומר פרדיקט יחיד שהוא ספיק אם"ם התחלנו עם בעיה‬
‫‪.I ∈ L‬‬
‫נחשב את זמן הריצה של הרדוקציות‪ :‬במקרה הגרוע ביותר ביצענו את הרדוקציה הראשונה ואחריה ‪ log‬פעמים‬
‫את הזמן שנדרש לרדוקציה השניה‪ .‬ולכן אם לרדוקציה הראשונה הזדקקנו לזמן של ‪ ,nj‬ולשניה הזדקקנו ל ‪ nt‬כלשהו‪,‬‬
‫אז בסך הכללי הזדקקנו ל‪:‬‬
‫‪nj + nt log n‬‬
‫וזה פולינומי‪ ,‬מכאן ‪ N P ⊆ P‬כנדרש‪.‬‬
‫נזכיר שפרוטוקול ה ‪ P CP‬הגדיר את פונקציית האורקל }‪ Q) O : Q → {0, 1‬היא קבוצת השאילתות לאורקל(‪,‬‬
‫‪d‬‬
‫אבל אפשר להגדיר }‪ , O : Q → {0, 1‬ואז נסמן‪:‬‬
‫]‪P CPc,s [r, q, d‬‬
‫‪8‬‬
‫עד כה הנחנו ‪ ,d = 1‬וגם בהמשך‪ ,‬אם לא נציין‪ ,‬הכוונה תהיה ‪.d = 1‬‬
‫נשאלת השאלה האם‬
‫])‪N P ⊆ P CP1,1−ε [O (log n) , 1, O (1‬‬
‫?‬
‫נניח שכן‪ ,‬אם זה היה נכון ־ אז היינו מייצרים בעיית ‪ 1 − csp‬בדומה לשאלה הקודמת ופותרים אותה‪ ,‬וזה כמובן‬
‫ב ‪.P‬‬
‫שעורי בית‪:‬‬
‫‪ .1‬הוכח שלכל ‪ ε > 0‬מתקיים ‪:P CP1,1−ε [O (log (n)) , 2, 1] ⊆ P‬‬
‫באופן דומה לשאלה הקודמת‪ ,‬בהנתן בעיה ‪ I‬שיש להכריע האם היא מוכלת בשפה ]‪,L ∈ P CP1,1−ε [O (log n) , 2, 1‬‬
‫נבנה בעיית ‪ 2 − csp‬מכל תשובות האורקל האפשריות‪ ,‬נשים לב שבכל הסגר יש שני ליטרלים )שכל אחד יכול‬
‫להיות אמת‪/‬שקר(‪ ,‬ושמספר ההסגרים הוא ‪ 2r‬כלומר )‪ ,2O(log n) = nO(1‬קיבלנו בעיית ‪ 2 − csp‬באורך שהוא‬
‫פולינומי ב ‪ .n‬מספיק להציג פתרון פולינומי לבעיה זו ונקבל את המבוקש‪ ,‬בכל קירוב שנדרוש )כיוון שאפילו‬
‫אם הסגר אחד יהיה שגוי ־ נתפוס את השגיאה ונשיב בשלילה על השאלה "‪.("?I ∈ L‬‬
‫‪ .2‬הוכח שקיים ‪ ε > 0‬כך ש ]‪N P ⊆ P CP1,1−ε [O (log (n)) , 2, 3‬‬
‫קבוצה בלתי תלויה )‪(I.S.‬‬
‫∈ ‪.I‬‬
‫תהי ]‪ ,L ∈ P CPc,s [r, q‬ויהי ‪ I‬קלט שעלינו להכריע האם ‪ I ∈ L‬או ‪/ L‬‬
‫יהי ‪ P‬פרוטוקול כנ"ל עבור ‪.L‬‬
‫הגדרה ‪ P 4.2‬מייצר ‪ Q1 , ..., Qq‬שאילתות‪ ,‬מתקבל מהאורקל רצף של ‪ q‬ביטים ) ‪ O (Q1 ) , O (Q2 ) , ..., O (Qq‬והפרוטוקול‬
‫מייצר פרדיקט בוליאני שנסמנו‪:‬‬
‫)) ‪PR,I (O (Q1 ) , O (Q2 ) , ..., O (Qq‬‬
‫נאמר שהתהליך שתיארנו הוא רשומון)‪ (transcript‬של הפרוטוקול‪ ,‬ומספר הרשומונים האפשריים הוא לכל היותר‬
‫‪ .2r · 2q‬נאמר שרשומון מקבל אם הפרדיקט נותן ערך אמת‪.‬‬
‫‪.‬‬
‫הגדרה ‪ 4.3‬נאמר ששני רשומונים הם עקביים אם לכל שאילתה שמופיעה בשניהם האורקל משיב באותו האופן‪.‬‬
‫)בעצם כל שני רשומונים של אותו אורקל ־ הם עקביים‪ ,‬נעשה שימוש בעובדה זו בהמשך(‬
‫בהנתן הקלט ‪ ,I‬נוכל לייצר גרף )‪ ,G (I‬שקודקודיו הם קבוצת כל הרשומונים המקבלים וזוג רשומונים ) ‪ (t1 , t2‬מהווה‬
‫צלע אם"ם הזוג הוא בלתי עקבי‪ .‬למעשה נייצר גרף של כל הרשומונים בכלל‪ ,‬אבל נחבר את כל הרשומונים שאינם‬
‫מקבלים זה לזה )נשתמש בזה בהמשך כיוון שהם לא יוכלו להיות חלק משום קבוצה בת"ל( וכך נקבל ‪.|G (I)| = 2r+q‬‬
‫נניח ש ‪ :I ∈ L‬לפי ‪ P CP‬במקרה כזה קיים אורקל ‪ O‬שמספק את החלק ה‪ c‬מתוך הפרדיקטים שמקורם בהגרלת‬
‫‪ r‬ביטים‪ ,‬ולכן קיימת ב ‪ GI‬קבוצה בלתי תלויה בגדול ‪.c · 2r‬‬
‫∈ ‪ :I‬ניווכח שכל קבוצה בלתי תלויה ) ‪ S ⊆ V (GI‬היא עקבית ולכן ניתן לבנות ממש בידיים אורקל ‪O‬‬
‫נניח ש ‪/ L‬‬
‫שמתאים לה‪ ,‬ושאלו יהיו התשובות שיתן‪ .‬אבל על פי הנחת ‪ P CP‬מתקיים שלא ניתן לייצר אורקל שמשיב נכונה על‬
‫יותר מהחלק ה ‪ s‬מתוך הפרדיקטים‪ ,‬ולכן גודל הקבוצה הבלתי תלויה הוא די קטן‪.|S| ≤ s · 2r :‬‬
‫הקבוצה הבת"ל לבעיית ]פער? [‬
‫מבעיית ‪[ r‬‬
‫האם קיבלנו רדוקציה ]‬
‫‪s·2r‬‬
‫‪) 2c·2‬זה מצטמצם ל ‪ ,( 2cr , 2sq‬זמן הרדוקציה יהיה ) ‪ poly (n, 2r+q‬ועבור ‪q, r‬‬
‫כן‪ ,‬קיבלנו בעיית פער‬
‫‪r+q , 2r+q‬‬
‫נוחים ־ [זה יהיה פולינומיאלי ואז מ ]‪ N P ⊆ P CP1,1−ε [log n, 1‬נקבל רדוקציה מכל ‪ L ∈ N P‬לבעיית הפער‬
‫מספיק ]‬
‫‪. 21q , 2εq − g IS‬‬
‫הערה‪ :‬אם קיים קירוב ‪ 1 − ε‬בזמן פולינומיאלי לקבוצה בת"ל‪ ,‬אז‪:‬‬
‫‪N P ⊆ P CP1,1−ε [log n, 1] ⊆ P‬‬
‫נוכל לחזור על הרדוקציה כדי לקרב את ‪ IS‬שוב ושוב‪ ,‬נעשה זאת ‪ log log n‬פעמים‪ .‬למה? בפעם הראשונה‬
‫]נסתמך על[ ההכלה הידועה לנו ש ]‪ P CP1,ε [r, q] ⊆ P CP1,ε2 [2r, 2q‬ובהמשך באופן רקורסיבי אחרי ‪ k‬הפעלות נקבל‬
‫‪ P CP1,ε2k 2k r, 2k q‬ואם התחלנו עם ‪ r = log n‬ו )‪ q = O (1‬אז נקבל אחרי ‪ log log n‬הפעלות‬
‫[‬
‫]‬
‫‪P CP1,εlog n log2 n, log n‬‬
‫כאשר זמן הריצה( יהיה ‪) nlog n‬ניתן לחשב זאת לפי ההכלה האחרונה‪ ,‬שזמן הריצה שלה הוא פולינומיאלי ב‬
‫)‬
‫(‬
‫)‬
‫‪2‬‬
‫‪ , n, 2log n+log n‬ולכן אם נמצא אלגוריתם פולינומיאלי שמקרב את ‪ IS‬עד כדי ‪ ,εlog n‬אז ‪,N P ⊆ T IM E N log n‬‬
‫כי הרי התחלנו מבעיית ‪ N P‬ועשינו רדוקציה לבעיית קירוב של ‪.IS‬‬
‫‪5‬‬
‫‪P CP‬‬
‫כזכור ראינו משפט שאם קיים אלגוריתם בזמן פולינומיאלי שמקרב את בעיית ‪ IS‬עד כדי גורם ‪ , sc‬אז‬
‫(‬
‫(‬
‫))‬
‫‪P CPc,s [r, q] ⊆ T IM E P oly n, 2r+q‬‬
‫נזכיר שמלמת החיזוק קיבלנו‬
‫]‪P CPc,s [r, q] ⊆ P CPc2 ,s2 [2r, 2q‬‬
‫ולכן אפשר להקטין את הגודל ‪ 1 − ε‬כרצוננו ולקבל‪:‬‬
‫}‪∀ |{z‬‬
‫‪δ‬‬
‫]‪N P ⊆ P CP1,δ [log (n) , 1‬‬
‫‪constant‬‬
‫מסקנה ‪ 5.1‬אלא אם ‪ ,N P ⊆ P‬לכל ‪ δ > 0‬לא קיים אלגוריתם שרץ בזמן פולינומיאלי ומקרב את ‪ IS‬עד כדי ‪.δ‬‬
‫הערה ‪ 5.2‬נזכיר את הבעיה הדואלית ל ‪ IS‬והיא כיסוי קודקודים ‪ ,V C‬נשים לב שגם אם נקבל קבועים ‪ α, β‬שמקרבים‬
‫‪ , 1−α‬שיכול להיות מאד קרוב ל ‪,1‬‬
‫את בעיית ה ‪ IS‬־ וגם אם היחס ביניהם יהיה גדול‪ ,‬היחס בבעיה הדואלית יהיה ‪1−β‬‬
‫ולכן זה לא נותן לנו התקדמות‪ .‬מה שכן‪ ,‬הוכח שקירוב של יותר מ ‪ 1.36...‬לבעיית כיסוי הקודקודים הוא ‪N P − Hard‬‬
‫)ספרא ודינור(‪ ,‬כמו כן עודד רגב ואחרים הראו שבהנחת ‪(U nique Games Conjecture) U GC‬לקרב את ‪ V C‬ביותר‬
‫מ ‪ 2 − δ‬זה ‪.N P − Hard‬‬
‫שעורי בית‬
‫‪ .1‬הראו שקיים ‪ ε‬כך שקירוב ‪ 1 + ε‬של בעיית כיסוי הקודקודים היא בעיה ‪) .N P − Hard‬בהנחת ‪.(U GC‬‬
‫עבור )‪ α = α (n‬שהיא פונקציה לכל היותר פולינומית‪:‬‬
‫משפט ‪5.3‬‬
‫]‪P CPc,s [r, q] ⊆ P CPcα ,S α [αr, αq‬‬
‫פשוט חוזרים על הפרוטוקול )‪ α (n‬פעמים‪.‬‬
‫מסקנה ‪ 5.4‬נבחר ‪ α = logβ n‬ונקבל‪:‬‬
‫[‬
‫]‬
‫‪N P ⊆ P CP1,1−ε [log n, 1] ⊆ P CP1,(1−ε)α log(1+β) n, logβ n‬‬
‫‪10‬‬
‫‪logβ n‬‬
‫‪α‬‬
‫)‪ (1 − ε) ≈ (const.‬בגרפים שגודלם‬
‫פולינומיאלי לבעיית( ‪ IS‬עד כדי‬
‫שרץ בזמן‬
‫קיים‬
‫)‬
‫קירוב (‬
‫ולכן לא )‬
‫‪β‬‬
‫)‪(1+β‬‬
‫‪n‬‬
‫‪. N P ⊆ T IM E 2log‬‬
‫אלא אם )‪= T IM E nO(log n‬‬
‫נשים לב‪:‬‬
‫‪1‬‬
‫‪1‬‬
‫(‬
‫‪) log n‬‬
‫(‬
‫( ()‬
‫‪)) 1+β‬‬
‫‪1+β‬‬
‫‪1+β‬‬
‫‪1+β‬‬
‫‪= 2log n‬‬
‫‪= 2log n log 2log n‬‬
‫‪n‬‬
‫‪β‬‬
‫)‪n‬‬
‫‪β‬‬
‫‪.nO(log‬‬
‫‪2log‬‬
‫‪1‬‬
‫אם גודל הגרף הוא‬
‫‪n‬‬
‫‪1+β‬‬
‫‪1‬‬
‫‪ N = 2log‬אז נקבל שזה ‪ N P − Hard‬לקרב את ‪ IS‬עד כדי פקטור של ‪.N (log N ) 1+β‬‬
‫למת חיזוק ‪2#‬‬
‫למה ‪:Amplif ication 5.5‬‬
‫]‪N P ⊆ P CP1,(1−ε)k [log n + k, k‬‬
‫מסקנה ‪ IS 5.6‬קשה לקירוב בטווח של ‪ nβ‬עבור ‪ β‬קבוע כלשהו‪ ,‬אלא אם ‪.N P ⊆ P‬‬
‫גרפים מרחיבים‬
‫הגדרה ‪ 5.7‬גרף ‪d ,G‬־רגולרי‪ ,‬הוא גרף מרחיב אם‪:‬‬
‫‪1‬‬
‫|‪|V (G)| → |E (S, V (G) \ S)| ≥ |S‬‬
‫|‬
‫‪{z‬‬
‫}‬
‫‪2‬‬
‫≤ |‪∀S ⊆ V (G) , |S‬‬
‫‪edges going out of S‬‬
‫מסתבר שלא פשוט לבנות גרפים כאלה עבור ‪ d‬קבוע בגודל גדול כרצוננו‪ ,‬ולמעשה זה בלתי אפשרי כשהגרף הוא‬
‫גם מישורי‪.‬‬
‫משפט ‪ 5.8‬קיימת משפחה מפורשת חזק של גרפים מרחיבים ‪d‬־רגולריים‪.‬‬
‫הגדרה ‪ 5.9‬משפחה של גרפים ‪ G1 , ..., Gk , ...‬היא מפורשת )‪ (explicit‬אם קיים אלגוריתם ‪ A‬כך שלכל ‪ n‬מייצר‬
‫‪ |V (Gn )| = n ,A (n) = Gn‬כך ש ‪ A‬רץ בזמן פולינומי‪.‬‬
‫משפחה של גרפים תיקרא מפורשת חזק )‪(strongly exlpicit‬אם קיים ‪ AS‬אלגוריתם‪ ,‬שלכל ‪ n, i, j‬מחזיר את‬
‫)‪=AS (n, i, j‬האינדקס של השכן ה ‪ j‬של הקודקוד ה ‪ i‬בגרף ‪ ,Gn‬ו ‪ AS‬רץ בזמן )‪ .P oly (log n‬כמובן אם משפחה‬
‫היא מפורשת חזק ־ בפרט היא מפורשת‪ ,‬שכן ניתן לבנות לכל ‪ k‬את הגרף ‪ Gk‬פשוט ע"י מעבר סדרתי על כל ה ‪ i‬וה‬
‫‪.j‬‬
‫|‪ , |V|B‬אז קיים קבוע ‪) α‬שהוא פונקציה של‬
‫משפט ‪ 5.10‬יהי ‪ G‬גרף מרחיב ‪ d‬רגולרי‪ .‬תהי )‪ B ⊆ V (G‬ונסמן ‪(G)| = β‬‬
‫‪α·k‬‬
‫‪ .β‬נגדיר הילוך מקרי ע"י‬
‫הדרגה ‪ ,(d‬כך שלכל ‪ ,k‬ההסתברות שהילוך מקרי בן ‪ k‬צעדים על ‪ G‬מוכל ב ‪ ,B‬קטנה מ‬
‫בחירת קודקוד ב ‪ G‬בהתפלגות אחידה‪ ,‬ונצעד מקודקוד לאחד משכניו בהתפלגות אחידה גם כן‪ .‬נאמר שהילוך מקרי‬
‫מוכל ב ‪ B‬אם כל אחד מהקודקודים בהילוך שייך ל ‪.B‬‬
‫משמעות הדבר שבאופן עקרוני הילוך מקרי‪ ,‬אפילו אם התחיל ב ‪ B‬במקרה ־ בסיכוי טוב יצא מ ‪ .B‬למעשה ־‬
‫ההסתברות להשאר ב ‪ B‬בכל צעד‪ ,‬קרובה להסתברות להתחיל ב ‪ B‬מלכתחילה‪.‬‬
‫נחזור להוכחת למת החיזוק השניה‪:‬‬
‫]‪N P ⊆ P CP1,(1−ε)k [log n + k, k‬‬
‫בהנתן ‪ I‬שצריך להכריע אם הוא שייך ל ‪ ,L ∈ N P‬נפעיל את הפרוטוקול ]‪ P CP1,1−ε [log n, 1‬המקורי שאנחנו יודעים‬
‫שקיים‪ .‬נייצר גרף מרחיב ‪ Gn‬כלשהו‪ ,‬המובטח מהמשפחה שהיא מפורשת חזק‪ .‬נגריל קודקוד ‪ v‬בתוך ‪) Gn‬באמצעות‬
‫ה ‪ log n‬ביטים המובטחים לנו(‪ ,‬ונגריל כמה ביטים נוספים )מספר חסום‪ ,‬תלוי ב ‪ (d‬שיכריע לאיזה קודקוד משכניו של‬
‫‪ v‬נטייל‪ .‬נניח שטיילנו ל ‪ u‬־ אזי הוא מסומן על ידי ‪ log n‬ביטים כלשהם‪ ,‬נשתמש בהם בתור קלט לאלגוריתם המקורי‬
‫־ ונפעיל אותו שוב‪ .‬נמשיך כך לטייל בגרף‪ ,‬וכמובן שנקבל רק אם במשך כל הטיול קיבלנו תשובות מספקות מהאורקל‪.‬‬
‫נגדיר את הקבוצה הרעה )שאנחנו מקווים לא להיות בתוכה( הוא‪:‬‬
‫}‪B (I, O) = {r : P (r, I, O) = acc‬‬
‫)כאשר אנחנו מייצגים כל קודקוד על ידי ‪log n‬ביטים גם כאן(‪ .‬כפי שצייננו במשפט ־ ההסתברות להישאר כל הזמן‬
‫בתוך הקבוצה ‪) B‬שהיא קבוצה "רעה" שעבורה נקבל ‪ acc‬כוזבים( תהיה קטנה מאד‪.‬‬
‫‪6‬‬
‫‪P CP‬‬
‫ראינו בשבוע שעבר חיזוק למשפט ה ‪ P CP‬בעזרת הילוך מקרי על גרף מרחיב‪:‬‬
‫]‪N P ⊆ P CP1, 1 k [O (log n + k) , O (k) , 1‬‬
‫)‪(2‬‬
‫עבור פרוטוקול ‪ P CP‬שמבצע ‪ q‬שאילתות‪ ,‬ומקבל תשובה באורך ‪ d‬ביטים לכל שאילתה‪ ,‬עם נאותות ‪ ,s‬נגדיר את‬
‫סיבוכיות השאילתה ע"י‬
‫‪q·d‬‬
‫) (‬
‫‪log 1s‬‬
‫מערכת ה ‪ P CP‬שהצגנו עבור ‪ N P‬היא בעלת סיבוכיות שאילתה קבועה‪ ,‬לכל מספר שאילתות שנרצה )כל עוד הוא‬
‫פולינומי(‪.‬‬
‫בנוסף‪ ,‬אנחנו יכולים לקבל מספר שאילתות גדול מ )‪ ,Ω (log n‬אם נדאג שמספר הביטים האקראיים הוא )‪.O (log n‬‬
‫נניח בשלילה שאנחנו יכולים לשפר את הנאותות מבלי לפגוע במספר השאילתות וההגרלות‪ ,‬במילים אחרות ־ שניתן‬
‫לקבל‪:‬‬
‫]‪[O (log n + k) , O (k) , 1‬‬
‫)‪f (k‬‬
‫) ‪( 12‬‬
‫‪N P ⊆ P CP1,‬‬
‫כאשר )‪ f (k‬היא פונקציה שהיא ממש יותר מליניארית‪ .‬אם כך היה המצב‪ ,‬אז היינו בוחרים את ‪ k‬להיות = ‪k‬‬
‫)‪ ,Θ (log n‬אז נקבל‪:‬‬
‫‪1‬‬
‫)‪nω(1‬‬
‫<‪s‬‬
‫‪k‬‬
‫כי הנאותות לפי הנחתנו קטנה ממש יותר מהר מ ‪. 12‬‬
‫מתקבל‪.‬‬
‫‪q ∼ log n‬‬
‫נזכיר שהיתה לנו הרדוקציה באמצעות הגרף המרחיב‬
‫‪P CP1,ε −→ gap [1, ε] q − csp‬‬
‫‪1‬‬
‫מכיוון ש ‪ q ∼ log n‬אז‬
‫)‪ ,ε = nω(1‬ומכיוון שהרדוקציה לקחה לנו זמן פולינומיאלי ב ‪ n, 2r‬וכעת )‪,r = O (log n‬‬
‫כלומר הרדוקציה לוקחת זמן פולינומיאלי ב ‪.n‬‬
‫מהרדוקציה נקבל מספר פולינומיאלי של פרדיקטים כך שאם הבעיה היתה ב ‪ P CP‬הנתון‪ ,‬אז כל הפרדיקטים‬
‫‪1‬‬
‫)‪ nω(1‬מהם ספיקים‪ .‬אבל כאמור מספר הפרדיקטים הוא פולינומיאלי ב ‪ ,n‬ואז‬
‫ספיקים‪ ,‬ואחרת לכל היותר החלק ה‬
‫‪1‬‬
‫החלק ה‬
‫)‪ nω(1‬מהם הוא פחות מאחד‪ .‬מכאן נובע שאו שכל הפרדיקטים ספיקים או שאף אחד מהם אינו ספיק‪.‬‬
‫במקרה כזה מספיק לבחור פרדיקט ולבדוק אותו‪ ,‬ו ‪ L ∈ P CP‬אם"ם הפרדיקט ספיק‪ .‬זו נוסחה מעל ‪ log n‬משתנים‪,‬‬
‫ולכן בדקת כל ההצבות לה היא פולינומיאלית ב ‪ ,n‬ומכאן נובע שאנחנו יכולים להכריע בזמן פולינומי האם ‪L ∈ N P‬‬
‫או לא‪ .‬לכן אם ניתן לקבל נאותות כנ"ל אז ‪.N P ⊆ P‬‬
‫עד כה כאשר שיפרנו את הנאותות‪ ,‬תמיד שילמנו במספר השאילתות )שהיה קבוע כפול המעריך בנאותות(‪ .‬נרצה‬
‫להחזיק את מספר השאילתות קבוע ועם זאת לשפר את הנאותות‪.‬‬
‫משפט ‪[DF KRS] 6.1‬‬
‫]‪∀β < 1 ∃q = q (β) s.t. N P ⊆ P CP1,ε [O (log n) , q, d‬‬
‫כך ש‬
‫‪d = logβ n, ε = 2−d‬‬
‫כלומר בהנתן ‪ ,β‬ניתן על ידי מספר שאילתות קבועות ומספר ביטים לשאילתה שהוא קצת יותר קטן מלוגריתמי ב ‪,n‬‬
‫‪β‬‬
‫לקבל נאותות שהיא כמעט פולינומיאלית ב ‪. (2log n ) n‬‬
‫‪6.1‬‬
‫‪ P CP‬עם שתי שאילתות בלבד‬
‫הגדרה ‪ 6.2‬משחק סיבוב ‪ ,1‬עם ‪ 2‬מוכיחים‪[BGKW 1988] (2 prover 1 round game) .‬‬
‫נניח שאליס ובוב הם שני המוכיחים‪ ,‬המשחקים נגד גורם שלישי )הטבע‪ ,‬אלוהים‪ ,‬וכו'(‪ .‬אליס ובוב ממוקמים בשני‬
‫חדרים נפרדים כך שאין להם יכולת לתאם עמדות‪.‬‬
‫חוקי המשחק מוגדרים על ידי התפלגות על זוגות של שאלות ‪ D‬ופרדיקט ‪) P‬די גדול( על שאלות המשחק‪ ,‬שניהם‬
‫ידועים לאליס ובוב‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫הפרדיקט ‪ P‬מוגדר על זוג של שאלות ושתי תשובות כך ש ‪ P  x, y , a, b ‬נותן "זכיה" או "הפסד" לכל‬
‫}‪|{z‬‬
‫}‪|{z‬‬
‫‪questions answers‬‬
‫צירוף כזה‪.‬‬
‫מהלך המשחק הוא‪:‬‬
‫‪ .1‬מגרילים מההתפלגות ‪ D‬זוג שאלות )‪(x, y‬‬
‫‪ .2‬שולחים את ‪ x‬לאליס ואת ‪ y‬לבוב‪.‬‬
‫‪ .3‬אליס משיבה ‪ a‬ובוב משיב ‪.b‬‬
‫‪ .4‬לפי ‪ P‬מתקבלת החלטה האם אליס ובוב זכו או הפסידו‪.‬‬
‫בהנתן אסטרטגיה עבור אליס ובוב ־ יש להם הסתברות לזכיה‪ ,‬נסמן ע"י )‪ v (G‬את ההסתברות המקסימלית לזכיה‬
‫)ערך המשחק בעצם(‪.‬‬
‫‪ 6.1.1‬דוגמה‪:‬‬
‫‪ x, y‬הם ביטים אקראיים )בהסתברות חצי וכו'( בלתי תלויים‪.‬‬
‫התשובות הן איברים בקבוצה }‪) {A, B} × {0, 1‬כלומר שם של אחד המשתתפים וביט(‪.‬‬
‫פרדיקט הזכיה‪ :‬אליס ובוב זוכים אם ורק אם בתשובה של שניהם יש אותו השם ‪ X‬ואותו הביט ‪ ,j‬וגם הביט ‪j‬‬
‫הוא ביט השאלה שנשלח למשתתף ‪.X‬‬
‫אסטרטגיה אפשרית‪ :‬שני הצדדים שולחים ‪ ,B‬בוב שולח את הביט שהוא קיבל ואליס שולחת ‪ .1‬אם באמת בוב‬
‫קיבל את הביט ‪ 1‬־ הם ניצחו‪ ,‬ואם לא ־ הפסידו‪ .‬מכאן שהסתברות הזכיה באסטרטגיה זו היא ‪ . 21‬באותו אופן ניתן‬
‫לבחור מראש שתמיד שניהם ישיבו ‪ B, 1‬וגם כך נקבל הסתברות זכיה של ‪ . 12‬לא קשה להשתכנע שאי אפשר לשפר‬
‫זאת‪.‬‬
‫הגדרה ‪ 6.3‬לשפה ‪ L‬יש פרוטוקול ]‪ M IPc,s [2, 1‬אם בהנתן ‪ I‬אפשר לייצר בזמן פולינומיאלי משחק של ‪ 2‬מוכיחים‬
‫וסיבוב ‪ ,1‬שהוא ‪ G (I) = G‬כך שמתקיים‪:‬‬
‫‪ .1‬אם ‪ I ∈ L‬אז ‪v (G) ≥ c‬‬
‫∈ ‪ I‬אז ‪v (G) ≤ s‬‬
‫‪ .2‬אם ‪/ L‬‬
‫‪13‬‬
‫‪6.1.2‬‬
‫מה הקשר ל ‪?P CP‬‬
‫אליס ובוב משמשים בתור האורקל‪ ,‬כאשר אנחנו משחקים נגדם‪ .‬אם ‪ I ∈ L‬אז אליס ובוב ינצחו בהסתברות גדולה‬
‫∈ ‪ I‬אז הם ינצחו בהסתברות קטנה מ ‪.c‬‬
‫מ ‪ ,c‬ואם ‪/ L‬‬
‫לכן נשים לב‪:‬‬
‫]? ‪M IPc,s [2, 1] ⊆ P CPc,s [O (log n) , 2,‬‬
‫מדוע? מה יעשה פרוטוקול ה ‪ P CP‬שלנו? בהנתן ‪ ,I‬נייצר את המשחק )‪ ,G (I‬נבחר זוג שאלות ))‪,(x, y) ∼ D (G (I‬‬
‫והשאלה הראשונה תהיה )‪=A (x‬מה תשובתה של אליס לשאלה ‪?x‬‬
‫השאלה השניה תהיה )‪=B (y‬מה תשובתו של בוב לשאלה ‪.y‬‬
‫לכאורה‪ ,‬מכיוון ששאלנו על בוב אחרי ששאלנו על אליס‪ ,‬לא נשמרה ההפרדה בין המידע שבידי אליס למידע שבידי‬
‫בוב‪ ,‬אבל האורקל הוא בסך הכל פונקציה‪ ,‬ולכן הערכים נקבעים מראש ולא תלויים בשאלות קודמות‪.‬‬
‫קל לראות שהשלמות ‪ c‬והנאותות ‪.s‬‬
‫אם נגדיר שתיאור ההתפלגות הוא ממש רשימת כל הזוגות )כאשר כולם בהסתברות שווה‪ ,‬ואם רוצים לאחד מהם‬
‫הסתברות גבוהה יותר‪ ,‬רושמים אותו מספר פעמים( אז מכיוון שהבטחנו שייצור המשחק הוא פולינומיאלי בגודל של‬
‫‪ ,n = I‬נקבל שמספר הזוגות הוא פולינומיאלי ב ‪ n‬גם כן‪ ,‬ולכן כדי להגריל זוג צריך )‪ O (log n‬ביטים‪ ,‬ולכן זהו מספר‬
‫הביטים האקראיים בפרוטוקול לעיל‪.‬‬
‫אפשר לתאר את המשחק והאסטרטגיה המיטבית ע"י גרף דו צדדי‪ ,‬כאשר בצד אחד השאלות לבוב )ותשובותיו(‬
‫ובצד השני השאלות לאליס )ותשובותיה(‪ ,‬ההסתברות לכל צלע היא אחידה‪ ,‬כמקודם‪ ,‬אם נרצה התפלגות אחרת ־ אז‬
‫נוכל להוסיף צלעות בין זוגות של שאלות‪.‬‬
‫כל צלע למעשה מייצגת רביעיה ‪ x, y, a, b‬ולכן לפי תוצאת הפרדיקט ‪ P‬־ אפשר גם לסמן כל צלע ע"י "האם היא‬
‫מסמלת זכיה או הפסד"‪.‬‬
‫אם‬
‫]‪N P ⊆ M IPc,s [2, 1‬‬
‫כאשר גודל התשובות הוא ‪ ,d‬אז בעיית הפער ]‪ [c, s‬עבור )‪ 2 − csp (d‬היא ‪N P‬־שלמה‪ ,‬הסימון משמעו שזו נוסחא‬
‫שבכל פרדיקט יש ‪ 2‬משתנים‪ ,‬ואורך כל השמה לאחד המשתנים היא ‪ d‬ביטים‪.‬‬
‫משפט ‪ 6.4‬קיים ‪ ε > 0‬כך ש ]‪ N P ⊆ M IP1,ε [2, 1‬כאשר התשובות הן בגודל קבוע‪.‬‬
‫הוכחה‪ :‬נעבוד על ידי רדוקציה מבעיית הפער ] ‪ [1, 1 − ε′‬עבור ‪ .3 − SAT‬אזי או שכל ההסגרים ספיקים‪ ,‬או שלכל‬
‫היותר ‪ 1 − ε′‬מהם ספיקים‪ .‬נרצה פרוטוקול ‪ M IP‬עבור שפה זאת‪ .‬נציג את המשחק ובכך תתקבל הרדוקציה ל‬
‫]‪) M IP1,ε [2, 1‬לא אותו אפסילון(‪.‬‬
‫המשחק‪:‬‬
‫‪14‬‬
‫‪ .1‬בחר הסגר באקראי‪ ,‬נניח ‪ ,i‬ואז‬
‫) ‪Ci = (Xi1 ∨ Xi2 ∨ Xi3‬‬
‫‪ .2‬שלח את ‪ Ci‬לאליס‬
‫‪ .3‬בחר }‪ j ∈ {1, 2, 3‬באקראי‬
‫‪ .4‬שלח את ‪ Xij‬לבוב‪.‬‬
‫נאמר שאליס ובוב זכו אם אליס מחזירה השמה מספקת ל ‪ Ci‬ובוב מחזיר ערך עבור ‪ Xij‬שהוא עקבי עם תשובתה‬
‫של אליס‪.‬‬
‫נסמן את‬
‫אם ‪ I ∈ 3 − SAT‬אז ‪.v (G (I)) = 1‬‬
‫אם ‪ I‬היא פחות מ ‪ 1 − ε′‬ספיקה‪ ,‬אז ‪.v (I) ≤ 1 − ε′‬‬
‫האסטרטגיה של בוב מגדירה בעצם השמה ‪ A‬עבור ‪ ,I‬כך ש ‪ ,vA (I) ≤ 1 − ε′‬ואז בהסתברות גדולה מ ‪ ,ε′‬או‬
‫‪′‬‬
‫שתשובתה של אליס איננה מספקת או שאיננה עקבית עם ‪ .A‬כלומר בהסתברות לפחות ‪ ε3‬אליס ובוב מפסידים‪ ,‬ואז‬
‫‪′‬‬
‫‪.ε = ε3‬‬
‫‪: 7‬‬
‫הגדרה ‪ 7.1‬בעיית ‪ Label − Cover‬־ בהנתן בעיית )‪) 2 − csp (7‬כלומר ‪ 2‬משתנים בכל אילוץ שיכולים לקבל ‪ 7‬ערכים‬
‫כ"א(‪ ,‬נאמר שהבעיה היא בעיית ‪ Label − Cover‬אם בהנתן השמה למשתנה הראשון בכל אילוץ ־ קיימת השמה‬
‫יחידה למשתנה השני אשר מספקת את האילוץ‪.‬‬
‫נרצה לבנות רדוקציה מ ‪ LC‬שהוזכרה לבעיית )‪) E3 − LIN (2‬בעיית תכנון ליניארי בשלושה משתנים‪ ,‬בשדה עם‬
‫מציין ‪.( 2‬‬
‫נתרגם את המשתנה הראשון ‪ v‬באילוץ לקבוצה של משתנים ‪ ,Vv‬ואת המשתנה השני ‪ u‬לקבוצה של משתנים ‪:Vu‬‬
‫‪15‬‬
‫)‬
‫(‬
‫שבעיית הפער ‪ 1 − δ, 12 +(ε‬עבור‬
‫נרצה למת חיזוק לבעיית הפער עבור ‪ ,LC‬מהרדוקציה נראה שמתקיים‬
‫)‬
‫)‪ E3−LIN (2‬היא ‪ N P‬שלמה‪ .‬לאחר מכן נראה רדוקציה מבעיה זו לבעיית הפער ‪ 1 − δ, 78 + ε‬עבור ‪.E3−SAT‬‬
‫בהמשך נשלים את התשתית התיאורטית הקושרה להוכחת ה ‪.P CP‬‬
‫למת חיזוק ל ‪M IP‬‬
‫נוכיח למת חיזוק עבור ]‪ ,M IP [2, 1‬נרצה שאם ‪ v (G) = 1‬אז אחרי החיזוק ישאר ‪ ,1‬אבל אם ‪ v (G) = 1 − ε‬אז‬
‫ערך המשחק יקטן‪.‬‬
‫נוכל לשחק את המשחק כמה פעמים בזו אחר זו ולהכריז על ניצחון רק אם התקיים ניצחון בכל המשחקים‪ .‬הבעיה‬
‫כאן היא שאז זה כבר לא עומד בהגדרה של ]‪ ,M IP [2, 1‬כי כביכול משחקים יותר מסיבוב אחד‪.‬‬
‫הגדרה ‪ 7.2‬חזרה מקבילית ‪G → G⊗k‬נבחר ‪ k‬זוגות ) ‪ (x1 , y1 ) , (x2 , y2 ) , ..., (xk , yk‬באופן בלתי תלוי זה מזה )כלומר‬
‫כל שני זוגות הם בת"ל זה בזה(‪ ,‬ואז נשלח את השאלות ) ‪ x = (x1 , x2 , ..., xk‬לאליס ו ) ‪ y = (y1 , y2 , ..., yk‬לבוב‪.‬‬
‫התשובות תהיינה ) ‪ a = (a1 , a2 , ..., ak‬ו ) ‪ b = (b1 , b2 , ..., bk‬בהתאמה‪.‬‬
‫נגדיר את הפרדיקט על התשובות להיות‪:‬‬
‫‪k‬‬
‫(‬
‫∏ )‬
‫= ‪P ⊗k x, y, a, b‬‬
‫) ‪P (xi , yi , ai , bi‬‬
‫‪i=1‬‬
‫בעצם כאילו שיחקנו את כל המהלכים של השחקן הראשון במכה‪ ,‬ואז את כל המהלכים של השחקן השני ואז הכרענו‪.‬‬
‫מאמר של פורטנאו‪ ,‬סיפסר ועוד מישהו מ ‪1988‬קבעו כי "ברור ש"‬
‫(‬
‫)‬
‫‪k‬‬
‫)‪v G⊗k = v (G‬‬
‫וזו בדיוק התכונה שרצינו לגבי ערך המשחק‪.‬‬
‫אבל באותה שנה פורטנאו פירסם יחד עם ארטה מאמר שמראה שזה אינו נכון בעצם‪.‬‬
‫דוגמה נגדית‪:‬‬
‫נזכיר את המשחק מההרצאה הקודמת‪ x, y :‬ביטים אקראיים‪ ,‬אליס ובוב מחזירים שם וביט‪ ,‬כך שהם זוכים רק אם‬
‫הוא אכן הביט שנשלח למשתתף שאת שמו החזירו‪.‬‬
‫הם מסכימים על השם והביט המוחזר וגם הביט‬
‫שהחזירו (‬
‫)‬
‫אנחנו יודעים ש ‪ ,v (G) = 12‬האם מתקיים ‪?v G⊗2 ≤ 14‬‬
‫אליס מקבלת ‪ x1 , x2‬ובוב מקבל ‪.y1 , y2‬‬
‫האסטרטגיה של אליס תהיה‪ :‬התשובה הראשונה )אליס‪ ,(x1 ,‬התשובה השניה )בוב ‪.(x1 ,‬‬
‫האסטרטגיה של בוב תהיה‪ :‬התשובה הראשונה )אליס‪ ,(y2 ,‬התשובה השניה )בוב‪(y2 ,‬‬
‫זוכים בכל המשחקים רק אם ‪ ,x1 = y2‬המשתנים הללו בלתי תלויים ולכן ההסתברות לכך היא ‪ 21‬וזה ערך המשחק‪.‬‬
‫(‬
‫)‬
‫(‬
‫)‬
‫הערה ‪ 7.3‬הצגנו משחק שעבורו )‪ ,v G⊗2 = v (G‬יש שאלה פתוחה אם קיים משחק שעבורו )‪.v G⊗3 = v (G‬‬
‫(‬
‫)‬
‫ורביצקי הראה ב ‪ '94‬כי אכן כאשר ∞ → ‪ k‬מתקבל ‪ ,v G⊗k → 0‬אבל האמצעים היו לא קונסטרוקטיביים‪ ,‬ולא‬
‫היה ברור מכך איך בדיוק ערך המשחק קטן‪ ,‬ולכן זה לא שימושי לנו‪.‬‬
‫ב ‪ 95‬הראה ‪ ...‬כי אם אליס ובוב עונים מתוך קבוצה בגודל שקטן מ ‪ ,l‬ו ‪ ,v (G) = 1 − ε‬אז מתקיים‪:‬‬
‫(‬
‫( )‬
‫‪) C·k‬‬
‫)‪v G⊗k ≤ 1 − ε32 log(l‬‬
‫(‬
‫‪) C·k‬‬
‫לאחרונה שופר החסם ל )‪1 − ε3 log(l‬‬
‫בכל מקרה ־ למרות שכנראה צריך לנפח את התשובות מאד‪ ,‬מובטחת לנו ירידה מעריכית של ערך המשפט בשלב‬
‫מסויים‪.‬‬
‫בבעיית ה ‪ Lable−Cover‬שראינו‪ ,‬גודל קבוצת התשובות האפשרית הוא ‪ ,7‬ולכן מובטח לנו שעבור חזרה מקבילית‬
‫(‬
‫‪)C·k‬‬
‫‪) 1 − ε3‬כאן הנחנו שהחלוקה בלוג ‪ 7‬נבלעה ב ‪ .(C‬ולכן בהנתן ‪ ε′‬קבוע נקבל‪:‬‬
‫‪ k‬פעמים ־ יהיה‬
‫‪= ε′‬‬
‫‪)C·k‬‬
‫‪1 − ε3‬‬
‫‪16‬‬
‫(‬
‫(‬
‫)‬
‫‪C · k · log 1 − ε3 = log ε′‬‬
‫) ‪log (ε′‬‬
‫) ‪C · log (1 − ε3‬‬
‫=‪k‬‬
‫) (כעת קיבלנו בעיה שבה התשובות הן וקטורים באורך ‪ k‬שלכל קואורדינטה בהם יש ‪ 7‬אפשרויות‪ ,‬ולכן זו בעיית‬
‫‪.Label − Cover 7k‬‬
‫הרדוקציות הן פולינומיאליות‪ .‬שהרי אם הייצוג של המשחק הוא על ידי גרף דו"צ כפי שראינו בשבוע שעבר‪ ,‬לא‬
‫קשה להיווכח שאם חוזרים על תהליך ההגרלה והבדיקה ‪ k‬פעמים וכו' ־ מקבלים זמן ריצה ‪ nk‬בערך‪ ,‬וכיוון ש ‪ k‬נקבע‬
‫מראש לפי איכות הקירוב הדרוש ־ זה פולינומי ב ‪.n‬‬
‫כדי להשלים את המשפט שאומר שקיים ‪ ε‬כך שבעיית הפער )‪ (1, ε‬עבור )‪ LC (d‬היא ‪N P‬־שלמה‪ ,‬חסר להראות‬
‫שכאשר חוזרים על משחק שיש לו את תכונת ההטלה )כלומר תשובתה של אליס קובעת באופן יחיד את האפשרות‬
‫לתשובה נכונה של בוב(‪ ,‬מקבלים משחק שיש לו את תכונת ההטלה‪ ,‬אך לא קשה להשתכנע בכך אם בוהים בחומר‬
‫מספיק‪.‬‬
‫הגדרה ‪ 7.4‬משחק יקרא ייחודי אם לכל שאלה ‪ ,x, y‬לכל ‪ a‬קיים ‪ b‬יחיד )וגם לכל ‪ b‬קיים ‪ a‬יחיד( כך ש )‪P (x, y, a, b‬‬
‫נותן ערך אמת )=זכיה(‪.‬‬
‫‪ :2002 U GC‬לכל ‪ ε‬ו ‪ ,δ > 0‬קיים )‪ d (ε, δ‬כך שבעיית הפער )‪ (1 − δ, ε‬עבור ‪ Label − Cover‬ייחודי‪ ,‬היא ‪N P‬‬
‫שלמה‪.‬‬
‫שעורי בית‬
‫‪ .1‬הוכח שלהכריע האם משחק ייחודי הוא ספיק היא בעיה ב ‪P‬‬
‫‪ .2‬הוכח שאם ‪ ,P ̸= N P‬אז בלתי אפשרי להשיג פחות מסיבוכיות שאילתה קבועה )כלומר לקבל איזושהי פונקציה‬
‫יורדת(‪ ,‬כלומר שקיים קבוע כלשהו שאי אפשר להשיג פחות ממנו‪.‬‬
‫רדוקציה מבעיית פער ‪ LC‬ל )‪E3 − LIN (2‬‬
‫נתבונן על הבעיה ב )‪) (1, ε) − LC (d‬כלומר בעיית פער ‪ Label − Cover‬עם ‪ d‬ערכים אפשריים(‪ ,‬ונרצה לתרגם את‬
‫המשתנים למשתנים בוליאניים‪ ,‬כמובן שאם נרצה לייצג את ‪ d‬ערכי המשתנה‪ ,‬נצטרך לפחות ‪ log d‬משתנים בוליאניים‪,‬‬
‫למעשה נשתמש ב ‪ ,2d‬שזה ניפוח מעריכי שנראה על פניו לא הכרחי‪ ,‬אבל אנחנו לא מכירים דרך לשפרו‪.‬‬
‫‪d‬‬
‫ואז את המשתנה ‪ v‬נתרגם לקבוצת משתנים בגודל ‪ ,2d‬כל אחד מהם מתאים לאיבר בקבוצה }‪ .{1, −1‬נייצג‬
‫השמה למשתנים החדשים ע"י‪:‬‬
‫‪d‬‬
‫}‪fv : {1, −1} → {0, 1‬‬
‫כך לכל משתנה ‪ x‬ב ‪ 2d‬הביטים שמייצגים את ‪ v‬־ ההשמה )‪ fv (x‬תיתן לו את הערך המתאים כך שייצג את השמת‬
‫הערך הנתון ל ‪ . v‬כלומר‪ ,‬אם למשל המשתנה ‪ v‬יכול לקבל ‪ 3‬ערכים‪ ,‬אזי קיבלנו קבוצה בגדול ‪ 8‬של משתנים בוליאניים‪,‬‬
‫שהם‪:‬‬
‫‪000, 001, 010, 011, 100, 101, 110, 111‬‬
‫ואז‪ ,‬למשל‪ ,‬עבור ‪ v = 0‬נקבל שההשמה לשמונת המשתנים הללו היא )‪ (0, 0, 0, 0, 1, 1, 1, 1‬עבור ‪ v = 1‬נקבל‬
‫)‪ (0, 0, 1, 1, 0, 0, 1, 1‬ועבור ‪ v = 2‬נקבל )‪ .(0, 1, 0, 1, 0, 1, 0, 1‬במילים אחרות ־ לוקחים את אחת הקואורדינטות‬
‫בייצוג הבינארי‪ ,‬בפרט ־ את הקואורדינטה שמתאימה לאינדקס של הערך מתוך ‪ d‬הערכים שנתנו ל ‪.v‬‬
‫‪17‬‬
‫‪8‬‬
‫‪:‬‬
‫נזכיר שאנחנו במהלך נסיון לרדוקציה מבעיית הפער )‪ (1, ε‬עבור )‪ ,LC (k‬לבעיית )‪ .E3 − LIN (2‬מכיוון שלהכריע‬
‫האם בעיית )‪ E3 − LIN (2‬ספיקה לחלוטין זה פולינומיאלי‪ ,‬ולכן נרצה שבעיית הפער תמיר בעיות ספיקות לחלוטין‬
‫ב )‪ LC (k‬לבעיות שהן לפחות ‪ 1 − δ‬ספיקות ב ‪ ,E3 − LIN‬ובעיות שהן פחות מ ‪ ε‬ספיקות ב )‪ LC (k‬יומרו לבעיות‬
‫שהן לכל היותר ‪ 21 + ε′‬ספיקות ב )‪.E3 − LIN (2‬‬
‫מה שיקרה יהיה שלפי בחירת ‪ ε′ , δ‬נבחר את ‪ ,ε‬שבתורו יקבע את ‪.k‬‬
‫נראה את הרדוקציה באופן מקומי‪:‬‬
‫בעיית ה ‪ LC‬מיוצגת ע"י גרף מכוון‪ ,‬כאשר כל צלע מייצגת פונקציה כלשהי מ}‪,C(u,v) : {1, ..., k} → {1, ..., k‬‬
‫שהיא האילוץ שמשרה קודקוד המוצא של הצלע על קודקוד המטרה‪ .‬אם ‪ u, v‬שני קודקודים בגרף הייצוג‪ ,‬ויש צלע‬
‫)‪ (u, v‬בגרף‪.‬‬
‫‪k‬‬
‫אזי עבור הקודקוד ‪ u‬ניצור סט משתנים מתאים ‪ ,Vu‬שמאונדקס ע"י }‪ ,{−1, 1‬באופן דומה ‪ Vv‬יתאים לקודקוד‬
‫‪k‬‬
‫‪ v‬ויהווה קבוצת משתנים מאונדקסת ע"י }‪.{−1, 1‬‬
‫הערה ‪ 8.1‬אנחנו עובדים עם עולם של ‪ ,1, −1‬אבל בעצם עולם המשוואות הליניאריות מעל ‪ Z2‬הוא עולם של ‪ ,1, 0‬כדי‬
‫לתרגם נתבונן ב }‪{1, −1‬עם הכפל‪ ,‬במקום )‪ (0, 1‬בשביל חיבור )זו אותה חבורה בעצם(‪.‬‬
‫כעת לכל משתנה בבעיה המקורית יש לנו ‪ 2k‬משתנים בבעיה החדשה‪ ,‬וההשמה מהמשתנה המקורי מגדירה באופן יחיד‬
‫‪k‬‬
‫השמה ל ‪ 2k‬המשתנים החדשים‪ ,‬כלומר יש }‪ fu : {±1} → {±1‬המתאימה לכל אחד מ ‪ 2k‬המשתנים את ההשמה‬
‫שלו‪.‬‬
‫כעת נתרגם את )‪ C(u,v‬למשוואות ליניאריות על איברי ‪ Vu‬ו ‪.Vv‬‬
‫כל משוואה )עבור ‪ k = 4‬למשל( תיראה כך‪:‬‬
‫‪fu (1, 1, −1, −1) · fv (−1, −1, −1, 1) · fv (1, 1, 1, 1) = −1‬‬
‫)כאן הכפל החליף את החיבור‪ ,‬אבל מכיוון שזו עדיין אותה חבורה ‪ Z2‬זה שקול(‬
‫אנחנו יודעים לבנות את המשתנים )מסוף ההרצאה הקודמת( וכעת צריך להציג את האופן שבו נתרגם את )‪C(u,v‬‬
‫למערכת משוואות ליניאריות בשלושה משתנים‪.‬‬
‫כעת מהשמה ‪ A‬לבעיה ב )‪ ,LC (k‬נוכל לייצר )על סמך בניית המשתנים( את ‪ ,A′‬השמה ל ‪ 2k‬משתנים באופן שאם‬
‫ההשמה ל‪ u‬היא ‪ ,i‬אז ‪) fu (x) = xi‬כאן ‪ x‬הוא וקטור ‪ k‬מקומי שמאנדקס משתנה ב ‪ 2k‬המשתנים שהם תמונת ‪u‬‬
‫ברדוקציה(‪ .‬כלומר ‪ fu‬היא הקידוד ב"קוד ארוך" )‪ (Long Code‬של ‪.i‬‬
‫לדוגמה ־ עבור ‪:k = 3‬‬
‫‪A (4) = 2‬‬
‫יש לנו את הוקטורים‬
‫)‪(−1, −1, −1) , (−1, −1, 1) , (−1, 1, −1) , (−1, 1, 1) , ..., (1, 1, 1‬‬
‫וההשמה תהיה בחירת הביט השני מכולם‪ ,‬דהיינו‪:‬‬
‫)‪(−1, −1, 1, 1, ..., 1‬‬
‫וזה הוקטור ה ‪ 2k‬מקומי המייצג את ההשמה ‪ A′‬לכל אחד מ ‪ 2k‬המשתנים שהם תרגום ‪.u‬‬
‫‪8.1‬‬
‫דרישת שלמות‬
‫אם ‪ A (u) = i, A (v) = j‬ומתקיים ש ‪) C(u,v) (i) = j‬כלומר ההשמה ‪ A‬מספקת את האילוץ )‪ ,(C(u,v‬אז ‪ A′‬צריכה‬
‫‪′‬‬
‫)‪) C(u,v‬אוסף המשוואות הליניאריות שהן תירגום האילוץ )‪ .(C(u,v‬המשפט האחרון מגלם את‬
‫לספק לפחות ‪ 1 − δ‬מ‬
‫דרישת השלמות מהרדוקציה‪ ,‬כלומר שבאמת בעיות ספיקות לחלוטין יתורגמו לבעיות שהן לפחות ‪ 1 − δ‬ספיקות‪.‬‬
‫‪18‬‬
‫‪ 8.2‬נסיון ראשון לדרישת נאותות‪:‬‬
‫‪′‬‬
‫)‪ ,C(u,v‬אז ‪ A′‬מהווה קידוד חוקי של השמה כלשהי ‪ A‬שנותנת‬
‫אם ‪ A′‬היא השמה שהיא לפחות ‪ 12 + ε′‬מספקת את‬
‫‪′‬‬
‫ל ‪ u‬את ‪ i‬ול ‪ v‬את ‪ j‬כך ש ‪ .C(u,v) (i) = j‬נעיר כי זו דרישה חזקה מאד שנובע ממנה שאם ‪ A‬היא לא קידוד חוקי‬
‫‪′‬‬
‫)‪.C(u,v‬‬
‫ב"קוד ארוך"‪ ,‬אזי היא מספקת פחות מ ‪ 12 + ε′‬מ‬
‫אבל הדרישה הזו היא בלתי אפשרית‪ ,‬מדוע? נניח שיש השמה שמספקת את ‪ ,A‬אזי מדרישת השלמות יש ‪A′‬‬
‫שמספקת ‪ ,1 − δ‬ניקח את ‪ ,A′‬ונחליף את ההשמה לאחד מ ‪ 2k‬המשתנים‪ .‬נקבל שכרגע ‪) 1 − δ − ε′′‬כאשר ‪ ε′′‬קטן‬
‫מאד( מהאילוצים מסופקים‪ ,‬אולם ‪ A′‬החדשה אינה עוד קידוד חוקי לפי "קוד ארוך"‪.‬‬
‫‪ 8.3‬נסיון שני לדרישת נאותות‪:‬‬
‫‪k‬‬
‫קיימת העתקה ‪ ψ‬שמקבלת פונקציה }‪ , f : {±1} → {±1‬ונותנת }‪ ψ (f ) ∈ {1, ..., k‬כך שאם ‪ fu‬ו ‪ fv‬מספקות‬
‫‪′‬‬
‫יותר מ ‪ 21 + ε′′′‬מהמשוואות ב‬
‫)‪ ,C(u,v‬אזי ) ‪ ψ (fu ) , ψ (fv‬מספקות את )‪ .C(u,v‬אבל כנראה שגם זו דרישה בעייתית‬
‫מדי‪.‬‬
‫‪ 8.4‬נסיון שלישי לדרישת נאותות‪:‬‬
‫‪k‬‬
‫‪ ψ‬העתקה מפונקציות }‪ f : {±1} → {±1‬ל ) ‪ ,D = ψ (f‬כך ש ‪ D‬התפלגות על }‪ {1, ..., k‬שמקיימת‪ :‬אם ‪fu , fv‬‬
‫‪′‬‬
‫)‪ ,C(u,v‬אז‬
‫מספקות יותר מ ‪ 21 + α‬מ‬
‫(‬
‫)‬
‫)‪P r C(u,v) (i) = j > ϕ (α‬‬
‫) ‪i ∼ ψ (fu‬‬
‫) ‪j ∼ ψ (fv‬‬
‫)כאן ‪ ϕ‬היא סתם פונקציה כלשהי של ‪(α‬‬
‫נוכיח כי הדרישה השלישית היא טובה‪:‬‬
‫∪‬
‫‪′‬‬
‫נניח ש ‪ A′‬מספקת יותר מ ‪ 12 + ε′‬מ‬
‫)‪. (u,v)∈E C(u,v‬‬
‫‪1‬‬
‫‪′‬‬
‫)‪(2‬‬
‫‪′‬‬
‫)‪C(u,v‬־ים )שמהווים נאמר החלק ה‬
‫אזי יש מספר קבוע של‬
‫‪ ε‬מתוך כלל ה )‪C(u,v‬ים( אשר הם לפחות ‪2 + α‬‬
‫ספיקים )אחרת הסכום הכולל לא היה יותר מחצי(‪.‬‬
‫‪′‬‬
‫)‪ C(u,v‬מתוך המספר הקבוע של ה‬
‫כעת לכל ‪ ,u‬נבנה השמה )‪ A (u‬ע"י דגימה אקראית מתוך ) ‪ .ψ (fu‬לכל‬
‫)‪(2‬‬
‫‪′‬‬
‫)‪C(u,v‬ים שהם לפחות ‪ 21 + α‬ספיקים‪ A ,‬מספקת את )‪ C(u,v‬בהסתברות )‪ .ϕ (α‬בתוחלת ־ יותר מ )‪ε · ϕ (α‬‬
‫)‪(2‬‬
‫מהאילוצים )‪ C(u,v‬מסתפקים ע"י ‪⇐ A‬כלומר בעיית ה ‪ LC‬המקורית שלנו היא לפחות )‪ ε · ϕ (α‬ספיקה‪ .‬כעת אם‬
‫נבחר את ‪ ε‬המקורי להיות קטן מגודל זה‪ ,‬נקבל את הרדוקציה המבוקשת‪.‬‬
‫עד כאן הראינו שדרישה ‪ 3‬אכן מספקת נאותות‪ ,‬אבל לא הצגנו שום דרך קונסטרוקטיבית לתרגם את האילוצים‪,‬‬
‫ולא הצגנו שום ‪ ,ψ‬אשר קיומה נדרש לנו‪.‬‬
‫‪8.5‬‬
‫בניית המשוואות הליניאריות‬
‫‪8.5.1‬‬
‫נסיון ראשון‬
‫‪k‬‬
‫ניקח }‪) x, y ∈R {−1, 1‬כלומר נבחר באקראי(‪ .‬המשוואה תהיה‪:‬‬
‫‪fu (x) · fv (y) · fu (z) = 1‬‬
‫אם ‪ fu‬הוא קידוד של ‪ i‬וכנ"ל ‪ fv‬הוא קידוד של ‪ ,j‬אז משוואה זו היא בעצם‪:‬‬
‫‪xi · yj · zi = 1‬‬
‫נניח ש )‪ j = C(u,v) (i‬ואז נוכל לכתוב‪:‬‬
‫‪xi · yC(u,v) (i) · zi = 1‬‬
‫‪19‬‬
‫קל לוודא שכדי שזה יתקיים חייב להיות )‪ ,zi = xi · yC(u,v) (i‬וכיוון שלא ידוע לנו ‪ ,i‬זה צריך להיות נכון לכל ‪ ,i‬כלומר‬
‫המשוואה‪:‬‬
‫‪fu (x) · fv (y) · fu (z) = 1‬‬
‫עבור ‪ z‬המוגדר על ידי )‪zi = xi · yC(u,v) (i‬‬
‫‪8.5.2‬‬
‫נסיון שני‬
‫ניקח את ‪ zi‬להיות כפי שהגדרנו אותו בנסיון הקודם‪ zi = xi · yC(u,v) (i) :‬בהסתברות ‪ ,1 − δ‬ו )‪zi = −xi · yC(u,v) (i‬‬
‫בהסתברות ‪.δ‬‬
‫‪: 9‬‬
‫נחזור להגדרת אופן בניית המשוואות מהשיעור הקודם‪.‬‬
‫נתבונן ב ‪ ,C ′‬אוסף המשוואות הלינאריות עם מציין ‪ 2‬שבנינו‪ ,‬בתור התפלגות על ‪ 2k‬משתנים‪.‬‬
‫‪k‬‬
‫ניקח }‪ ,x, y ∼ {−1.1‬ונרשום את המשוואה‪:‬‬
‫= )?( ‪fu (x) fv (y) fu‬‬
‫כעת כיוון ש ‪ fu (x) = xi‬ו ‪ fv (y) = yj‬נוכל לבחור את "?" להיות כזה שכשכופלים אותו ב ‪ fu (x) fv (x) ,‬מקבלים‬
‫‪fu (x) fv (y) fu (?) = 1‬‬
‫ברור שאם נבחר ? כך ש )‪ fu (?) = xi yj = xi yC(i‬נקבל את המבוקש‪.‬‬
‫נסמן את )‪ xi yC(i‬ע"י ‪x · y c‬‬
‫עם זאת ־ אם נבחר את ‪ f‬להיות קבועה על ‪ 1‬כל המשוואות יסתפקו‪ ,‬אז אנחנו בבעיה‪.‬‬
‫אם היינו בוחרים את המשוואות להיות מהצורה ‪ ... = −1‬אז הפונקציה הקבועה על ‪ −1‬תספק את כל המשוואות‪.‬‬
‫הבעיה הזאת נפתרת על ידי הגרלה‪ ,‬כלומר המשוואות שניקח תהיינה‪:‬‬
‫‪fu (x) fv (y) fu (ζ · x · y c ) = ζ‬‬
‫כאשר }‪ζ ∼ {−1, 1‬‬
‫{‬
‫‪1 w.p. 1 − ε‬‬
‫= ‪ ,Zi‬ונחליף את המשוואה ל‪:‬‬
‫אז נבחר ‪ Z1 , ..., Zk‬כך ש‬
‫‪−1 w.p. ε‬‬
‫‪fu (x) fv (y) fu (ζ · x · y c · Z) = ζ‬‬
‫מדוע עשינו זאת?‬
‫נשים לב שבמצב הקודם של המשוואה ־ לא רק השמות מספקות של ‪ fu , fv‬יספקו את המשוואה‪ ,‬אלא גם‪ ,‬למשל‪,‬‬
‫מכפלות באורך ‪ 3‬של השמות מספקות‪.‬‬
‫למשל‪ :‬נניח ש ‪ u1 , v1‬השמה מספקת וכן ‪ u2 , v2‬וגם ‪ ,u3 , v3‬ואז נקבל כי עבור השמה ל ‪ 2k‬המשתנים שלנו שהיא‬
‫‪ fu1 · fu2 · fu3‬ו ‪ ,fv1 · fv2 · fv3‬נקבל שתוצאת המשוואה תהיה ‪ ζ 3‬אשר שווה ל‪.ζ‬‬
‫לכן הוספנו את אלמנט ה ‪ ,Z‬ואז במקרה של מכפלות ארוכות של השמות חוקיות‪ ,‬נקבל כי‬
‫∏‬
‫· ‪fu (x) fv (y) fu (ζ · x · y c · Z) = ζ‬‬
‫‪Zi‬‬
‫‪i∈S‬‬
‫והתוחלת של מכפלות של ‪ Zi‬שואפת לאפס כאשר המכפלות הן ארוכות )‪ S‬היא קבוצת האינדקסים במכפלה(‪.‬‬
‫∏ ]‬
‫|‪|S‬‬
‫= ‪Zi‬‬
‫)‪E [Zi ] = (1 − 2ε‬‬
‫∏[‬
‫‪E‬‬
‫‪ 9.1‬עוד הגדרות‬
‫הגדרה ‪ 9.1‬נגדיר עבור }‪S ⊆ {1, ..., k‬את הפונקציה‪:‬‬
‫∏‬
‫=‪χS (x) :‬‬
‫‪xi‬‬
‫‪i∈S‬‬
‫‪k‬‬
‫כאשר כמקודם }‪x ∈ {−1, 1‬‬
‫נתבונן באוסף הפונקציות מ }‪ {−1.1‬לממשיים‪ ,‬שיסומן ע"י‬
‫ממימד ‪ 2k‬מעל הממשיים‪.‬‬
‫‪{±1}k‬‬
‫‪k‬‬
‫‪ ,R‬אשר קל לראות שמגדיר מרחב וקטורי‬
‫הגדרה ‪ 9.2‬מכפלה פנימית על המרחב לעיל ע"י‪:‬‬
‫])‪⟨f, g⟩ = Ex∼{±1}k [f (x) g (x‬‬
‫ואז‪:‬‬
‫‪S=T‬‬
‫‪S ̸= T‬‬
‫{‬
‫∏‬
‫‪1‬‬
‫=‬
‫= ] ‪E [xi‬‬
‫‪0‬‬
‫‪i∈S∆T‬‬
‫]‬
‫‪xi‬‬
‫∏‬
‫‪‬‬
‫[‬
‫‪xj  = E‬‬
‫‪i∈S∆T‬‬
‫∏‬
‫‪j∈T‬‬
‫· ‪xi‬‬
‫∏‬
‫‪‬‬
‫‪⟨χS , χT ⟩ = E ‬‬
‫‪i∈S‬‬
‫ולכן הקבוצה }}‪ {χA : A ⊆ {1, ..., k‬היא בגודל ‪ 2k‬וכן כל שני וקטורים בתוכה ניצבים זל"ז‪ ,‬וארכם ‪ ,1‬ולכן זהו‬
‫בסיס אורתונורמלי למרחב הוקטורי‪.‬‬
‫‪k‬‬
‫הערה ‪ 9.3‬לכל פונקציה ‪ f : {±1} → R‬קיימת דרך יחידה לרשום את ‪ f‬באופן הבא‪:‬‬
‫∑‬
‫=‪f‬‬
‫‪fˆ (S) · χS‬‬
‫}‪S⊆{1,...,k‬‬
‫ונובע מכך שניתן לחלץ את המקדמים )‪ fˆ (S‬ע"י‪:‬‬
‫⟩ ‪fˆ (S) = ⟨f, χS‬‬
‫כעת אם הטווח של ‪ f‬במקום הממשיים הוא }‪ ,{±1‬אז נקבל‪:‬‬
‫‪2‬‬
‫‪fˆ (S) = ⟨f, f ⟩ = 1‬‬
‫‪9.2‬‬
‫∑‬
‫קצת אנליזה‬
‫∑‬
‫∑‬
‫כעת בהנתן ‪ , fu , fv‬נרשום ‪ fu = S fˆu (S) · χS‬וגם ‪ fv = S fˆv (S) · χS‬וננתח את‪:‬‬
‫[‬
‫(‬
‫] )‬
‫)‪E fu (x) fv (y) fu ζ · x · y C · Z · ζ = P r (sat) − P r (unsat‬‬
‫()‬
‫()‬
‫] )‬
‫∑‬
‫∑‬
‫(‬
‫)‬
‫‪C‬‬
‫ˆ‬
‫ˆ‬
‫ˆ‬
‫)‪fu (S) χS (x‬‬
‫)‪fv (R) χR (y‬‬
‫‪·ζ‬‬
‫‪fu (T ) χT ζ · x · y · Z‬‬
‫‪T‬‬
‫‪‬‬
‫‪R‬‬
‫‪fˆu (S) fˆv (R) fˆu (T ) ...‬‬
‫∑‬
‫([‬
‫‪E‬‬
‫‪S‬‬
‫‪‬‬
‫∑‬
‫‪=E ‬‬
‫‪S,R,T‬‬
‫[‬
‫((‬
‫] ))‬
‫‪fˆu (S) fˆv (R) fˆu (T ) · E χS (x) χR (y) χT ζ · x · y C · Z · ζ‬‬
‫∑‬
‫‪S,R,T‬‬
‫=‬
‫מכיוון שפונקציית ה ‪ χ‬כפי שהגדרנו אותה מקיימת )‪ ,χS (a · b) = χS (a) χS (b‬וכיוון ש ‪ ζ‬הוא קבוע )‪ 1‬או ‪ (−1‬אז‬
‫מתקיים‪:‬‬
‫∏‬
‫= )‪χT (ζ · x · ...‬‬
‫‪ζ · xi · ...‬‬
‫‪i∈T‬‬
‫ולכן מהמכפלה הנ"ל מתקיים‪:‬‬
‫]‬
‫∑‬
‫) (‬
‫=‬
‫‪fˆu (S) fˆv (R) fˆu (T ) · E χS (x) χR (y) · χT (x) · χT y C · χT (Z) · ζ |T | · ζ‬‬
‫[‬
‫‪S,R,T‬‬
‫[‬
‫]‬
‫]‬
‫[‬
‫) (‬
‫‪fˆu (S) fˆv (R) fˆu (T ) · E χS (x) χR (y) · χT (x) · χT y C · χT (Z) · E ζ |T |+1‬‬
‫} ‪| {z‬‬
‫‪S,R,T‬‬
‫∑‬
‫=‬
‫‪0 if T is even‬‬
‫וזה נותן ‪ 0‬אם | ‪ |T‬זוגי‪ ,‬כי התוחלת של ‪ ζ‬מאפסת את הביטוי‪ ,‬אחרת ־ התוחלת של ‪ ζ‬תיתן ‪ , 1‬ונתמקד בחלק האחר‬
‫של התוחלת‪ ,‬ניזכר שה ‪ χ‬הן בסיס אורתונורמלי‪ ,‬ולכן מכפלת ‪ χS‬ו ‪ χT‬היא ‪ 0‬אם ‪ ,T ̸= S‬ו ‪ 1‬אחרת‪ .‬כלומר הביטוי‬
‫לא יתאפס רק אם ‪ S = T‬וגם | ‪|T‬אי זוגי‪.‬‬
‫נתבונן כעת בביטוי שמופיע‪:‬‬
‫∏‬
‫∏‬
‫) (‬
‫)‪( C‬‬
‫= ‪χT y C‬‬
‫=‪y i‬‬
‫)‪yC(i‬‬
‫‪i∈T‬‬
‫‪i∈T‬‬
‫נגדיר‪:‬‬
‫}‪C2 (T ) = {j : # {i ∈ T : C (i) = j} is odd‬‬
‫ואז‬
‫)‪yi = χC2 (T ) (y‬‬
‫∏‬
‫) ‪j∈C2 (T‬‬
‫= )‪yC(i‬‬
‫∏‬
‫‪i∈T‬‬
‫והביטוי הקודם שקיבלנו הוא‪:‬‬
‫[‬
‫]‬
‫[‬
‫]‬
‫∑‬
‫ˆ‬
‫ˆ‬
‫ˆ‬
‫=‬
‫‪fu (S) fv (R) fu (T ) · E χS (x) χR (y) ·χT (x) · χC2 (T ) (y) ·χT (Z) · E ζ |T |+1‬‬
‫} ‪| {z‬‬
‫} ‪| {z‬‬
‫} ‪| {z‬‬
‫‪S,R,T‬‬
‫‪0 if T is even‬‬
‫נשים לב שמנימוק דומה לקודם )האורתונורמליות( מתקבל ‪ χC2 (y) · χR (y) ̸= 0‬רק אם ‪.C2 (T ) = R‬‬
‫לכן כדי שהביטוי לא יתאפס דרוש לנו בו זמנית ‪ S = T‬וגם ‪ C2 = R‬וגם | ‪ |T‬אי־זוגי‪.‬‬
‫תחת ההנחות הללו הביטוי הנ"ל שווה ל‪:‬‬
‫∑‬
‫‪2‬‬
‫|‪|S‬‬
‫)‪fˆu (S) fˆv (C2 (S)) · (1 − 2ε‬‬
‫‪S:|S| is odd‬‬
‫‪10‬‬
‫המשך הרדוקציה למשוואות ליניאריות‬
‫וזה נותן את ההסתברות ש ‪ fu , fv‬מסתפקות פחות ההסתברות שאינן מסתפקות )כי התוחלת כופלת ב ‪ 1‬משוואות‬
‫מסתפקות וב ‪ −1‬משוואות שאינן מסתפקות(‪ ,‬או גם‪:‬‬
‫‪2P r [fu , fv satisf y e]e∼C ′ − 1‬‬
‫בסכום שלעיל יתקבל משהו שאינו אפס רק כאשר ‪ S‬היא היחידון ‪ i‬ו )‪ C2 (S‬היחידון ‪ ,j‬ואז יתקבל בסכום ‪,1 − 2ε‬‬
‫כלומר אם ‪ fu , fv‬קידודים חוקיים בקידוד ארוך ־ אז נקבל את תכונה ‪ 1‬שרצינו‪ ,‬שכן ההסתברות לספק את ‪fu , fv‬‬
‫גדולה או שווה ל ‪ 1 − ε‬כפי שרצינו‪.‬‬
‫נרצה לקבל את תכונה ‪ :2‬נניח שמתקיים )*(‬
‫‪P r [fu , fv satisf ies e]e∼C ′ ≥ 1 − ε − α‬‬
‫נרצה כעת פונקציית פיענוח ‪ ψ‬מ ‪) f‬פונקציות( ל }‪ ψ (f ) ∈ {1, ..., k‬כך שאם אכן מתקיים )*( אז יתקיים‬
‫) ‪C (ψ (fu )) = ψ (fv‬‬
‫ˆ‬
‫ניקח עבור ) ‪ ψ (f‬להיות הקואורדינטה המינימלית ‪ i‬כך ש )}‪ f ({i‬מקסימלי‪ .‬כעת כיוון ש‪:‬‬
‫)‪f (x) = Xi = 1 · χ{i} (x‬‬
‫‪fˆ ({i}) = 1‬‬
‫כעת אם מתקיים )∗(‪ ,‬מתכונה ‪ 1‬מובטח לנו שהתוחלת היא פעמיים ההסתברות ש ‪ fu , fv‬יסתפקו פחות ‪ ,1‬ההסתברות‬
‫הזו היא לפי )∗( לפחות ‪ 1 − ε − α‬ולכן התוחלת היא לפחות‪:‬‬
‫‪1 − 2ε − 2α‬‬
‫נסמן‪:‬‬
‫‪2‬‬
‫|‪|S‬‬
‫)‪fˆu (S) fˆv (C2 (S)) · (1 − 2ε‬‬
‫∑‬
‫=∇‬
‫‪S:|S| is odd‬‬
‫וכעת ידוע לנו כי‪:‬‬
‫‪2‬‬
‫))‪fˆu (S) fv (C2 (S‬‬
‫}‬
‫∑‬
‫|‪|S‬‬
‫)‪(1 − 2ε‬‬
‫‪2‬‬
‫‪fˆu (S) fv (C2 (S)) +‬‬
‫‪|S| odd and>1‬‬
‫)‪1 − 2ε − 2α ≤ ∇ ≤ (1 − 2ε‬‬
‫‪|S|=1‬‬
‫|‬
‫‪{z‬‬
‫∑‬
‫‪A‬‬
‫נשים לב כי ב ‪ A‬ידוע לנו ש ‪ fˆv < 1‬ולכן נוכל לוותר עליו ולכל היותר נגדיל את הביטוי‪ ,‬כמו כן כיוון ש ‪ |S| ≥ 3‬אז‬
‫|‪|S‬‬
‫‪3‬‬
‫)‪ (1 − 2ε) ≤ (1 − 2ε‬ולכן נחליף ב ‪ A‬בין שני אלו ונקבל‪:‬‬
‫∑‬
‫∑‬
‫‪3‬‬
‫‪2‬‬
‫‪2‬‬
‫)‪(1 − 2ε) fˆu (S‬‬
‫‪fˆu (S) fv (C2 (S)) +‬‬
‫)‪∇ ≤ (1 − 2ε‬‬
‫‪|S| odd and>1‬‬
‫∑‬
‫‪2‬‬
‫)‪fˆu (S‬‬
‫‪|S|=1‬‬
‫‪2‬‬
‫‪3‬‬
‫)‪fˆu (S) fv (C2 (S)) + (1 − 2ε‬‬
‫‪|S| odd and>1‬‬
‫∑‬
‫)‪≤ (1 − 2ε‬‬
‫‪|S|=1‬‬
‫∑‬
‫‪∑ ˆ2‬‬
‫ולכן ‪fˆu2 ≤ 1− |S|=1 fˆu2‬‬
‫כעת כמובן ‪fu = 1‬‬
‫‪‬‬
‫‪‬‬
‫∑‬
‫∑‬
‫‪2‬‬
‫‪3‬‬
‫‪2‬‬
‫)‪≤ (1 − 2ε‬‬
‫‪fˆu (S) fv (C2 (S)) + (1 − 2ε) 1 −‬‬
‫‪fˆu (S) ‬‬
‫∑‬
‫‪|S|≥3‬‬
‫‪|S|=1‬‬
‫‪ ,‬נציב זאת ונקבל‪:‬‬
‫‪|S|=1‬‬
‫‪‬‬
‫(‬
‫)‬
‫‪3‬‬
‫‪3‬‬
‫‪2‬‬
‫)‪fˆu (S)  1 − 2ε − (1 − 2ε) + (1 − 2ε‬‬
‫∑‬
‫‪‬‬
‫‪=‬‬
‫‪|S|=1‬‬
‫ולכן‪:‬‬
‫)‪(α‬‬
‫)‪1 − 2ε − 2α − (1 − 2ε‬‬
‫‪2‬‬
‫≥ )‪fˆu (S‬‬
‫=‬
‫‪1‬‬
‫‪−‬‬
‫‪O‬‬
‫‪3‬‬
‫‪ε‬‬
‫)‪1 − 2ε − (1 − 2ε‬‬
‫‪|S|=1‬‬
‫‪3‬‬
‫∑‬
‫ולכן‪:‬‬
‫)‪(α‬‬
‫‪2‬‬
‫‪fˆu (S) < O‬‬
‫‪ε‬‬
‫‪2‬‬
‫)‪fˆu ({i}) fˆv (C ({i})) · (1 − 2ε‬‬
‫)‪(α‬‬
‫‪ε‬‬
‫∑‬
‫∑‬
‫‪|S|≥3‬‬
‫‪2‬‬
‫= )‪fˆu (S) fˆv (C2 (S)) · (1 − 2ε‬‬
‫∑‬
‫‪|S|=1‬‬
‫‪i‬‬
‫‪≥1 − 2ε − 2α − O‬‬
‫ולכן‪:‬‬
‫)‪(α‬‬
‫‪ε‬‬
‫‪1 − 2ε − 2α − O‬‬
‫‪2‬‬
‫≥ ))}‪fˆu ({i}) fˆv (C ({i‬‬
‫‪1 − 2ε‬‬
‫)‪(α‬‬
‫‪≥1 − 4α − O‬‬
‫‪ε‬‬
‫∑‬
‫‪i‬‬
‫כיוון שהסכום של כל ה ‪ fu2 ˆ< 1‬אפשר להסתכל עליהם כמשקלים בממוצע משוקלל על ‪ fˆv‬ולכן קיבלנו שיש לנו ממוצע‬
‫משוקלל של ה ‪ fˆv‬־ים שגדול מגודל מסויים‪ ,‬מכך נובע ־ שיש לפחות ))‪ fˆv (C (i‬אחד‪ ,‬שהוא גדול או שווה לגודל‬
‫המסויים הזה‪ .‬כלומר‪:‬‬
‫)‪(α‬‬
‫‪∃C (i) s.t. fˆv (C (i)) ≥ 1 − 4α − O‬‬
‫‪ε‬‬
‫כעת לא זאת בלבד שיש אחד שכזה‪ ,‬יש לכל היותר אחד‪ ,‬שכן ‪ α‬קטן מאד‪ ,‬ולכן גודל זה קרוב מאד ל ‪ ,1‬ולא יכולים‬
‫להיות שניים‪.‬‬
‫מכאן נובע שבסכום )ה"ממוצע המשוקלל" שלנו( יש רכיב אחד )כלומר ‪ j‬אחד( שמהווה את רוב ערכו של הסכום‪,‬‬
‫כלומר )‪ fˆv (j‬כך שגודל זה גדול מ )‪.1 − O (α‬‬
‫כלומר‪:‬‬
‫)‪(α‬‬
‫∑‬
‫‪2‬‬
‫‪fˆu (i) fˆv (j) ≥ 1 − 4α − O‬‬
‫‪3‬‬
‫‪i:C(i)=j‬‬
‫ואז‪:‬‬
‫)‪(α‬‬
‫‪3‬‬
‫‪2‬‬
‫‪fˆu (i) ≥ 1 − 4α − O‬‬
‫∑‬
‫‪i:C(i)=j‬‬
‫וממשפט של פרידגוט‪ ,‬קלעי ונאור אנחנו מקבלים שעבור פונקציה בוליאנית שקרובה מאד ל ‪ 1‬־ לא יתכן שהמקדמים‬
‫"מתפזרים"‪ ,‬כלומר חייב להיות מקדם שהוא הרבה יותר דומיננטי מכל האחרים‪ ,‬ואז נקבל שקיים ויחיד ‪ i‬שמקיים‬
‫‪ C (i) = j‬כפי שרצינו‪.‬‬
‫אם נרצה לוותר על השימוש במשפט‪ ,‬נשנה את ‪ ψ‬באופן הבא‪:‬‬
‫‪2‬‬
‫) ‪ : ψ (f‬בחר ‪ i‬בהסתברות פרופורציונית ל )‪fˆ (i‬‬
‫כעת נרצה לקבל את תכונת הנאותות השלישית‪ ,‬ולכן נניח שמתקים‪:‬‬
‫‪1‬‬
‫‪+α‬‬
‫‪2‬‬
‫≥ ‪P r [fu , fv satisf y e]e∼C ′‬‬
‫ואז נקבל‪ ,‬בדומה למקרה הקודם שמתקיים‪:‬‬
‫∇ ≤ ‪2α‬‬
‫נרצה ‪ ψ‬מ ‪ f‬ל }‪ ψ (f ) ∼ {1, ..., k‬כך שיתקיים ‪P r [C (ψ (fu )) = ψ (fv )] ≥ ϕ (α, ε) > 0‬‬
‫‪24‬‬
‫)כלומר מ ‪ f‬יתקבל וקטור באורך ‪ k‬שסכום הקואורדינטות שלו ‪ ,1‬שבכל קואורדינטה ההסתברות של האינדקס‬
‫שלה(‬
‫ראינו קודם שכאשר ∇ קרובה ל ‪ ,1‬מרבית המשקל בסכום מתקבל מיחידונים )כלומר ‪ ,(|S| = 1‬וכאן אנחנו לא‬
‫יכולים לומר זאת‪.‬‬
‫יהי ‪ l = log1−2ε α‬ואז‬
‫∑‬
‫‪(...) ≤ α‬‬
‫‪|S|≥l‬‬
‫וכיוון שהסכום על כל גדלי ‪ S‬הוא ‪ ,∇ = 2α‬נובע מכך כי‪:‬‬
‫∑‬
‫‪2‬‬
‫|‪|S‬‬
‫‪fˆu (S) fˆv (C2 (S)) (1 − 2ε) ≥ α‬‬
‫‪|S|<l and is odd‬‬
‫כעת אפשר לוותר על ההכפלה ב )‪ (1 − 2ε‬ולשמור על אי השוויון )נזכור כי הכנסנו אותה במקור רק כי הכנסנו‬
‫למערכת "רעש" באמצעות ‪ Z‬כדי למנוע ממכפלות ארוכות של ‪ f‬להשפיע על התוצאה הסופית‪ ,‬ואנחנו מתעסקים עם‬
‫מכפלות באורך חסום כרגע( ולכן‪:‬‬
‫∑‬
‫‪2‬‬
‫‪fˆu (S) fˆv (C2 (S)) ≥ α‬‬
‫‪|S|<l and is odd‬‬
‫כעת נוסיף לאילוץ הסכימה את האילוץ שאנחנו סוכמים רק על איברים שעבורם ‪ ,fˆv (C2 (S)) ≥ α2‬מדוע זה בסדר?‬
‫מכיוון שיש לנו ממוצע ממושקל שהוא גדול מ ‪ ,α‬אזי בפרט אם נזרוק את כל האיברים שהם קטנים מ ‪ , α2‬לא נקטין‬
‫את הסכום הכולל יותר מ ‪ , α2‬ולכן‪:‬‬
‫∑‬
‫‪α‬‬
‫‪2‬‬
‫≥ ))‪fˆu (S) fˆv (C2 (S‬‬
‫‪2‬‬
‫‪α‬‬
‫‪|S|<l and is odd and fˆv (C2 (S))≥ 2‬‬
‫נגדיר את ) ‪ ψ (f‬כך שבסיכוי ‪: 12‬‬
‫‪2‬‬
‫]פיענוח לפי ‪ [u‬נבחר ‪S‬בסיכוי )‪ fˆu (S‬ואז נבחר ‪ i ∈ S‬רנדומי וזה יהיה ) ‪.ψ (f‬‬
‫ובסיכוי ‪: 12‬‬
‫‪α‬‬
‫]פיענוח לפי ‪ [v‬נסתכל על ‪S‬ים כך ש ־ ‪ fˆ (S) ≥ 2‬ונבחר אחד מהם בסיכוי פרופורציוני ל )‪ ,fˆ (S‬נבחר ‪j ∈ S‬‬
‫מקרי וזה ) ‪) .ψ (f‬אם אין )‪ fˆ (S‬לפי דרישתנו‪ ,‬נבחר ‪(j = 1‬‬
‫ננתח את הסיכוי ש ‪ ψ‬מספקת את ‪:C‬‬
‫‪1‬‬
‫‪l‬‬
‫∑‬
‫· ]‪P r [W e chose S f or u and C2 (S) f or v‬‬
‫‪|S|<l and is odd and fˆv (C2 (S))≥ α‬‬
‫‪2‬‬
‫‪1‬‬
‫·‬
‫‪4‬‬
‫≥ ]‪P r [ψ satisf ies C‬‬
‫כי בהנתן שבחרנו "נכון"‪ ,‬אז אכן האילוץ מתקיים בהסתברות לפחות ‪. 1l‬‬
‫וכיוון שבחרנו פרופורציונית‪ ,‬צריך לחשב מהו קבוע הנירמול שלנו‪ ,‬ידוע שסכום הריבועים של ה ‪ fˆv‬הוא ‪ 1‬ולכן‪:‬‬
‫√‬
‫∑‬
‫‪4‬‬
‫‪2‬‬
‫ˆ‬
‫‪fv (T ) · 1‬‬
‫≤‬
‫·‪1‬‬
‫≤‬
‫‪2‬‬
‫}‪|{z‬‬
‫‪α‬‬
‫‪α‬‬
‫‪α‬‬
‫‪fv (T )> 2‬‬
‫‪cauchy−shcwartz‬‬
‫ולכן‪:‬‬
‫‪α‬‬
‫ˆ ∑ ‪α‬‬
‫‪2‬‬
‫·‬
‫≥ ))‪fu (S) fˆv (C2 (S‬‬
‫‪8l‬‬
‫‪16l‬‬
‫‪2‬‬
‫‪|S|...‬‬
‫נציב את הערך של ‪ l‬כפי שהגדרנו אותו ונקבל‪:‬‬
‫‪2‬‬
‫‪α ε‬‬
‫) (‬
‫‪8 log α1‬‬
‫≈‬
‫‪11‬‬
‫משפט ה ‪P CP‬‬
‫הערה ‪ 11.1‬אם במקום רדוקציה ל ‪ E3 − LIN‬ניקח רדוקציה ל ‪ E3 − SAT‬נוכל לקבל תמונה דומה‪ ,‬כאשר השמה‬
‫‪7‬‬
‫‪′‬‬
‫מספקת ל ‪ u, v‬תיתן השמה מספקת ל ‪) Vu , Vv‬עם האילוץ )‪ ,(C(u,v‬ובמידה שיש השמה מספקת יותר מ ‪8 + α‬‬
‫מקבוצות המשתנים בוליאניים‪ ,‬נוכל לקבל השמה שמספקת את ‪ u, v‬בהסתברות )‪ ε (α‬כמקודם‪.‬‬
‫(‬
‫)‬
‫נרצה להראות כי בעיית הפער ‪ 1 − ε, 78 + α‬עבור ‪ E3 − SAT‬היא ‪N P‬־קשה‪.‬‬
‫זה מתקבל בקלות מתוך ההוכחה שסיימנו בשיעור הקודם‪ ,‬מתחילים מבעיה ב ‪ ,E3 − LIN‬מתרגמים כל משוואה‬
‫לארבע פסוקיות ב ‪ ,E3 − SAT‬כך למשל המשוואה‪:‬‬
‫‪x17 + x13 + x7 = 1‬‬
‫מסתפקת ע"י ‪ 4‬מתוך ‪ 8‬ההשמות האפשריות למשתנים הללו‪ ,‬ולכן נגדיר ‪ 4‬פסוקיות כך שכל אחת מהן לא מסתפקת‬
‫על ידי אחת מההשמות ה"רעות"‪ ,‬ולכן‪:‬‬
‫) ‪(x17 ∨ x13 ∨ x7‬‬
‫) ‪(x17 ∨ x13 ∨ x7‬‬
‫) ‪(x17 ∨ x13 ∨ x7‬‬
‫) ‪(x17 ∨ x13 ∨ x7‬‬
‫‪α‬‬
‫‪4‬‬
‫תהיה הרדוקציה של הנוסחה לעיל‪.‬‬
‫שמה שהוא ‪ 1 − ε‬ספיק יעבור לבעיה שאף היא ‪ 1 − ε‬ספיקה‪ .‬ומ ‪+ α‬‬
‫נקבל‬
‫(‬
‫מכך )‬
‫‪. 34 12 − α = 78 +‬‬
‫‪1‬‬
‫‪2‬‬
‫ספיקות נקבל ‪+ α +‬‬
‫‪1‬‬
‫‪2‬‬
‫משפט ‪P CP 11.2‬־ קיימים קבועים ‪ k‬ו ‪ ε > 0‬כך שבעיית הפער )‪ (1, 1 − ε‬עבור )‪ 2 − csp (k‬היא ‪N P‬־קשה‪.‬‬
‫מכך נובע‬
‫‪na‬‬
‫‪N P ⊆ P CP1,1−ε‬‬
‫]‪[O (log n) , 2, log k‬‬
‫למה ‪ 11.3‬ראשית ־ קיים ‪ k‬קבוע ו ‪ ε0 > 0‬קבוע‪ ,‬ואלגוריתם פולינומי כך שהקלט לאלגוריתם הוא בעיית )‪,2 − csp (k‬‬
‫נסמנה ‪ ,I‬והפלט הוא בעיית )‪ 2 − csp (k‬שנסמנה ‪ ,I ′‬כך ש‪:‬‬
‫‪)|I ′ | ≤ C · |I| .1‬כלומר גודל הבעיה החדשה לא גדול מדי(‬
‫‪) .2‬שלמות( אם ‪ I‬ספיקה לחלוטין‪ ,‬כך גם ‪) I ′‬כלומר שלמות ‪ 1‬נשמרת באלגוריתם(‪.‬‬
‫‪) .3‬חיזוק( אם ‪ I‬הוא ‪ 1 − ε‬ספיק‪ ,‬אז ‪ I ′‬הוא } ‪ max {1 − 2ε, 1 − ε0‬ספיק‪.‬‬
‫ומכך נובע משפט ה ‪ P CP‬ע"י הפעלת הלמה ‪ log n‬פעמים‪.‬‬
‫הגדרה קטנה‪ :‬אם ‪ I‬היא ‪ 1 − ε‬ספיקה‪ ,‬נאמר ש ‪ ε‬היא הגריעות )‪ (badness‬של ‪.I‬‬
‫‪26‬‬
‫‪11.1‬‬
‫האלגוריתם בקווים כלליים‬
‫‪11.1.1‬‬
‫שלב ראשון ־ יפוי )‪(beautif ying‬‬
‫‪1‬‬
‫נייצר מ ‪ I‬את ‪ ,I‬שהוא גם כן בעיית )‪ ,2csp (k‬המיוצגת ע"י גרף‪ ,‬שהוא גם גרף מרחיב‪ .‬כמו כן ־ אם ‪ I‬ספיקה‬
‫לחלוטין‪ ,‬כך גם ‪.I 1‬‬
‫וכן‪:‬‬
‫) (‬
‫)‪Badness I 1 ≥ C1 · Badness (I‬‬
‫)קיימנו את דרישת השלמות בלמה(‬
‫‪11.1.2‬‬
‫שלב שני ־ חיזוק )‪(amplif ying‬‬
‫נייצר מ ‪ I 1‬את ‪ I 2‬תוך שמירה על קריטריון השלמות‪ ,‬כך שאו‪:‬‬
‫√‬
‫) (‬
‫) (‬
‫‪Badness I 2 ≥ C2 · t · Badness I 1‬‬
‫או‪:‬‬
‫) (‬
‫‪Badness I 2 ≥ 1000 · ε0‬‬
‫כמו כן ‪ I 2‬תהיה בעיה שהאלפבית של האילוצים שלה לא יהיה ‪ k‬אלא )‪) k ′ = k ′ (k, t‬כלומר ‪ k ′‬תלוי ב ‪ (k, t‬וגם‬
‫‪ k ′‬יהיה גדול מ ‪ k‬בהרבה‪.‬‬
‫‪11.1.3‬‬
‫שלב שלישי ־ קידוד )‪(encoding‬‬
‫נייצר מ ‪ I 2‬את ‪ I ′‬תוך שמירה על קריטריון השלמות‪ ,‬כך ש‪:‬‬
‫) (‬
‫‪Badness (I ′ ) ≥ Ce · Badness I 2‬‬
‫ו ‪ I ′‬יהיה מעל אלפבית בגודל ‪.k‬‬
‫‪11.2‬‬
‫שלב היפוי‬
‫‪ .1‬לייצר גרף בעל דרגה קבועה‬
‫‪ .2‬לקבל הרחבה )כלומר גרף מרחיב מהגרף הקודם( בעלת דרגה קבועה‬
‫נתחיל דווקא מהשלב השני ־ יש בידינו גרף אילוצים בעל דרגה קבועה‪ ,‬ונרצה להרחיב אותו לכלל גרף מרחיב‪.‬‬
‫‪11.2.1‬‬
‫השגת דרגה קבועה‬
‫‪′‬‬
‫‪′‬‬
‫נחליף כל קודקוד ‪ u‬בקבוצת קודקודים ‪ u‬שגדלה כדרגת ‪ ,u‬ולכל צלע ‪ u, v‬תהיה צלע בין קודקוד יחיד ב ‪ u‬לקודקוד‬
‫יחיד ב ‪.v ′‬‬
‫‪′‬‬
‫למעשה החלפנו כל קודקוד ב"ענן" של קודקודים‪ ,‬שכל אחד מהם דרגתו ‪ .1‬בתוך כל ענן ‪ u‬־ נבנה גרף מרחיב‬
‫בין הקודקודים המשתתפים בענן‪ ,‬וכך נעשה לכל העננים‪ ,‬כך שדרגת כל הגרפים המרחיבים הללו קבועה ‪ ,d‬וזה ניתן‬
‫להשגה יחסית בקלות‪ .‬הצלעות שבתוך כל ענן יהיו אילוצי שוויון‪ ,‬נקבל שהשמה מספקת ל ‪ I‬תספק גם את הגרף החדש‬
‫שבנינו )אם נציב לכל הקודקודים ב ‪ u′‬את הערך שקיבל ‪ u‬קודם לכן(‪ .‬אפשר להראות שמתקיימת דרישת הנאותות‪,‬‬
‫כיוון ש"שיפור" ההסתפקות של הגרף החדש יכול לנבוע רק מהשמת ערכים שונים לקודקודים בתוך ענן )אחרת זה‬
‫שקול להשמה ל ‪ ,(I‬וניתן להראות שאילוצי השוויון על הקודקודים בגרף המרחיב שבענן‪ ,‬והיותו גרף מרחיב‪ ,‬גוררים כי‬
‫על כל "רמאות" שכזו‪ ,‬שמאפשרת סיפוק צלע שלא היתה מסופקת על ידי השמה מיטבית בגרף המקורי‪ ,‬נשלם בצלעות‬
‫שלא יסתפקו בתוך הענן עצמו‪ ,‬ולכן לא נצליח לשפר את ההסתפקות של הגרף החדש על ידי "רמאות" כגון זו‪ ,‬ולכן‬
‫הנאותות תשתמר‪.‬‬
‫‪11.3‬‬
‫הרחבה וחיזוק‬
‫‪11.3.1‬‬
‫הרחבת הגרף‬
‫אם ניקח גרף מרחיב כלשהו על אותם קודקודים‪ ,‬ונוסיף את כל צלעותיו לגרף הקיים )במקום שכבר ישנן צלעות נוסיף‬
‫צלעות כפולות(־ נקבל גרף מרחיב )קל לוודא זאת(‪ ,‬ואם הגרף המרחיב וגם הגרף שהתחלנו איתו היו רגולריים‪ ,‬נקבל‬
‫גרף רגולרי מחיבורם‪ .‬את הצלעות שנוסיף נגדיר להיות אילוצים טריוויאליים‪ ,‬כלומר כאלו המסתפקים תמיד‪ ,‬ולכן‬
‫אנחנו מגדילים את הב ‪ Badness‬בפקטור התלוי בדרגת הרגולריות של הגרף המרחיב‪ ,‬אבל זה קבוע ולכן‪:‬‬
‫‪new Badness ≥ C1 · Old Badness‬‬
‫נתבונן בהילוך עצל )כלומר שבכל שלב יש גם הסתברות להשאר במקום( על הגרף‪ ,‬באורך ‪.t‬‬
‫הגדרת התפלגות על המסלולים העצלים באורך ‪ :2t‬מתחילים בקודקוד אקראי‪ ,‬ואז מבצעים הילוך עצל באורך ‪,2t‬‬
‫מתקבלת התפלגות‪.‬‬
‫באופן שקול אפשר לבחור קודקוד אקראי ‪ ,x‬לבצע הילוך עצל באורך ‪ t‬ועוד הילוך באורך ‪ t‬שמתחיל גם הוא ב ‪x‬‬
‫־ ואז זה מגדיר התפלגות על מסלולים בין קודקודי המטרה )שהם לכל היותר באורך ‪. (2t‬‬
‫שינוי התיוגים שאפשר לשים על קודקוד‪ :‬נגדיר כעת שהשמה לקודקוד מכילה גם מידע על ההשמה לכל הקודקודים‬
‫שהם במרחק של לכל היותר ‪ 2t‬ממנו‪ ,‬כלומר ההשמות הופכות להיות )אולי( מחרוזות ענקיות שרק תחילתן היא השמה‬
‫מתוך }‪ {1, .., k‬לקודקוד‪ ,‬והמשכן הוא השמה לכל הקודקודים ברדיוס ‪ 2t‬מ ‪.v‬‬
‫הגרף החדש שנבנה‪ :‬בין כל ‪ v, u‬תהיה צלע רק אם יש ביניהם מסלול באורך קטן מ ‪ .2t‬האילוץ יהיה שההשמות‬
‫לשניהם יסכימו על כל הקודקודים בחיתוך‪ ,‬והמשקל של הצלע יהיה ההסתברות למסלול זה לפי ההתפלגות שהגדרנו‬
‫שנגזרת מהמסלולים העצלים‪.‬‬
‫נותר להראות שכעת אכן הגריעות עלתה‪ ,‬ועלות הניפוח קבועה‪.‬‬
‫‪2t‬‬
‫ניפוח בקבוע ־ מספר האילוצים כעת ‪ k d‬אבל זה קבוע‪ ,‬וכן כל עלויות הניפוח שלנו הן פונקציות של ‪ k, t‬ו ‪,d‬‬
‫כפול גודל הייצוג הקודם‪ ,‬וזה אכן מקיים את דרישתנו ש‪:‬‬
‫√‬
‫)‪( 2‬‬
‫) (‬
‫‪Badness I ≥ C2 · t · Badness I 1‬‬
‫שלמות ־ נניח שיש השמה ‪ A′‬לגרף החדש שבנינו‪ ,‬ונרצה איזשהו קידוד שמייצר מ ‪ A′‬את ‪ ,A‬השמה לגרף הישן‪ .‬נראה‬
‫ש ‪ A‬לא מספק חלק מסויים‪ ,‬ונוכיח מתוך כך שנובע ש ‪ A′‬לא מספק קבוע כפול אותו חלק מתוך הגרף החדש‪.‬‬
‫קידוד בהנתן ‪ ,A′‬ניקח קודקוד ‪ w‬כלשהו‪ ,‬נשים לב של ‪ w‬עצמו יש "דעה" לגבי ההשמה המתאימה לו ב ‪ ,A‬וכך‬
‫גם לכל הקודקודים שהם במרחק ‪ 2t‬ממנו בגרף הישן‪ .‬נתבונן בכל הקודקודים שהם במרחק כזה מ ‪ w‬בגרף הישן‪,‬‬
‫למשל עבור הקודקוד ‪ v‬־ יש הסתברות למסלול ‪ w, v‬ודעתו של ‪ v‬משקלה הוא כהסתברות המסלול‪ .‬מסכמים את‬
‫כל המשקלים לדעה ש ‪ w‬צריך לקבל את הערך ‪ ,1‬את כל המשקלים לדעה ש‪ w‬צריך לקבל את הערך ‪ , 2‬וכן הלאה‪.‬‬
‫הדעה שיש לה הכי הרבה "תמיכה" ־ קובעת מה יהיה באמת משקלו של ‪ w‬בהשמה ‪ A‬שאנו בונים‪.‬‬
‫כעת כמובן‬
‫)‪( 1‬‬
‫‪BadnessI 1 (A) ≥ Badness I‬‬
‫כיוון שהגריעות של ‪ I 1‬היא מינימום על כל ההשמות שאפשר לבחור לו ו ‪ A‬היא השמה מסויימת‪ ,‬אז החלק היחסי‬
‫שמסתפק ב ‪ A‬הוא לכל היותר החלק היחסי שניתן לספק על ידי השמה כלשהי‪.‬‬
‫נבחין כי לכל קודקוד ‪ ,w‬וקודקוד ‪ v‬שמרוחק ממנו ‪ t‬צעדים ־ ההסתברות שהם מסכימים על ההשמה ל ‪ w‬היא‬
‫לפחות ‪) k1‬כי יש ‪ k‬אפשרויות לבחירת השמה‪ ,‬ונבחרה ההשמה הכי פופולארית(‪.‬‬
‫נבחר הילוך עצל באורך ‪ 2t‬באופן אקראי )בגרף הישן(‪ ,‬כזכור ־ באופן שקול ניתן לבחור קודקוד אקראי ‪ w0‬ושני‬
‫מסלולים עצלים באורך ‪ t‬שמתחילים בו‪:‬‬
‫‪ =E1‬הצעד הראשון בהילוך הראשון מ ‪ w‬אינו עצל‪ ,‬וגם הצלע שהלכו עליה )שהיא בגרף הישן( אינה מסתפקת על‬
‫ידי ‪ .A‬וגם ‪wt‬מסכים עם ) ‪ A (w1‬ו ‪ w−t‬מסכים עם ) ‪.A (w0‬‬
‫עצם האפשרות שהצעד הראשון לא היה עצל היא בהסתברות חצי‪ ,‬וההסתברות לאי־הסתפקות צלע כלשהי היא‬
‫)‪.BadnessI 1 (A‬‬
‫ההסתברות שקודקודים במרחק ‪ t‬יסכימו על ההשמה של אחד מהם היא ‪ , k1‬ולכן ההסתברות לשתי הסכמות בלתי‬
‫תלויות כנ"ל היא לפחות ‪ , k12‬ומכיוון שאחד המסלולים הוא באורך ‪ t − 1‬זה משנה בפקטור קבוע את ההסתברות ולכן‬
‫היא ‪. kc2‬‬
‫המאורעות הנ"ל בלתי תלויים ולכן נכפול את הסתברויותיהם‪.‬‬
‫) (‬
‫‪1 c‬‬
‫‪c′‬‬
‫‪· 2 · BadnessI 1 (A) ≥ 2 · B I 1‬‬
‫‪2 k‬‬
‫‪k‬‬
‫≥ ] ‪P r [E1‬‬
‫כעת נגדיר מאורע נוסף‪:‬‬
‫‪=E2‬הצלע ‪ w1 , w2‬קיימת )כלומר הצעד הראשון בהילוך הראשון לא היה עצל(‪ ,‬היא אינה מסתפקת ע"י ‪ A‬וגם ‪wt‬‬
‫מסכים עם ) ‪ A (w2‬ו ‪ √w−t‬מסכים עם√ ) ‪.A (w1‬‬
‫ונגדיר את ‪ Ei‬לכל ‪ −100t < i < 100t‬ונקבל באופן דומה כי‬
‫) (‬
‫‪c′′‬‬
‫‪Badness I 1‬‬
‫‪2‬‬
‫‪k‬‬
‫≥ ] ‪P r [Ei‬‬
‫ואז תוחלת מספר ה ‪i‬־ים כך ש ‪ Ei‬מתרחש היא‪:‬‬
‫‪√ c′′‬‬
‫) (‬
‫‪t 2 · Badness I 1‬‬
‫‪k‬‬
‫≥ ] ‪P r [Ei‬‬
‫∑‬
‫= ]}‪E [# {i : Ei occured‬‬
‫‪i‬‬
‫כלומר נקבל בממוצע מספר גדול של צלעות שאינן מסתפקות במסלול‪ ,‬נרצה להראות שזה לא נובע מכך שההתפלגות‬
‫היא עם זנב כבד‪ ,‬כלומר המצב הוא לא שבהסתברות קטנה יש הרבה מאד מאד צלעות שאינן מסתפקות במסלול‪,‬‬
‫אלא שבאופן כללי זהו ביטוי לכך ש"בדרך כלל" יש צלע אחת שלא מסתפקת‪.‬‬
‫זה נובע מכך שהגרף הוא גרף מרחיב )משלב הייפוי(‪ ,‬ואז ההסתברות לראות ‪ n‬צלעות "רעות" )שאינן מסתפקות‪,‬‬
‫ולכן הן שייכות לקבוצה קטנה יחסית( במסלול שאינו ארוך מדי ־ היא קטנה מאד‪.‬‬
‫‪ 11.4‬קידוד‬
‫נרצה לייצר גרף מתאים כך שגודל האלפבית הוא ‪) k‬כזכור בשלב הקודם הגדלנו אותו למשהו שהוא אקספוננציאלי ב‬
‫‪.(k‬‬
‫נוכל לקבל את זה באופן דומה לרדוקציה שעשינו ל ‪ E3 − LIN‬בעבר‪ ,‬אם נייצר תחילה גרף שהוא בעיית היטלים‬
‫)כיסוי תוויות(‪ ,‬וזאת נוכל לקבל אם לכל אילוץ נוסיף קודקוד ביניים שיוצר אילוצים על הקודקודים של אותו אילוץ‪ ,‬ואז‬
‫נמשיך כמו ברדוקציה ההיא‪ .‬כזכור בעבר איבדנו שלמות בתהליך‪ ,‬אבל אם נעשה את הרדוקציה ל ‪4 − CN F‬במקום‬
‫ל ‪ ,E3 − LIN‬נוכל לשמור על השלמות‪.‬‬
‫נבצע עוד רדוקציה ל ‪) 2 − csp‬עשינו דבר דומה באחד מתרגילי העבר( וכך נקבל שוב גרף אילוצים כמו זה‬
‫שהתחלנו בו‪ ,‬כאשר חיזקנו את הנאותות‪ ,‬כפי שרצינו‪.‬‬
‫‪12‬‬
‫‪12.1‬‬
‫תוספות ונספחים‬
‫‪E4 − CN F − SAT‬‬
‫נזכיר כי עבור הרדוקציה ל ‪ E3 − LIN‬הגדרנו ‪ fu‬שאם היא קידוד חוקי לקוד ארוך אזי היא מקודדת השמה ל ‪,u‬‬
‫כנ"ל ‪.fv‬‬
‫כמו כן ‪ C‬הוא אילוץ ]‪ ,Cu,v : [k] → [k‬וממנו הגדרנו ‪ C ′‬שהוא אוסף משוואות לינאריות בשלושה נעלמים )מעל‬
‫‪ Z2‬ולכן אפשר כפל במקום חיבור(‪:‬‬
‫‪fu (x) fv (y) fu (x · y c ) = 1‬‬
‫הרעיון הכללי הוא לתרגם צומת ל"ענן" של צמתים‪ ,‬אילוץ לאוסף אילוצים ופונקציית פיענוח שמפענחת השמות‬
‫מעננים שמסתפקים ע"י אוסף אילוצים להשמות למשתנים המקוריים שמספקות את האילוץ בהסתברות גבוהה‪.‬‬
‫בעבר פגענו במהלך העבודה בשלמות‪ ,‬ע"ׁי הכנסת רעשים‪ ,‬הפעם נרצה לשמר אותה‪.‬‬
‫נבנה את הרדוקציה הפעם לא למשוואות אלא לבעיות ‪ .E4 − SAT‬נגדיר לשם נוחות ‪ 1 → F ALSE‬ו‬
‫‪.−1 → T RU E‬‬
‫ולכן‬
‫‪OR (1, −1) = −1‬‬
‫‪OR (1, 1) = 1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1 1‬‬
‫‪OR (α, β) = − − α − β + αβ‬‬
‫‪2 2‬‬
‫‪2‬‬
‫‪2‬‬
‫)‪fu (w) ∨ fu (x) ∨ fv (y) ∨ fu (z‬‬
‫כאשר נגדיר ש‪:‬‬
‫‪wi = 1‬‬
‫‪wi = −1‬‬
‫{‬
‫‪Random bit‬‬
‫= ‪zi‬‬
‫‪−xi yc(j) w1‬‬
‫יש הוכחה של זה במאמר של ‪ Hastad‬שנקרא‪Some optimal inapproximability results :‬‬
‫‪12.2‬‬
‫‪U GC‬‬
‫‪12.2.1‬‬
‫‪ U LC‬־ ‪U nique Label Cover‬‬
‫כאשר האילוצים בין כל שני קודקודים הם חח"ע )כלומר כל צלע בגרף היא פרמוטציה(‪.‬‬
‫הוכחנו בתרגיל ש ‪U LC ∈ P‬‬
‫‪:U GC − U nique Game Conj. 12.2.2‬‬
‫בעיית הפער )‪ (1 − ε, δ‬עבור )‪ ,U LC (k‬היא ‪N P‬־שלמה )השערה של ‪(Subhash Khot‬‬
‫כיסוי קודקודים ־ נתון גרף‪ ,‬ונרצה לבחור קבוצה מינימלית של קודקודים שמכסים את כל הקשתות )אפשר גם‬
‫עבור היפר־גרף(‪.‬‬
‫הוכח כי קשה לקרב את הפתרון עבור יותר מ ‪) 1.36...‬ספרא ודינור(‪.‬‬
‫סובאש ק'וט הוכיח קושי עבור ‪) M in − 2 − U N SAT‬בעיה עבור זוגות של ביטים(‪ ,‬והוא הצליח לעשות זאת‬
‫בהנחת ‪.U GC‬‬
‫רגב וק'וט הראו שלקרב את בעיית כיסוי הקודקודים יותר מקירוב ‪) 2 − ε‬לכל ‪ (ε‬זה ‪ N P‬־ קשה בהנחת ‪,U GC‬‬
‫וכמובן קירוב ‪ 2‬יש לנו מאלגוריתם טריוויאלי‪ .‬וזו כבר תוצאה די דרמטית לגבי בעיה שהיא מאד נחקרת‪.‬‬
‫‪ M ax cut‬מציאת חתך מקסימלי בגרף‪.‬‬
‫נחשוב על הגרף כאילו צובעים את קודקדיו ב ‪ 1‬או ב ‪ .−1‬ונרצה למצוא חיתוך בגרף כך שמקסימום צלעות‬
‫מחברות ‪ −1‬ו ‪.1‬‬
‫בעצם זה שקול לבעיית ‪ E2 − LIN‬מעל ‪ ,Z2‬כי כל קשת מגדירה משוואה לינארית בשני נעלמים )ולכן זה ‪N P‬‬
‫שלם(‪.‬‬
‫לקבל קירוב ‪ 21‬לבעיה הזו זה קל‪ ,‬אם בוחרים צלעות באקראי‪ ,‬וזו כבר תוצאה משנות השישים‪.‬‬
‫הצליחו לשפר זאת ל |‪ 21 + |E‬ודומים‪ ,‬כאשר התוספת לקירוב חצי תלויה במספר הקודקודים או הצלעות‪ ,‬ולכן‬
‫אסימפטוטית זה לא עוזר במיוחד‪.‬‬
‫ב ‪ 94‬הראו גומנס וויליאמסון )‪ (Geomans&W illiamson‬אלגוריתם שמקרב לפחות עד כדי ‪ ,0.8789...‬מאוחר‬
‫יותר מצאו גרפים ספציפיים שעליהם לא מתקבל קירוב טוב יותר‪.‬‬
‫‪) KKM O‬גיא ואחרים( הראו שהתוצאה הזו היא אופטימלית )כלומר קשה לקרב יותר מכך( בהנחת ‪.U GC‬‬
‫ותוצאה של ‪) CM M‬צ'אריקאם‪ ,‬מקריצ'ב ומקריצ'ב( מציגים אלגוריתם לבעיית ‪ U LC‬כללית‪ ,‬ולא רק בשתי תויות‪,‬‬
‫כמו ש ‪ ,M ax − cut‬אלא לכל מספר של תוויות‪.‬‬
‫בעצם התקבל שאם ‪ U GC‬נכונה אז אנחנו יודעים בדיוק מה הם ‪ ε‬ו ‪ δ‬מניסוחו‪.‬‬
‫אם מישהו ימצא אלגוריתם טוב יותר מ ‪ CM M‬־ הרי שהפרכנו את ‪ .U GC‬והרבה אנשים עובדים מצד אחד‬
‫בכיוון הזה‪ ,‬ומאידך בנסיון להוכיח את ההשערה‪.‬‬
‫יש תוצאה די דרמטית של ראגאוואנדרה מהשנה שעברה )‪ (2008‬שלכל בעיית אילוצים ) ‪,4 − SAT ,3 − SAT‬‬
‫‪ ,3 − LIN‬כיסוי קודקודים ועוד ועוד( יש אלגוריתם פתרון שמתבסס על ‪,(Semi def inite programming) SDP‬‬
‫שזוהי בעצם הגישה הגיאומטרית של גומנס ושל וויליאמסון‪ ,‬שמשיג קירוב כפלי‪ ,‬ובהנחת ‪ U GC‬הקירוב הזה הוא‬
‫אופטימלי‪) .‬למצוא את הקבוע ממש זו בעיה בסיבוכיות מאד גבוהה(‬
‫‪13‬‬
‫‪13.1‬‬
‫בעיות פתוחות וכיוונים להמשך‬
‫צמצום כמות המידע‬
‫נתעניין כרגע בכמות המידע שנמצאת בידי המוודא‪ ,‬לאחר שהמוכיח שכנע אותו בנכונות ההוכחה‪.‬‬
‫נרצה למזער כמות זו‪.‬‬
‫ברור שכאשר יש ‪ q‬שאילתות של ביט כ"א‪ ,‬מתקבל פרדיקט של )‪ ,q − csp (2‬ולכן השמה רנדומית תיתן נאותות‬
‫שהיא לכל הפחות ‪ .2−q‬מדוע? כיוון שיש השמה שמספקת‪ ,‬ויש ‪ 2q‬השמות‪ ,‬אז בתוחלת השמה רנדומית מסתפקות‬
‫בחלקה ה ‪. 21q‬‬
‫ומכאן‬
‫‪1‬‬
‫‪≤q‬‬
‫‪s‬‬
‫‪log‬‬
‫זאת ה ‪ Amortized query complexity‬מאידך ־ לא ברור למה ‪ q‬הוא דווקא מדד טוב לכמות האינפורמציה‬
‫שבידי המוודא‪.‬‬
‫שכן אם ההוכחה נכונה ־ נרצה לקבל מה שפחות מידע‪ ,‬אבל אם היא שגויה אז לא אכפת לנו‪ ,‬כי אין בזה נזק‬
‫כביכול‪ .‬למשל אם נקבל מידע עבור נוסחה של ‪:3 − LIN‬‬
‫‪x1 + x17 + x65 = 1‬‬
‫אז בהנתן ‪ x1‬ו ‪ x17‬יש רק השמה אחת ל ‪ x65‬שעשויה לעניין אותנו ־ זאת שמספקת את הנוסחה‪ ,‬ובמקרה כזה‬
‫ההשמה לא "תפתיע" אותנו‪ .‬לכן לכאורה האינפורמציה הגלומה במשוואה לעיל היא ‪ 2‬ביטים בלבד‪.‬‬
‫בהנתן פרדיקט כלשהו‪ ,‬אשר יש לו ‪ k‬השמות מספקות‪ ,‬בדומה למקרה הקודם‪ ,‬אנחנו מניחים שההשמה מסתפקת‪,‬‬
‫ואז רק מעניין אותנו מהי ההשמה שמספקת אותו‪ ,‬וכדי לדעת את זה מספיק לקבל את האינדקס של ההשמה המספקת‪,‬‬
‫כלומר ‪ log2 k‬ביטים‪.‬‬
‫ולכן ה ‪:Amortized f ree bit complexity‬‬
‫‪log2 k‬‬
‫‪log 1s‬‬
‫‪31‬‬
‫אפשר להראות )ולא נראה( ש‪:‬‬
‫]‪N P ⊆ P CP1,s [f ree bit complexity log k‬‬
‫כך ש‪:‬‬
‫‪log2 k‬‬
‫‪≤δ‬‬
‫‪log 1s‬‬
‫לכל ‪.δ > 0‬‬
‫כלומר אחרי שקראנו ‪ 100‬ביטים חופשיים‪ ,‬אפשר לקרוא עוד ‪ 10000‬ביטים שאינם חופשיים )כלומר שאנחנו יודעים‬
‫מראש מה ההשמה שהם צריכים לקבל כדי להסתפק(‪ ,‬ולהקטין את הנאותות ל ‪ .2−10000‬כלומר להקטין את הנאותות‬
‫בעזרת ביטים שאינם חופשיים‪ ,‬כלומר כאשר המוודא מקבל ‪ 0‬אינפורמציה‪.‬‬
‫‪13.2‬‬
‫‪M ax − Cut‬‬
‫נשים לב שה ‪ a.f.b.c‬של ‪ M ax − Cut‬הוא ‪ , 1‬שכן אם כל צלע היא אילוץ על שני קודקודים‪ ,‬שמספר ההשמות‬
‫המספקות אותה הוא ‪) 2‬כשאחד הקודקודים צבוע ‪ 1‬והשני צבוע ‪.(−1‬‬
‫‪13.3‬‬
‫המקרה הממוצע לעומת המקרה הגרוע ביותר‬
‫בדרך כלל אנחנו נוטים לנתח בעיות לפי הסיבוכיות הגרועה ביותר‪ ,‬אלא שבמקרה המעשי על פי רוב בעיה תהיה‬
‫"ממוצעת"‪ ,‬ולא מתוכננת כך שתהיה קשה ביותר‪.‬‬
‫נניח שיש לנו פסוקיות שהן בעיית ‪ 3 − SAT‬שנגריל באקראי‪ ,‬כלומר קודם נבנה פסוקיות‪ ,‬אחר כך נשים בתוכן‬
‫‪x‬־ים שלחלקם שלילה וחלקם לא‪ ,‬ואחר כך נחלק אינדקסים באקראי‪...‬‬
‫האם זו בעיה שהיא קלה בהסתברות גבוהה?‬
‫למשל עבור בעיית ‪ Bounded − 3 − SAT‬־ אם הקבוע שחוסם את מספר ההופעות של משתנה הוא קטן‪ ,‬אז‬
‫בהסתברות טובה זו תהיה בעיה קלה‪ ,‬משום שכביכול האילוצים ישרו מעגלים קטנים שניתן יהיה לפתור בנפרד‪.‬‬
‫אם נפעל בדרך הפוכה ־ כלומר נבחר את מספר המשתנים‪ ,‬ואז מכל הפסוקיות האפשריות על משתנים אלו נבחר‬
‫כל פסוקית בהסתברות קבועה ־ אזי אם ההסתברות קרובה ל־‪ 0‬אז הביטוי כולו יהיה ספיק בהסתברות גבוהה‪,‬‬
‫ולהיפך ־ אם ההסתברות לכל פסוקית היא גבוהה ־ אז בסבירות גבוהה נקבל הרבה סתירות ולכן זה לא יהיה ספיק‪.‬‬
‫איפהשהו באמצע יש קבוע שאם נגריל לפיו )כלומר הוא יהיה ההסתברות לכל פסוקית( ־ בהסתברות חצי נקבל בעיה‬
‫ספיקה‪ ,‬נכנה זאת ‪ .Pc‬קצת לפני ‪ Pc‬־ יש קבוע שאם נגדיר אותו בתור ההסתברות לכל פסוקית ־ נקבל בעיה ספיקה‬
‫בהסתברות מאד גבוהה‪ .‬האם יש אלגוריתם פולינומיאלי למצוא לו השמה שכזו?‬
‫האם ‪ 3 − SAT‬היא בעיה קשה בממוצע? בעיה פתוחה‪.‬‬
‫יש תחום שבו כן הראו קושי של בעיות בממוצע‪ .‬בעיות סריג‪:‬‬
‫נניח יש ‪ ,{b1 , ..., bn } ⊆ Rn‬שהם בסיס‪ .‬ואז )} ‪ L = SpanZn ({b1 , ..., bn‬הוא סריג‪.‬‬
‫נשאלת השאלה ־ מהי הנורמה האוקלידית של הוקטור הכי קצר בסריג? ‪Shortest vector problem = SV P‬‬
‫יודעים להראות שבעיה זו היא ‪ N P‬שלמה‪.‬‬
‫√‬
‫מסתבר שיש רדוקציה מהבעיה במקרה הגרוע ביותר‪ ,‬לבעיה במקרה הממוצע‪ :‬בהנתן קירוב בפקטור כפלי ‪n‬‬
‫במקרה הממוצע ־ ניתן לקבל ממנו קירוב בפקטור כפלי ‪ n5‬עבור המקרה הגרוע ביותר‪ .‬זו בעצם אחת התוצאות הכי‬
‫מהמקרה הממוצע למקרה הגרוע ביותר‪ ,‬וגם זה בעייתי‪ ,‬כיוון שרק ידוע לנו שלקרב את‬
‫טובות שקיימות לרדוקציה‬
‫√‬
‫המקרה הגרוע ביותר עד כדי ‪ 2 log n‬זה ‪N P‬־קשה‪ ,‬וזה קטן מכל פולינום‪ .‬במילים אחרות ־ יש רדוקציה‪ ,‬אבל לא‬
‫יודעים שמה שעושים רדוקציה אליו הוא באמת קשה‪.‬‬
‫‪13.4‬‬
‫‪U GC‬‬
‫נניח שנגריל בעיית ‪ .U LC‬מסתבר שלא ידועה לנו התפלגות שאם נגריל לפיה זה יהיה לא טריוויאלי לפתור‪.‬‬
‫בין השאר‪ ,‬משום שכשבוחרים צלעות באקראי מקבלים גרף מרחיב‪ ,‬ועבור גרפים מסוג זה‪ ,‬בעיית ה ‪ U LC‬היא‬
‫קלה )כלומר יש לנו אלגוריתם פולינומיאלי(‪.‬‬
‫‪13.4.1‬‬
‫)למה פיסיקאים מתעניינים בדברים כאלה?(‬
‫ב ‪ 3 − SAT‬אפשר לדבר על שיעור הפסוקיות המסתפקות‪ .‬בגביש מגנטי יש כל מיני אלקטרונים חופשיים עם ספין‬
‫שהוא איזהשהו וקטור במרחב‪ .‬אם רוצים לפשט את זה‪ ,‬אז הספינים מסתדרים או למטה או למעלה‪ .‬יש אינטרקציות‬
‫בין הספינים שאפשר לחשוב עליהן בתור אילוצים‪ ,‬וכאשר מקררים את הגביש הוא רוצה לשקוע לרמת אנרגיה נמוכה‬
‫שבה מה שיותר אילוצים יסתפקו‪ .‬הרבה מהאלגוריתמים לפתרון של בעיות ‪ 3 − SAT‬מהצד של הסקאלה שבו כל‬
‫פסוקית מוגרלת בהסתברות קטנה יחסית‪ ,‬מגיעים מהעולם הפיסיקאלי‪ .‬חשבו גם לקחת בעיית ‪ ,3 − SAT‬להמיר‬
‫אותה לבעיה פיזית על גביש כנ"ל‪ ,‬להניח את הגביש במקרר ולקבל פתרון‪.‬‬
‫זה לא עובד כיוון שהבעיה נתקעת במינימום לוקאלי‪ .‬נעשו נסיונות לאלגוריתמים שמחממים את הגביש ומקררים‬
‫שוב‪ ,‬וזה קצת יותר טוב‪ ,‬אבל בכל זאת מסתבר שלמרות התחזיות ־ הטבע לא נוטה באמת לרמת האנרגיה הנמוכה‬
‫ביותר‪.‬‬
‫‪33‬‬