סיבוכיות לקורס סיכומים

Transcription

סיבוכיות לקורס סיכומים
‫‪1‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫אריאל סטולרמן‬
‫סיכומים לקורס סיבוכיות‬
‫פרופ' עודד רגב ופרופ' מולי ספרא‪ ,‬סמסטר ב' ‪2009‬‬
‫חישוביות‪:‬‬
‫משימה חישובית‪:‬‬
‫‪ , : 0,1‬לרוב פונקציות בוליאניות )טווח ‪ .( 0,1‬בצורה שקולה נגדיר שפה‪1 :‬‬
‫‪0,1‬‬
‫חישוב פונקציה‬
‫| ‪0,1‬‬
‫‪ .‬ידוע גם‬
‫בשם בעיות החלטה‪/‬הכרעה‪ .‬מודל חישובי‪ :‬אלגוריתמים בשפת תכנות כלשהי ‪ /‬מכונת טיורינג‪ ,‬אין מגבלת זיכרון‪.‬‬
‫מכונת החישוב האוניברסלית‪:‬‬
‫כל תוכנית בשפת תכנות כלשהי ניתן לייצג ע"י מחרוזת של ‪ . 0,1‬תהי‬
‫משפט )טיורינג(‪ :‬קיים אלג' ‪ U‬שבהינתן‬
‫‪0,1‬‬
‫תתקע‪ .‬רעיון ההוכחה‪ U :‬עובר על התוכנית‬
‫‪: ,‬‬
‫תוכנית‪ ,‬נסמן ב‪-‬‬
‫‪,‬‬
‫את האלג' המייצג תוכנית זו‪.‬‬
‫‪ - ‬כלומר ‪ U‬מסמלץ את‬
‫נתקע‪ ,‬גם ‪U‬‬
‫על הקלט ‪ .x‬אם‬
‫ומסמלץ כל שורה בה‪ .‬טיורינג הראה שניתן להריץ תוכנית על מחשב‪.‬‬
‫משפט טיורינג )לקיום פונ' לא חשיבה(‪:‬‬
‫‪: 0,1‬‬
‫קיימת פונ' ‪0,1‬‬
‫ומחזיר את‬
‫שלא ניתנת לחישוב ע"י אף אלגוריתם )פונ' חשיבה‪ :‬פונ' ‪ f‬שקיים עבורה אלג' ‪ M‬כך שלכל קלט ‪:x‬‬
‫עוצר‬
‫(‪.‬‬
‫הוכחה‪:‬‬
‫דרך א'‪ :‬חישובי עוצמות – גודל קבוצת הפונקציות היא א לעומת גודל קבוצת התוכניות שהיא א‪.‬‬
‫דרך ב'‪ :‬שיטת הלכסון‪ :‬נציב בטבלה את כל האלג' …‬
‫‪1‬‬
‫‪0,‬‬
‫‪1,‬‬
‫‪/‬‬
‫‪,‬‬
‫‪,‬‬
‫‪,‬‬
‫אל מול כל הקלטים … ‪ 0,1,00,01,‬ונגדיר את ‪ UC‬באופן הבא‪:‬‬
‫‪ -‬כלומר מחזיר תוצאה הפוכה לאלכסון‪ ,‬או תוצאה כלשהי )‪ 0‬או ‪ (1‬אם התוצאה על האלכסון מתבדרת‪ .‬לפי בניה‬
‫זו‪ ,‬אף אלג' לא יחשב נכון את ‪ UC‬לכל קלט‪ .‬מניחים בשלילה שקיים קלט‬
‫עבורו‬
‫מחשב את ‪ ,UC‬ומגיעים לסתירה מבניית ‪ UC‬על הקלט ‪.‬‬
‫משפט‪ HALT :‬אינה ניתנת לחישוב‪.‬‬
‫|‬
‫‪,‬‬
‫‪,‬‬
‫‪ .‬נניח בשלילה שקיים‬
‫‪ ,‬ונראה כיצד ניתן לחשב את ‪ :UC‬בהינתן קלט‬
‫‪,‬‬
‫מריץ את‬
‫‪ .‬אם התוצאה לא עוצרת‪ ,‬נעצור ונוציא ‪ .1‬אם התוצאה עוצרת‪ ,‬נחשבה ונחזיר את ההיפך‪.‬‬
‫פרק ראשון‪ :‬סיבוכיות זמן ריצה‪:‬‬
‫נסתכל לרוב על מחלקות של שפות‪ ,‬כלומר של פונקציות בוליאניות‪.‬‬
‫הגדרה‪:‬‬
‫‪ :‬נגדיר‬
‫עבור פונ'‬
‫בתור אוסף השפות שניתן לפתור אותן בעזרת אלגוריתם שרץ בזמן‬
‫· עבור קבוע ‪ c‬כלשהו‪.‬‬
‫המחלקה ‪:P‬‬
‫•‬
‫‪ :‬הגדרה זו תקפה לכל מודל חישובי‪ ,‬כגון שפת ‪ TM ,JAVA ,C‬וכו'‪ .‬‬
‫•‬
‫‪ :BPP‬מחלקת אלגוריתמים הרצים בזמן פול' ומשתמשים באקראיות )שאלה פתוחה‪:‬‬
‫•‬
‫מחלקת ‪) BQP‬שימוש בפיסיקה קוונטית(‪ .‬‬
‫(‪ .‬‬
‫המחלקה ‪:NP‬‬
‫מחלקת השפות שניתן לוודא שייכות אליהן בזמן פולינומיאלי‪ .‬כלומר‪ ,‬שפה ‪0,1‬‬
‫בזמן פולי' כך שלכל קלט‬
‫‪0,1‬‬
‫‪1:‬‬
‫‪,‬‬
‫‪.‬‬
‫| |‬
‫‪0,1‬‬
‫היא ב‪ NP-‬אם קיים פולינום‬
‫‪ :‬ואלגוריתם ‪ M‬הרץ‬
‫‪ .‬כלומר‪ ,‬האלג' בהינתן הקלט ועד באורך פולי' לאורך הקלט‬
‫יחזיר ‪ (1) t‬אמ"מ ‪ x‬בשפה‪.‬‬
‫דוגמאות לבעיות‪:‬‬
‫•‬
‫קבוצה ב"ת )‪ – (IS‬בעיה ב‪ :NPC-‬בהינתן גרף לא מכוון ‪ G‬ומספר טבעי ‪ ,k‬האם יש ב‪ G-‬קבוצה ב"ת בגודל לפחות ‪) k‬קבוצת קודקודים ללא‬
‫קשתות(‪ .‬העד יכול להיות רשימה של ‪ k‬קודקודים‪ .‬האלג' המוודא ‪ M‬יעבור על העד ויבדוק את תקינותו‪ .‬‬
‫•‬
‫‪ – HamPath‬בעיה ב‪ :NPC-‬בהינתן גרף לא מכוון ‪ ,G‬האם קיים בו מסלול המילטוני – מסלול המבקר בכל קודקוד בדיוק פעם אחת‪ .‬‬
‫•‬
‫‪ – HamCycle‬בעיה ב‪ :NPC-‬כנ"ל רק בודק קיום מעגל המילטוני‪ .‬‬
‫•‬
‫‪ – MaxIS‬בעיה ב‪-‬‬
‫•‬
‫‪ – Linear Programming‬בעיה ב‪ :P-‬בהינתן אוסף אי‪-‬שוויונים‪ ,‬האם יש להם פתרון מעל הממשיים‪ .‬‬
‫•‬
‫‪ – Integer Programming‬בעיה ב‪ :NPC-‬כמו קודם‪ ,‬רק מעל השלמים‪ .‬‬
‫‪ :‬בהינתן גרף ‪ G‬ומספר ‪ ,k‬האם גודל הקבוצה הבלתי תלויה המקסימלית היא בגודל ‪ .k‬‬
‫‪ ‬‬
‫‪2‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫•‬
‫אריאל סטולרמן‬
‫‪ – Graph Isomorphism‬בעיה ב‪ :NP-‬לא הצליחו להראות שבעיה זו ב‪ NPC-‬או ב‪ .P-‬בהינתן שני גרפים ‪ ,H ,G‬האם הם איזומורפיים‪ ,‬כלומר‬
‫האם הם אותו גרף תחת שינוי שמות הקודקודים‪ .‬העד יהיה פרמוטציה של שמות הקודקודים‪ ,‬והמוודא יבדוק את תקינות הפרמוטציה‬
‫ונכונותה‪ .‬אם בעיה זו ב‪ ,NPC-‬אז‬
‫•‬
‫‪ .‬‬
‫‪ – Compositness‬בעיה ב‪ :P-‬בהינתן מספר ‪ N‬האם הוא פריק‪ ,‬כלומר לא ראשוני‪ .‬גודל הקלט הוא‬
‫ב‪ NP-‬בגלל שעד יכול להיות ‪ k‬מחלק כלשהו‪ ,‬שגודלו הוא‬
‫‪ ,‬וביחס לגודל זה מוודאים יעילות‪.‬‬
‫‪ ,‬והמוודא בודק שהוא מחלק‪ .‬ב‪ P-‬בגלל‪ :‬‬
‫•‬
‫‪ :Primality‬בהינתן מספר ‪ ,N‬האם הוא ראשוני‪ .‬ב‪ ,coNP-‬כי ניתן לתת מחלק ‪ .k‬עם הזמן גילו אלג' ב‪ BPP-‬ולבסוף אלג' דטרמיניסטי ב‪ .P-‬‬
‫•‬
‫‪ – Factoring‬בעיה ב‪ NP-‬וב‪ :coNP-‬בהינתן מספרים ‪ ,N,k‬האם ל‪ N-‬יש מחלק ראשוני בתחום ‪1‬‬
‫‪ . ,‬ב‪ :NP-‬ניתן לתת כעד‬
‫‪1, … ,‬‬
‫מחלק ראשוני בתחום‪ ,‬ולבדוק בזמן פולי' שהוא בתחום‪ ,‬מחלק וראשוני‪ .‬ב‪ :coNP-‬ניתן לקבל רשימת מספרים‬
‫‪,…,‬‬
‫ולוודא שמכפלתם‬
‫היא ‪ ,N‬שכל אחד מהם ראשוני ושכולם קטנים מ‪ .k-‬‬
‫טענה‪:‬‬
‫‪2‬‬
‫הוכחה‪:‬‬
‫•‬
‫‪ :‬בונים מוודא שמתעלם מהעד – המוודא יהיה האלג' המקורי שפותר בזמן פולי'‪ .‬‬
‫•‬
‫וכל המשתמע מכך‪ .‬נבנה אלג'‬
‫‪ :‬תהי‬
‫שמפעיל את האלג' המוודא ‪ M‬על כל‬
‫| |‬
‫‪ 2‬העדים האפשריים‪ .‬אם לפחות‬
‫אחת מהריצות קיבלה‪ ,‬נקבל‪ .‬אחרת נדחה‪ .‬‬
‫הגדרה חלופית ל‪:NP-‬‬
‫‪0,1‬‬
‫ההגדרה החילופית משתמשת באי‪-‬דטר'‪ .‬נגיד ששפה‬
‫קיימת בחירה אי דטרמיניסטית שגורמת ל‪ M-‬לקבל‬
‫אם קיים ‪0‬‬
‫שייכת ל‪-‬‬
‫‪ .‬בנוסף ‪ M‬עוצר אחרי‬
‫וקיים אלג' לא דטר' ‪ M‬כך שלכל ‪:x‬‬
‫· צעדים עבור כל בחירה אי דטר'‪.‬‬
‫משפט‪:‬‬
‫הוכחה‪ :‬עבור‬
‫‪ ,‬נבנה אלג' מוודא‪ :‬מריץ את האלג' האי דטר' המקורי‪ ,‬אך במקום פיצולים אי דטר'‪ ,‬מתפצל לפי העד הניתן לו‬
‫‪ ,‬נבנה אלג' לא דטר'‪ :‬מריץ את האלג' המוודא תוך כדי שבונה עד באופן לא דטרמיניסטי באורך | | ‪.‬‬
‫)אלג' זה דטר'(‪ .‬עבור‬
‫תרגול‪:‬‬
‫סגירות לפעולות‪ :‬‬
‫‪.‬‬
‫נגדיר‬
‫‪1, … ,‬‬
‫…‬
‫‪,‬‬
‫|‬
‫‪.‬‬
‫‪.‬‬
‫תרגיל‪ :‬האם ‪ NP‬סגורה ל‪?*-‬‬
‫פתרון‪ :‬כן‪ .‬עבור‬
‫עד באופן הבא‪:‬‬
‫‪ ,‬נגדיר ל‪ -‬קלט ל‪-‬‬
‫…‬
‫‪ 0‬חלוקה ל‪ x-‬ו‪-‬‬
‫‪,…,‬‬
‫עדים לכל אחד ממחרוזות‬
‫·‬
‫בחלוקה של ‪ .x‬האלג' המוודא ישתמש במוודא של ‪ L‬לבדוק שכל קטע בחלוקה הוא מחרוזת ב‪ .L-‬העד באורך‬
‫)‪ p‬אורך עד ב‪ (L-‬וזמן‬
‫הריצה גם כן‪ .‬נכונות ברורה‪.‬‬
‫תרגיל‪ :‬האם‬
‫סגורה ל‪?*-‬‬
‫…‬
‫פתרון‪ :‬כן‪ .‬עבור מילה‬
‫‪ 0,1,2, … ,‬ולכל קטע בחלוקה מאינדקס ‪ i‬ל‪ j-‬נעביר קשת מכוונת‬
‫נבנה גרף בו הצמתים‬
‫בגרף יש מסלול מכוון מ‪ 0-‬ל‪ .n-‬זמן ריצה‬
‫·‬
‫‪ . ,‬נבדוק אם‬
‫‪ -‬הרצת האלג' המכריע את ‪ L‬על כל הקטעים האפשריים‪ ,‬בדיקת מסלול מכוון ע"י ‪.BFS‬‬
‫נכונות ברורה‪.‬‬
‫תרגיל‪ :‬האם ‪ coNP‬סגורה ל‪?*-‬‬
‫פתרון‪ :‬בהינתן קלט ‪ x‬באורך ‪ n‬יש להוכיח כי ב‪-‬‬
‫אין מסלול מכוון מ‪ 0-‬ל‪ .n-‬העד‪ :‬אוסף זוגות הצמתים שאין ביניהם קשת ועדות לכך שאין‬
‫ולכן קיימים עדים כאלה(‪ .‬נקח את הגרף השלם ונסיר ממנו את אותן קשתות‪ ,‬ונבדוק שאכן אין עליו מסלול מכוון מ‪ 0-‬ל‪.n-‬‬
‫ביניהם קשת )‬
‫רדוקציות ושלמות ב‪:NP-‬‬
‫רדוקציית ‪:Karp‬‬
‫פולי' משפה ‪ A‬לשפה ‪ B‬היא פונ' ‪ f‬חשיבה בזמן פולי' )בגודל הקלט( כך שלכל ‪:x‬‬
‫•‬
‫•‬
‫וגם‬
‫אם‬
‫‪:NP­hard‬‬
‫ו‪-‬‬
‫אז‬
‫‪ .‬‬
‫או‬
‫אז‬
‫או‬
‫‪:‬‬
‫‪.‬‬
‫תהיה ‪-NP‬קשה אם לכל‬
‫‪ A :NP­Complete‬תהיה ‪ NPC‬אם היא ‪-NP‬קשה וגם‬
‫בהתאם‪ .‬‬
‫‪.‬‬
‫‪ .‬נסמן‬
‫‪.‬‬
‫‪ ‬‬
‫‪3‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫משפט‪:‬‬
‫‪0,1‬‬
‫קיים‬
‫כך שהאלגוריתם‬
‫מוציא ‪ 1‬על הקלט‬
‫אונארי הוא כדי שהאלג' ירוץ בזמן פולי' ל‪ n-‬ולא ל‪-‬‬
‫תוך זמן ‪| t‬‬
‫(‪.‬‬
‫‪ :‬תהי‬
‫| |‬
‫תתרגם קלט ‪ x‬ל‪ L-‬ל‪:‬‬
‫‪,1‬‬
‫| |‬
‫עם אלג' מוודא‬
‫‪, ,1‬‬
‫‪, ,1 ,1‬‬
‫‪ .‬הסיבה שמשתמשים בייצוג‬
‫‪.‬‬
‫‪ :‬בונים מוודא המקבל ‪ u‬כעד ומסמלץ את‬
‫הוכחה בקיצור‪:‬‬
‫)‬
‫‪,‬‬
‫אריאל סטולרמן‬
‫‪,‬‬
‫על‬
‫למשך ‪ t‬צעדים‪ .‬גודל הקלט וזמן הריצה פולי'‬
‫עם עד בגודל | | ‪.‬‬
‫הרץ בזמן | |‬
‫‪ :‬הרדוקציה‬
‫‪.‬‬
‫משפט ‪:Cook­Levin‬‬
‫טענה‪ :‬לכל פונק בוליאנית מעל ‪ l‬משתנים ‪0,1‬‬
‫הוכחה‪:‬‬
‫‪ : 0,1‬יש נוסחת ‪ CNF‬שקולה בגודל‬
‫‪ :‬תהא ‪ M‬מ"ט לא דטר' המחשבת את ‪ L‬ורצה בזמן | | ‪ ,‬עם שתי פונ' מעברים‬
‫‪.‬‬
‫‪ :‬ברור‪.‬‬
‫נתרגם קלט ‪ x‬ל‪ L-‬לנוסחה‬
‫‪ .‬לכל קלט ‪ x‬נבנה נוסחה המתארת טבלה בגודל | |‬
‫כך ש‪-‬‬
‫המכונה ‪ M‬על ‪ – x‬כל שורה בטבלה היא שלב‪ .‬לייצוג כל תא נדרש למקום קבוע‪1 :‬‬
‫השורות מורכבות באופן תקין )השורה הראשונה עם‬
‫ע" פ‬
‫או‬
‫‪. ·2‬‬
‫| |‬
‫| |‬
‫‪.‬‬
‫| |‬
‫‪. ,‬‬
‫המתארת את ריצת‬
‫תורכב מתנאים המוודאים שכל‬
‫מעל התא הראשון‪ ,‬השורה האחרונה מייצגת מצב קבלה‪ ,‬מעברי השורות – מצבים – נכונים‬
‫(‪ .‬סה"כ יתקבל מס' פולי' של תנאים מעל מס' קבוע של משתנים – סה"כ נוסחת‬
‫בגודל פולי' והרדוקציה פולי'‪ .‬יש להוכיח אמ"מ‪.‬‬
‫טענה‪:‬‬
‫הוכחה‪:‬‬
‫‪3‬‬
‫‪ :‬ברור‪.‬‬
‫‪3‬‬
‫)‬
‫‪ :( 3‬לכל‬
‫עם ‪ m‬הסגרים ניצור גרף‬
‫עם ‪ m‬משולשים שקודקודי כל משולש הם הליטרלים בהסגר‪ .‬בנוסף כל ליטרל יחובר לשלילתו‪ .‬אם הנוסחה ספיקה אז יש בגרף קבוצה ב"ת בגודל‬
‫‪ – m‬לוקחים את אחד המשתנים המספקים בכל הסגר‪ .‬אם יש קבוצה ב"ת בגודל ‪ ,m‬חייב להיות בה קודקוד אחד בכל שלישיה ולכן ישנה השמה‬
‫מספקת ע"י סיפוק הליטרלים כפי שמופיעים בקבוצה הב"ת‪.‬‬
‫‪,‬‬
‫טענות נוספות‪:‬‬
‫‪.‬‬
‫תרגול‪:‬‬
‫רדוקציות ‪:Cook / Karp‬‬
‫תרגיל‪ :‬להראות רדוקציית ‪:Karp‬‬
‫פתרון‪ :‬בהינתן ‪ G‬הרדוקציה תחזיר‬
‫‪.‬‬
‫ו‪-‬‬
‫כך ש‪-‬‬
‫נכונות‪ :‬אם ב‪ G-‬מסלול המילטוני‬
‫‪ ,‬ב‪-‬‬
‫)מוסיפים קודקוד ומחברים אותו לכולם(‪.‬‬
‫‪ .‬אם ב‪-‬‬
‫מעגל המילטוני‬
‫מעגל המילטוני‪ ,‬מסירים את ‪u‬‬
‫ומקבלים מסלול המילטוני‪.‬‬
‫טענה‪ NP :‬סגורה לרדוקציות ‪.Karp‬‬
‫תרגיל‪ :‬להראות רדוקציית ‪:Cook‬‬
‫פתרון‪ :‬בהינתן‬
‫‪,‬‬
‫‪,‬‬
‫‪.‬‬
‫קלט לבעיית מעגל המילטון‪ ,‬נבדוק האם‬
‫‪,‬‬
‫‪,‬‬
‫‪,‬‬
‫‪ .‬אם כן‪ ,‬נחזיר שאין מעגל המילטון‪ .‬אם לא‪ ,‬נבחר קשת כלשהי‬
‫‪ .‬אם מחזיר כן‪ ,‬נחזיר כן – כי יחד עם הקשת‬
‫‪,‬‬
‫‪,‬‬
‫ונריץ את‬
‫ניתן להשלים מעגל המילטון‪ .‬אחרת‪ ,‬נסיר את‬
‫הקשת הזו ונחזור לשלב ההתחלה‪.‬‬
‫טענה‪ NP :‬סגורה לרדוקציית ‪ Cook‬פולי' אמ"מ‬
‫‪.‬‬
‫הוכחה‪ :‬אם ‪ NP‬סגורה לרדוקציית ‪ Cook‬פולי'‪ ,‬והרי לכל‬
‫ולכן‬
‫‪ A‬אלג' המכריע את‬
‫וגם‬
‫‪ .‬בהינתן קלט ‪ x‬לשפה‬
‫‪:‬‬
‫ולכן‬
‫‪ .‬אם‬
‫‪ ,‬תהיה‬
‫ו‪-‬‬
‫‪ ,‬נראה‬
‫‪ ,‬יהי ‪ k‬מספר הקריאות של ‪ A‬לאלג' המכריע את ‪ .L‬העד שנצפה לו הוא התשובות ‪0,1‬‬
‫של האלג' המכריע את ‪ ,L‬וכן עדים לנכונות תשובות ‪:L‬‬
‫באמצעות עד‪ .‬האלג' של‬
‫ע"י החזרת התשובה ההפוכה לתשובת האלג' המכריע את ‪ ,L‬נקבל כי‬
‫‪,…,‬‬
‫ענו על הדרישה ו‪ A-‬קיבל‪ ,‬אז נקבל‪ .‬אחרת נדחה‪.‬‬
‫‪,…,‬‬
‫‪ ,‬ניתן לוודא האם קלט שייך או לא שייך ל‪L-‬‬
‫‪ .‬כיוון ש‪-‬‬
‫יסמלץ את ‪ A‬ובכל קריאה לאלג' הפותר את ‪ L‬יוודא בעזרת‬
‫‪ .‬יהי‬
‫אם‬
‫התשובה הנכונה‪ .‬אם לאורך כל החישוב העדים‬
‫‪ ‬‬
‫‪4‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫חיפוש לעומת החלטה‪:‬‬
‫משפט‪ :‬אם‬
‫יש אלג' פולי' שבהינתן‬
‫אז לכל‬
‫מוציא עבורו עד‪.‬‬
‫הוכחה על ‪ :SAT‬נסמן את האלג' הפולי' הפותר את ‪ SAT‬ב‪ .A-‬בהינתן‬
‫לנוסחה ונבדוק האם ספיקה‪ .‬אם כן‪ ,‬נמשיך עם‬
‫אריאל סטולרמן‬
‫‪ ‬‬
‫ל‪ t-‬ע"י הוספת‬
‫נבדוק האם ספיקה‪ .‬אם לא – נעצור‪ .‬אם כן‪ ,‬נקבע את‬
‫)נוסיף את‬
‫‪ ,‬אחרת נמשיך עם‬
‫(‪ .‬לבסוף מתקבלת השמה‬
‫במקום‬
‫מספקת‪ .‬נדרשת הוכחת נכונות‪.‬‬
‫עם אלג' מוודא ‪ .M‬נתרגם את ‪ M‬למ"ט דטר'‬
‫הוכחה כללית‪ :‬תהא‬
‫‪ ,‬ולפי הוכחת ‪ ,C­L‬בהינתן השמה מספקת ל‪-‬‬
‫המחשבת את ‪ .L‬לפי ‪ C­L‬בהינתן ‪ x‬ניתן לבנות‬
‫כך ש‪-‬‬
‫ניתן בזמן פולי' לשחזר את הבחירות הלא דטר' ומהן לבנות את העד שגורם ל‪ M-‬לקבל‪.‬‬
‫המחלקה ‪:coNP‬‬
‫‪ .‬הגדרה חלופית‪ :‬קיים פולינום ‪ p‬ומ"ט פולי' ‪ M‬כך שלכל‬
‫|‬
‫באופן שקול‪1 :‬‬
‫‪.‬‬
‫‪,‬‬
‫| |‬
‫‪ NP .‬ידועה גם כ‪-‬‬
‫‪0,1‬‬
‫‪,‬‬
‫|‬
‫דוגמא‪:‬‬
‫‪0,1 .‬‬
‫טענה‪:‬‬
‫)תחת רדוקצית ‪(Karp‬‬
‫‪1:‬‬
‫‪01‬‬
‫‪,‬‬
‫‪ ,‬ו‪ coNP-‬ידועה גם כ‪-‬‬
‫‪.‬‬
‫| |‬
‫‪0,1‬‬
‫‪ ,‬או‬
‫‪.‬‬
‫‪.‬‬
‫‪ PSPACE‬‬
‫טענה‪:‬‬
‫‪,‬‬
‫‪:‬‬
‫‪ -‬הנוסחה השניה תמיד לא ספיקה‪ .‬נכונות ברורה‪.‬‬
‫המחלקות ‪:EXP, NEXP‬‬
‫‪2‬‬
‫‪,‬‬
‫‪2‬‬
‫)ניתן להגדיר גם באמצעות עד(‪.‬‬
‫ברור שמתקיים‪:‬‬
‫‪.‬‬
‫משפט‪ :‬אם‬
‫הוכחה‪:‬‬
‫|‬
‫אז‬
‫נניח‬
‫|‪2‬‬
‫‪.‬‬
‫| |‬
‫|‬
‫‪,1‬‬
‫ברור‬
‫‪,‬‬
‫כי‬
‫‪.‬‬
‫‪,‬‬
‫נראה‬
‫תהי‬
‫נגדיר‬
‫‪ ,‬ומכאן קל לבנות אלג' אקספ' דטר' המכריע את ‪.L‬‬
‫‪ .‬אם כן‪ ,‬לפי הנחה‪,‬‬
‫‪:‬‬
‫‪ :‬מחלקת השפות שיש עבורן מ"ט פולי' ‪ M‬ופולינום ‪ p‬כך שלכל‬
‫‪ -‬בהינתן נוסחת ‪DNF‬‬
‫דוגמא‪:‬‬
‫)בעיה‬
‫‪.‬‬
‫‪,‬‬
‫בשיטת‬
‫ה‪:Padding-‬‬
‫‪ :‬בהינתן קלט נבדוק שהוא מהצורה הנדרשת‪ ,‬ואם כן נפעיל עליו את האלג' הלא‪-‬דטר' הרץ בזמן‬
‫‪ .‬זמן הריצה הוא פולי' בגודל הקלט ב‪-‬‬
‫המחלקות‬
‫‪ ‬‬
‫‪1:‬‬
‫‪0,1‬‬
‫‪, ,‬‬
‫ומספר ‪ ,k‬האם קיימת נוסחת ‪DNF‬‬
‫‪.‬‬
‫| |‬
‫‪.‬‬
‫‪0,1‬‬
‫| |‬
‫בגודל לכל היותר ‪ k‬כך ש‪-‬‬
‫‪0,1‬‬
‫‪.‬‬
‫‪.‬‬
‫‪:‬‬
‫‪.‬‬
‫‪-‬שלמה(‪.‬‬
‫‪ :‬מוגדרת בצורה דומה עם החלפת ה‪ -‬עם ה‪ . -‬מתקיים‪:‬‬
‫‪.‬‬
‫דוגמא‪:‬‬
‫|‬
‫‪.‬‬
‫‪.‬‬
‫‪,‬‬
‫‪ .‬ניתן להביע את התנאי בשתי הצורות הנ"ל‪ ,‬שייך ל‪-‬‬
‫‪,‬‬
‫הקרויה גם ‪ .DP‬בעיה זו היא ‪-DP‬שלמה‪.‬‬
‫ניתן להמשיך ולהוסיף תנאי ‪ ,‬ולהגדיר‬
‫‪,‬‬
‫וכן הלאה‪ ,‬והיררכיה זו קרויה ההיררכיה הפולינומיאלית – ‪.PH‬‬
‫משפט‪:‬‬
‫הוכחה‪ :‬כיוון אחד ברור‪ .‬אם נניח ש‪-‬‬
‫‪1‬‬
‫‪, ,‬‬
‫‪,‬‬
‫‪1‬‬
‫‪.‬‬
‫‪.‬‬
‫| |‬
‫| |‬
‫‪,‬‬
‫‪0,1‬‬
‫| |‬
‫אז ‪1‬‬
‫‪ ,‬ותהי‬
‫‪0,1‬‬
‫|‬
‫‪,‬‬
‫‪, ,‬‬
‫‪.‬‬
‫| |‬
‫‪ .‬מהגדרה‬
‫‪.‬‬
‫‪0,1‬‬
‫‪ ,‬ונניח‬
‫| |‬
‫‪0,1‬‬
‫‪ .‬נגדיר‬
‫‪ ‬הוא האלג' המוודא של‬
‫‪ .‬מכאן‪:‬‬
‫‪ .‬באופן דומה זו שפה ב‪ NP-‬ולפי הנחה ב‪.P-‬‬
‫‪0,1‬‬
‫משפט היררכית הזמן‪:‬‬
‫לכל פונקציות ‪ f,g‬כך ש‪-‬‬
‫·‬
‫הוכחה‪ :‬נגדיר בעית החלטה‪ :‬בהינתן אלג'‬
‫הבעיה ב‪-‬‬
‫‪ ,‬נראה שאינה ב‪-‬‬
‫)‪ g‬גדולה משמעותית יותר מ‪ (f-‬מתקיים‪:‬‬
‫האם הפעלת ‪) U‬המ"ט האוניברסלית( לסמלץ את‬
‫‪.‬‬
‫על‬
‫למשך | |‬
‫צעדים עוצרת? מהגדרה‪,‬‬
‫‪ .‬חסר‪.‬‬
‫תרגול‪:‬‬
‫‪-3‬צביעה‪:‬‬
‫•‬
‫בעיית הכרעה‪ :‬בהינתן גרף ‪ ,G‬האם ניתן לצבוע את צמתיו בשלושה צבעים ‪ 1,2,3‬כך שכל שני צמתים סמוכים צבועים שונה? ‪ ‬‬
‫•‬
‫בעיית חיפוש‪ :‬בהינתן גרף ‪ ,G‬מצא צביעה לקודקודיו בשלושה צבעים ‪ 1,2,3‬כך שכל שני צמתים סמוכים צבועים שונה‪ .‬‬
‫‪5‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫אריאל סטולרמן‬
‫‪ ‬‬
‫תרגיל‪ :‬למצוא רדוקצייה עצמית )‪ (Cook‬מבעיית החיפוש לבעיית ההכרעה )כלומר‪ :‬בהינתן אלג' מכריע ל‪ ,3­col-‬למצוא אלג' המוצא צביעה(‪.‬‬
‫פתרון‪ :‬בהינתן ‪ G‬תחילה נבדוק האם‬
‫גרף זה‬
‫‪,‬‬
‫‪,‬‬
‫‪ ,‬אם לא אז נדחה‪ .‬אם כן‪ ,‬נוסיף לו שלושה צמתים חדשים‬
‫נפעיל את אלג' ההכרעה על שלושה גרפים עם צמתי ’‪ G‬וקשתות ’‪ ,G‬כאשר לראשון נוסיף הקשתות‬
‫‪ .‬לכל‬
‫‪,‬‬
‫‪3‬‬
‫‪, ,‬‬
‫שנחברם במשולש ונסמן‬
‫‪,‬‬
‫ולשלישי‬
‫‪ . ,‬מתוך הגרפים האלה נבחר גרף כלשהו‬
‫‪,‬‬
‫)‪3‬‬
‫‪,‬‬
‫‪,‬‬
‫‪ , ,‬לשני‬
‫‪ (1‬שהוא ‪-3‬צביע ונסמנו ’‪ .G‬הצבע של הצומת ‪ v‬יהיה ‪i‬‬
‫הוא הגרף שנבחר מהאיטרציה על ‪ .v‬נכונות‪-3 G’ :‬צביע ולכן ל‪ v-‬צביעה בצבע מבין ‪ ,1,2,3‬ולכן הוספת ‪ 2‬קשתות לצמתים מבין ‪, ,‬‬
‫כאשר‬
‫שאינם צבועים בצבע זהה‪ ,‬תשאיר את הגרף ‪-3‬צביע לפי אותה צביעה‪.‬‬
‫תרגיל‪ :‬אם קיימת שפה אונארית ‪-NP‬שלמה אז‬
‫‪1‬‬
‫הוכחה‪ :‬תהא‬
‫את‬
‫•‬
‫•‬
‫אם‬
‫•‬
‫אם‬
‫כאשר ‪ p‬פולינום ו‪ n-‬מספר‬
‫כאשר‬
‫‪ .‬נשתמש במערך ‪ A‬שכל ערכיו מאותחלים ל‪ .unknown-‬נגדיר‬
‫‪ :‬‬
‫‪,…,‬‬
‫אם ‪0‬‬
‫‪ .‬תהא ‪ f‬הרדוקציה שלכל‬
‫‪ ,‬ולכן‬
‫מחזירה ‪1‬‬
‫‪ /‬אורך ‪ .‬נראה אלג' ל‪ SAT-‬הרץ בזמן פולי' ומכך נסיק‬
‫משתני הנוסחה‬
‫‪,‬‬
‫‪.‬‬
‫)‪ t‬או ‪.(f‬‬
‫החזר את‬
‫|‬
‫‪,‬‬
‫‪,…,‬‬
‫|‬
‫‪,‬‬
‫‪ ,‬החזר את |‬
‫‪,‬‬
‫או‬
‫| ‪.‬‬
‫נשים ‪ t‬ב‪| -‬‬
‫‪,‬‬
‫‪,…,‬‬
‫|‬
‫ונחזיר ‪ ,t‬אחרת נשים ‪ f‬ונחזיר ‪.f‬‬
‫הרעיון‪ :‬עבור קלט בגודל ‪ n‬יתכנו ‪ 2‬קלטים אפשריים‪ ,‬אך ‪ f‬ממפה אותם לקבוצה קטנה יחסית – בגודל‬
‫)כי לכל ‪i‬‬
‫היחיד באורך ‪ i‬הוא‬
‫‪ 1‬ואין עוד קלטים אחרים אפשריים באורך ‪ .(i‬לכן שמירת הערכים ב‪ A-‬תחסוך בדיקות בהמשך = תחסוך התפצלויות בעץ האלג' הנאיבי‪.‬‬
‫‪,…,‬‬
‫נכונות‪ :‬נובעת מכך ש‪-‬‬
‫ספיקה אמ"מ‬
‫‪,…,‬‬
‫‪/ ,‬‬
‫ספיקה‪ .‬זמן ריצה‪ :‬בכל שלב נבחר צומת שמתאים לקריאה רקורסיבית בעץ‬
‫צמתים‪ .‬נעשה זאת עד שהעץ יתרוקן‪ .‬כל קריאה רקורסיבית כזו‬
‫הרקורסיה )לא עלה( ונסיר אותו ואת המסלול המוביל אליו מהשורש‪:‬‬
‫הנמצאת בתחתית המסלול מתאימה לערך שונה מהמערך ‪ ,A‬ולכן לכל היותר יוסרו‬
‫את ‪ f‬ולכן סה"כ‬
‫·‬
‫·‬
‫מסלולים‪ .‬סה"כ‪:‬‬
‫‪ .‬בכל קריאה כזו מפעילים‬
‫‪.‬‬
‫אורקלים ומגבלת הלכסון‪:‬‬
‫אורקל‪:‬‬
‫תהא‬
‫‪0,1‬‬
‫זה יסומן‬
‫שפה כלשהי‪ .‬אלג' עם גישה לאורקל ‪ O‬הוא אלג' שיש לו פקודה המאפשרת לו לפתור את ‪ O‬בצעד אחד של קריאה לאורקל‪ .‬אלג'‬
‫‪ .‬בצורה דומה נגדיר אלג' לא דטר' עם גישה לאורקל ומכאן את המחלקות‬
‫‪ .‬הוכחה‪ :‬הפעלת האורקל על קלט‬
‫טענה‪:‬‬
‫טענה‪ :‬עבור‬
‫טענה‪:‬‬
‫מתקיים‬
‫‪2‬‬
‫‪ .‬הוכחה‪:‬‬
‫‪1,‬‬
‫|‬
‫‪,‬‬
‫‪.‬‬
‫והחזרת התשובה ההפוכה‪.‬‬
‫‪ -‬ניתן לסמלץ את האורקל ע"י מכונה ב‪ P-‬ולהישאר בזמן פולי'‪.‬‬
‫ ברור‪.‬‬‫‪, ,1‬‬
‫;‬
‫הוכחה‪:‬‬
‫‪ :‬תהי‬
‫‪(1‬‬
‫עם מכונה‬
‫באורך הקלט‪ :‬על קלט ‪ x‬מחזיר את תשובת האורקל ל‪-‬‬
‫‪(2‬‬
‫הפותרת את ‪ L‬בזמן‬
‫‪, ,1‬‬
‫‪ 2‬עבור ‪ c‬כלשהו‪ .‬נבנה אלג' המשתמש ב‪ EXPCOM-‬הרץ בזמן פולי'‬
‫‪.‬‬
‫‪ :‬ברור‪.‬‬
‫‪(3‬‬
‫‪ :‬בזמן אקספ' ניתן לעבור על כל האפשרויות הלא‪-‬דטר' גם עם האורקל‪.‬‬
‫משפט ‪ :Baker­Gill­Solovay‬קיים אורקל ‪ A‬כך ש‪-‬‬
‫| |‪.‬‬
‫הוכחה‪ :‬לכל שפה ‪ A‬נגדיר‬
‫נותר לבנות ‪ A‬כך ש‪-‬‬
‫| ‪1‬‬
‫‪ .‬לכל ‪ A‬מתקיים‬
‫כי העד יכול להגיד לנו איפה נמצא את המחרוזת‬
‫‪.‬‬
‫‪.‬‬
‫תרגול‪:‬‬
‫טענה‪:‬‬
‫‪.‬‬
‫הוכחה‪ :‬נראה ש‪-‬‬
‫הרצה בזמן‬
‫‪2‬‬
‫ואז לפי משפט היררכית הזמן‪:‬‬
‫‪ · 2‬ומכריעה את ‪ .L‬נראה כי‬
‫את תשובת האורקל‪ .‬נשים לב כי‬
‫‪ .‬תהא‬
‫אז קיימת מ"ט ‪M‬‬
‫‪2‬‬
‫‪ :‬בהינתן קלט ‪ x‬ניצור את הקלט לאורקל‬
‫‪, ,1‬‬
‫‪.‬‬
‫‪ .‬זמן הריצה של ‪ M‬חסום ע"י‬
‫‪ 2‬ולכן‬
‫‪, ,1‬‬
‫ונחזיר‬
‫‪ .‬‬
‫‪ ‬‬
‫‪6‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫אריאל סטולרמן‬
‫פרק שני‪ :‬סיבוכיות מקום‪:‬‬
‫‪ :‬פונקצית סיבוכיות מקום )מונוטונית לא יורדת(‪.‬‬
‫תהי‬
‫ע"י מ"ט דטרמניסטית‪.‬‬
‫‪ :‬מחלקת השפות שניתנות להכרעה במקום‬
‫ע"י מ"ט לא דטרמיניסטית‪.‬‬
‫‪ :‬מחלקת השפות שניתנות להכרעה במקום‬
‫המחלקות ‪:NL ,L‬‬
‫‪,‬‬
‫‪ .‬נגדיר מ"ט בעלת שלושה סרטים באופן הבא‪:‬‬
‫‪.1‬‬
‫סרט קלט‪ :‬קריאה בלבד‪ .‬‬
‫‪.2‬‬
‫סרט עבודה‪ :‬קריאה וכתיבה‪ .‬גודל סרט זה קובע את סיבוכיות המקום‪ .‬‬
‫‪.3‬‬
‫סרט פלט‪ :‬לכתיבה בלבד‪ .‬‬
‫קונפיגורציות‪:‬‬
‫| |‬
‫מספר הקונפיגורציות עבור קלט בגודל ‪ N‬וסרט עבודה בגודל ‪:S‬‬
‫המכונה מצב‬
‫דוגמאות לשפות ב‪… :L-‬‬
‫‪,‬‬
‫שאלה פתוחה‪ :‬האם קיימת שפה ב‪\ -‬‬
‫‪,‬‬
‫; האם‬
‫‪,‬‬
‫מיקום הראש‬
‫בסרט העבודה‬
‫‪,‬‬
‫| |‬
‫תוכן סרט העבודה‬
‫| |‬
‫מיקום הראש‬
‫בסרט הקלט‬
‫תוכן סרט הקלט‬
‫‪.‬‬
‫‪.‬‬
‫רדוקצית ‪:log­space Karp‬‬
‫‪ :‬הרצה במקום לוגריתמי כך שלכל ‪:w‬‬
‫אם קיימת פונ'‬
‫‪.‬‬
‫משפט‪:‬‬
‫המחלקות ‪,‬‬
‫‪, ,‬‬
‫‪,‬‬
‫‪,‬‬
‫סגורות תחת רדוקצית מקום לוגריתמי‪.‬‬
‫רדוקציה לוגריתמית במקום מ‪ A-‬אל ‪ :B‬מסמלצים ריצה של ‪) f‬סרט ה‪ out-‬לא חסום במקום‪ ,‬לכן ניתן לסמלץ צעד צעד‪ ,‬ולשמור על שימוש במקום‬
‫לוגריתמי(‪.‬‬
‫בעיית ‪:CONN‬‬
‫בהינתן גרף ‪ G‬וקודקודים ‪ ,s,t‬האם קיים מסלול מ‪ s-‬ל‪.t-‬‬
‫להלן אלג' במקום לוגריתמי לא דטר'‪ :‬יהי‬
‫‪:‬‬
‫קודקוד התחלתי נבצע | | איטרציות‪ :‬בכל שלב ‪ u‬בוחר שכן כלשהו וממשיך אליו‪ .‬אם‬
‫נקבל‪ ,‬אחרת נמשיך‪ .‬אם לא הגענו ל‪ ,t-‬נדחה‪ .‬את ‪ u‬ואת ‪) i‬מספר הצעדים שביצענו עד כה‪ ,‬עד שנגיע ל‪ (| |-‬מחזיקים ב‪| |-‬‬
‫‪,‬‬
‫מקום‪.‬‬
‫‪:NL­TM‬‬
‫‪.1‬‬
‫סרט קלט‪ :‬קריאה בלבד‪ .‬‬
‫‪.2‬‬
‫סרט עבודה‪ :‬קריאה וכתיבה‪ .‬‬
‫‪.3‬‬
‫סרט עדות‪ :‬לקריאה בלבד‪ ,‬רק משמאל לימין‪ ,‬ללא אפשרות לחזור אחורה‪ .‬‬
‫‪:‬‬
‫בהינתן מכונה ‪ M‬וקלט ‪ x‬ניצור את ‪ :G, s, t‬נגדיר קונפיגורציה מקבלת‪ :‬נמחק את סרט העבודה‪ ,‬ונגדיר קונ' זו כמקבלת‪.‬‬
‫הקונפיגורציות‪ ,‬שכל קודקוד בו יתאים לקונפיגורציה של ‪ M‬על הקלט ‪ .x‬מס' הקונ' הוא פולי' באורך ‪ .x‬קשת‬
‫לפי‬
‫‪,‬‬
‫‪,‬‬
‫יהיה גרף‬
‫תהיה ב‪ G-‬אם יש מעבר‬
‫)פונ' מעברים לא דטר'( ב‪ ,M-‬כלומר מעבר קונפיגורציות חוקי‪ s .‬יהיה הקונ' ההתחלתית ו‪ t-‬תהיה הקונ' היחידה )כפי שהוגדרה לעיל(‬
‫המקבלת‪.‬‬
‫‪,‬‬
‫ניתן ליצירה במקום לוגריתמי‪ :‬נחזיק את הגרף במט' שכנויות התופסת מקום לינארי‪ ,‬אך נעבוד על קשת אחת בכל זמן נתון לפני הדפסתה‬
‫לסרט הפלט – ולכן נזדקק לסרט עבודה לוגריתמי בלבד‪.‬‬
‫נותר להוכיח כי‬
‫‪, :‬‬
‫‪,‬‬
‫‪.‬‬
‫משפט ‪:Savitch‬‬
‫‪:‬‬
‫‪ :‬כל מכונה המשתמשת במקום‬
‫מקום‪ .‬להלן אלג' דטר' ל‪ CONN-‬המשתמש ב‪-‬‬
‫לא דטר'‪ ,‬ניתן לסמלץ ע"י מכונה דטר' עם‬
‫מקום‪:‬‬
‫נראה אלג' הבודק האם בגרף מכוון ‪ G‬קיים מסלול מ‪ u-‬אל ‪ v‬באורך לכל היותר ‪ ,d‬ואז נבדוק על | |‬
‫‪1‬‬
‫| |‬
‫‪ ,‬נדחה‪ .‬אחרת‪ ,‬נבדוק האם לכל‬
‫מתקיים האלג' על‬
‫‪ , ,‬ועל‬
‫‪ : , ,‬אם‬
‫‪,‬‬
‫‪ ,‬נקבל‪ .‬אחרת‪ ,‬אם‬
‫‪ . , ,‬אם כן‪ ,‬נקבל‪ .‬אחרת נדחה‪ .‬עומק הרקורסיה באלג' הוא‬
‫‪ .‬בכל רמה של הרקורסיה צריך לשמור ‪ – w‬דורש מקום לוגריתמי בלבד‪ .‬סה"כ‪| | :‬‬
‫מקום‪.‬‬
‫‪ ‬‬
‫‪7‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫תרגול‪:‬‬
‫אריאל סטולרמן‬
‫‪:‬‬
‫‪:2‬‬
‫‪2‬‬
‫בהינתן‬
‫בעלת ‪ n‬משתנים‪ ,‬נבנה גרף עם ‪ 2n‬משתנים )לכל משתנה ושלילתו(‪ .‬נייצג את האילוצים בגרף ע"י קשתות מתאימות באופן‬
‫הבא‪ :‬כדי שהסגר כלשהו יסופק צריך להתקיים שאם שלילת הליטרל הראשון מקבל ‪ ,t‬אז הליטרל השני צריך לקבל ‪ .t‬כמו כן אם שלילת הליטרל‬
‫השני מקבלת ‪ ,t‬הליטרל הראשון צריך לקבל ‪) t‬כדי שיהיה לפחות ליטרל אחד מתוך ה‪ 2-‬בהסגר שמקבל ‪ .(t‬לכל הסגר‬
‫‪,‬‬
‫את הקשתות‬
‫‪,‬‬
‫ו‪-‬‬
‫‪.‬‬
‫טענה‪ :‬ל‪ -‬אין השמה מספקת‬
‫שיש מסלול ממנו ל‪-‬‬
‫קיים משתנה‬
‫‪:2‬‬
‫)ומסלול הפוך גם כן(‪ .‬אם הטענה נכונה‪ ,‬קל להראות ש‪-‬‬
‫‪ ,‬וננחש באופן לא דטר'‪ ,‬כמו באלג' המכריע את ‪ ,CONN‬מסלול מ‪-‬‬
‫ננחש באופן אי דטר' את‬
‫נסמן אם כן בגרף‬
‫אל‬
‫לא‬
‫ולהיפך‪ .‬אלג' זה עובד עם מקום‬
‫דטר'‪.‬‬
‫הוכחת הטענה‪:‬‬
‫אם קיים ‪ i‬כך שיש מסלול מ‪-‬‬
‫אל‬
‫‪ ,‬וכמו כן אם‬
‫נקבל כי גם‬
‫ולהיפך‪ ,‬אז לפי הגדרת הגרף כל צומת שניתן להגיע אליו מ‪ , -‬אם‬
‫אז‬
‫נניח כעת כי לכל ‪ i‬לא קיים מסלול מ‪-‬‬
‫במתן ערכי אמת ל‪-‬‬
‫אל‬
‫מסלול מ‪-‬‬
‫‪2‬‬
‫‪,‬‬
‫אז גם אותו צומת מקבל ‪ .t‬לפיכך‬
‫‪ ,‬וזו סתירה‪ .‬לפיכך ל‪ -‬אין השמה מספקת‪.‬‬
‫אל‬
‫‪ .‬כאמור‪ ,‬אם‬
‫קיבלנו סתירה לערכו של‬
‫‪ ,‬כל‬
‫שיש מסלול מ‪-‬‬
‫‪ .‬מכאן שקיימים מסלולים מ‪-‬‬
‫להיות ‪ ,t‬קבענו בכך את ערכו של‬
‫‪ .‬לכן‪ ,‬כאשר קבענו את ערכו של‬
‫אליו מקבל ‪ .t‬נראה שלא יתכן שנקבל סתירה‪ .‬נניח כי‬
‫ל‪-‬‬
‫ומ‪-‬‬
‫ל‪ . -‬לפיכך‪ ,‬יש גם מסלול מ‪-‬‬
‫להיות ‪ ,f‬ומכאן שלא היתה סתירה בקביעת‬
‫ל‪-‬‬
‫‪ ,‬ולכן‬
‫‪.‬‬
‫‪:‬‬
‫בהינתן ‪ G,s,t‬נגדיר את‬
‫באופן הבא‪:‬‬
‫‪ .‬אם קיים מסלול בין ‪ s‬ל‪ ,t-‬אז כדי ש‪ -‬תסופק‪ s ,‬חייב להיות ‪ t‬ו‪t-‬‬
‫‪,‬‬
‫חייב להיות ‪ f‬וכל צומת שיש מסלול מ‪ s-‬אליו חייב להיות ‪ .t‬לכן‪ ,‬לא יתכן שיש השמה מספקת ל‪ . -‬אם אין ב‪ G-‬מסלול מ‪ s-‬ל‪ ,t-‬ניתן ערך ‪ t‬ל‪ s-‬ולכל‬
‫המשתנים שיש מסלול מ‪ s-‬אליהם‪ .‬נשים לב שאין קשת מצומת ‪ u‬שיש מסלול מ‪ s-‬אליו לצומת ‪ v‬שאין מסלול מ‪ s-‬אליו )אחרת היה מסלול‬
‫‪ ,‬אם‬
‫(‪ .‬לכן‪ ,‬כל ההסגרים מהצורה‬
‫‪ ,‬ומכיוון שיש מסלול מ‪ s-‬אל ‪ v‬אז גם‬
‫אז‬
‫‪ .‬לכן כל ההסגרים יסתפקו‪.‬‬
‫הרדוקציה במקום לוגריתמי‪ - :‬‬
‫סימולציית חישוב לא דטר' בחישוב דטר'‪:‬‬
‫נבנה מכונת טיורינג דטר'‪ :‬‬
‫•‬
‫סרט קלט‪ .‬‬
‫•‬
‫סרט סימולציה‪ .‬‬
‫•‬
‫סרט ‪ – Guide‬אורכו בדיוק‬
‫)זמן הריצה של‪ ‬המכונה הלא דטר'(‪ .‬יחזיק מספר שיהווה את העדות‪ .‬נסמלץ לפי העדות‪ ,‬ובכל פעם שלא‬
‫‪-1‬ים(‪ .‬אם בסוף לא קיבלנו‪ ,‬נדחה‪ .‬‬
‫מקבלים מעלים את העדות ב‪ ,1-‬כך עד מיצוי כל האפשרויות )‬
‫מקום‪ :‬מקום סרט הסימולציה וסרט ה‪-‬‬
‫הוא סה"כ‬
‫‪ .‬סרט הסימולציה – הסימולטור רץ בזמן‬
‫‪ ,‬ולכן זהו מספר התוים שלכל‬
‫היותר יכתוב‪ ,‬והעדות – כאמור בגודל זה גם כן‪.‬‬
‫‪:‬‬
‫רדוקציה מ‪-‬‬
‫‪ 3‬באופן הבא‪ :‬עבור‬
‫‪3‬‬
‫‪,‬‬
‫בעלת ‪ m‬הסגרים נבנה‬
‫כך שב‪:G-‬‬
‫•‬
‫‪ :V‬קודקוד לכל מופע של כל ליטרל‪ ,‬כלומר סה"כ ‪ 3m‬קודקודים‪ .‬‬
‫•‬
‫‪ :E‬אין קשתות בין מופע של ליטרל למופע ההפוך לו‪ ,‬ובין כל שלישית קודקודים מאותו הסגר‪ .‬כל שאר הקשתות קיימות‪ .‬‬
‫שלמות‪ :‬אם‬
‫ספיקה‪ ,‬אז הקליקה מכילה לכל הסגר קודקוד אחד לפחות – זה שמספק את ההסגר )מקבל ‪.(t‬‬
‫תקפות‪ :‬בהינתן קליקה ב‪ G-‬בגודל ‪ ,k‬לכל משתנה מהנוסחה או שמופיע במופע שלילי או בחיובי‪ ,‬אך לא שניהם יחד – כי לפי הבניה של ‪ G‬אין‬
‫ביניהם קשת‪ .‬נציב באותם משתנים בקליקה ‪ t‬וכך כל ההסגרים יסתפקו‪ ,‬כי לכל הסגר יש "נציג" בקליקה‪ .‬ההצבה במשתנים שלא בקליקה לא‬
‫משנה‪.‬‬
‫מקום‪ :‬הרדוקציה היא ‪ ,logspace‬מיידי‪.‬‬
‫‪ Scale­up‬למשפט ‪:Savitch‬‬
‫יהיו‬
‫‪,‬‬
‫פונקציות זיכרון‪ ,‬ותהי‬
‫‪.‬‬
‫פונקצית הרחבה‪ .‬אם‬
‫אז‬
‫‪ ‬‬
‫‪8‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫הוכחה‪:‬‬
‫‪ ,‬נבצע ‪:padding‬‬
‫תהי‬
‫|‬
‫שהקלט אכן מהצורה הזו )בדיקת | |‪ ,‬חישוב | |‬
‫| |‬
‫| |‬
‫וחישוב | |‬
‫את הבעיה‪ .‬האלג' רץ עבור קלט בגודל | |‬
‫לפי ההנחה‪ ,‬קיים אלג' דטר' המכריע את‬
‫‪ -‬הופכים את גודל הקלט ל‪| | -‬‬
‫‪#‬‬
‫| |‬
‫במקום | |‪ .‬האלג' יבדוק‬
‫ולבסוף בדיקת הקלט עצמה( ולאחר מכן נפעיל את האלג' הפותר ב‪-‬‬
‫ולכן אלג' זה להכרעת‬
‫‪.‬‬
‫גורר ש‪-‬‬
‫‪ ,‬נסמן את המ"ט שעושה זו ב‪ .M’-‬נסמלץ את מכונת ’‪ M‬ב‪-‬‬
‫במקום‬
‫בלבד‪ ,‬המכונה תסמלץ את פעולת ’‪ M‬כך שתספור כאילו | |‬
‫‪ ,‬באופן הבא‪ :‬בהינתן קלט‬
‫מונה עד | | ‪ .‬כיוון שיש‬
‫אריאל סטולרמן‬
‫‪ ‬‬
‫תוי ‪ ,#‬אך למעשה פשוט תריץ‬
‫‪ ,‬הרי שיש מספיק מקום להחזיק מונה עד | | ‪ .‬ומכאן מכונה הרצה במקום‬
‫מקום‪ ,‬ו‪-‬‬
‫המכריעה את ‪.L‬‬
‫טענה‪:‬‬
‫‪:‬‬
‫‪ ,‬כלומר הבעיה‪ :‬האם אין מסלול בין ‪ s‬ל‪ ,t-‬שהיא‬
‫נראה זאת ע"י כך שנראה ש‪-‬‬
‫ב‪.NL-‬‬
‫נסתכל על מודל מכונת ‪ NL‬בו יש סרט עדות שניתן לקריאה משמאל לימין ללא חזרה‪ .‬נבנה את העד בצורה אינדוקטיבית‪:‬‬
‫משפט ‪:Immerman­Szelepcsenyi‬‬
‫|‬
‫נגדיר את הקבוצה‬
‫‪,‬‬
‫‪ -‬קבוצת כל הקודקודים הנגישים מ‪ .s-‬נשאל האם‬
‫\‬
‫‪ ,‬שהוא גרף ללא ‪ ,t‬ונשאל‪:‬‬
‫מספיק להראות ש‪-‬‬
‫‪ #‬עבור ‪ r‬כלשהו‪.‬‬
‫|‬
‫נגדיר‪:‬‬
‫בסיס‪1 :‬‬
‫‪#‬‬
‫?‬
‫‪ .‬נסתכל על ‪ ‬‬
‫‪ .#‬אם כן‪ ,‬אזי‬
‫‪ .‬אינדוקציה על כשלבסוף | |‬
‫‪, ,‬‬
‫יכסה את כל‬
‫‪.‬‬
‫‪.‬‬
‫ ‪ s‬הקודקוד הנגיש לעצמו ב‪ 0-‬צעדים‪.‬‬‫‪#‬‬
‫מעבר‪ :‬נניח יש לנו עדות ל‪-‬‬
‫‪ ,‬נראה הרחבת העדות ל‪-‬‬
‫מתאים לעדות‪ .‬העדות עד כה ‪ , # #‬ונרחיבה‪ :‬לכל | |‬
‫שייך ל‪-‬‬
‫)‪ 1‬אם כן‪ 0 ,‬אם לא(‪ ,‬ו‪-‬‬
‫‪ .‬העדות מהצורה ‪# #‬‬
‫‪ 1‬נשרשר לעדות עד כה את ‪$‬‬
‫‪$‬‬
‫עדות‬
‫ביט‬
‫העדות לכך‪ .‬בדיקת השייכות ל‪-‬‬
‫•‬
‫•‬
‫אי שייכות‪:‬‬
‫תהיה עדות לכך שכל הקשתות שנכנסות לקודקוד ‪ i‬אינן מתחילות מקודקוד ששייך ל‪-‬‬
‫לכל | |‬
‫‪ 1‬ישורשר‬
‫תהיה מסלול באורך‬
‫ביט‬
‫כאשר הביט מסמל האם הקודקוד ‪i‬‬
‫‪:‬‬
‫שייכות‪:‬‬
‫‪1‬‬
‫שהוא‬
‫כאשר האלג' מקבל רק אם‬
‫אותו יוודא האלג'‪ .‬אם המסלול הניתן לא טוב‪ ,‬נדחה‪ .‬אם כן נוסיף ‪ 1‬למונה‬
‫‪ .‬‬
‫‪ .‬העדות תהיה אם כן‪:‬‬
‫‪ ,‬כאשר הביט מייצג האם הקודקוד ‪ j‬לא נגיש מ‪ s-‬ב‪ l-‬צעדים‪ ,‬ואם כן – שאין קשת‬
‫‪ . ,‬לשלב זה‬
‫נחזיק מונה שמתחיל מ‪ :0-‬‬
‫‪o‬‬
‫אם ‪ j‬נגיש מ‪ s-‬ב‪ l-‬צעדים‪:‬‬
‫יהיה מסלול באורך‬
‫‪ ,‬ונבדוק שאין קשת‬
‫שהוא‬
‫‪ . ,‬אם יש קשת כזו‪ ,‬נדחה‪ .‬אחרת נעלה את‬
‫המונה ב‪ .1-‬‬
‫‪o‬‬
‫אם ‪ j‬לא נגיש מ‪ s-‬ב‪ l-‬צעדים‪:‬‬
‫תהיה עדות ריקה‪ .‬‬
‫כל מה שצריך כדי לוודא שזה נכון הוא לבדוק בסוף שמספר הנגישים שספרנו לפי עדויות ה‪ -‬השונות הכולל )המונה שהחזקנו( שווה בדיוק ל‪-‬‬
‫שחושב קודם לפי הנחת האינדוקציה‪ .‬אם לא – נדחה‪ .‬אם כן – נמשיך‪.‬‬
‫לבסוף‪ ,‬לאחר מעבר על כל | |‬
‫‪ 1‬נוודא שעבור‬
‫‪ ,‬התקבל אותו‬
‫| |‬
‫‪ .‬אם כן – נקבל‪ ,‬ואחרת נדחה‪.‬‬
‫תרגול‪:‬‬
‫לאיזו מחלקת סיבוכיות שייכת הבעיה‪:‬‬
‫תרגיל‪ :‬בהינתן גרף ‪ ,G‬האם יש בו לכל היותר ‪ 2009‬רכיבי קשירות חזקים‪.NL :‬‬
‫פתרון‪ :‬מנחשים )האלג' מנחש באופן אי דטר'( קבוצה‬
‫‪ .s‬אם נמצאו מסלולים כנ"ל לכל‬
‫של ‪ 2009‬קודקודים‪ .‬לכל‬
‫‪ :‬מנחשים‬
‫ומנחשים מסלול בין ‪ s‬ל‪ v-‬וחזרה ל‪-‬‬
‫‪ ,‬נקבל‪ .‬אחרת‪ ,‬נדחה‪ .‬הנכונות מכך שאם ‪ G‬בשפה‪ ,‬קיים ניחוש אי דטר' שמוצא ‪ 2009‬נציגים לכל אחד מ‪-‬‬
‫‪ 2009‬רכיבי הקשירות‪ ,‬כך שלכל קודקוד נוכל למצוא את הנציג שלו‪ ,‬ונוודא זאת ע"י מציאת מסלול אליו וחזרה‪ .‬אם בגרף יותר מ‪ 2009-‬רכיבי‬
‫קשירות‪ ,‬אז קיים ‪ v‬כך שלכל‬
‫שנבחר מתוך ‪ 2009‬הקודוקדים ב‪ ,S-‬אף אחד לא נציג של ‪ ,v‬ולכן לא נמצא מסלולים‬
‫‪,‬‬
‫תרגיל‪ :‬האם ב‪ G-‬לפחות ‪ 2009‬רכיבי קשירות חזקים‪NL :‬‬
‫‪ ,‬ולכן גם בעיה זו ב‪.NL-‬‬
‫פתרון‪ :‬בעיה זו היא הבעיה המשלימה של התרגיל הקודם‪ ,‬שזו בעיה ב‪ .NL-‬לפי ‪,Immerman‬‬
‫תרגיל‪ :‬ב‪ G-‬בדיוק ‪ 2009‬רכיבי קשירות‪NL :‬‬
‫פתרון‪ :‬בעיה זו חיתוך של השתיים הקודמות‪ ,‬ו‪ NL-‬סגורה לחיתוך )‬
‫‪.( ,‬‬
‫‪.‬‬
‫‪9‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫אריאל סטולרמן‬
‫‪ ‬‬
‫תרגיל‪ :‬בעיית ‪ CONN‬לגרפים לא מכוונים‪ – L :‬הוכח ע"י ‪.Reingold, 2005‬‬
‫תרגיל‪ :‬בהינתן ‪ G‬מכוון עם ‪ n‬צמתים‪ ,‬האם קיים מעגל פשוט באורך ‪NPC :‬‬
‫‪ :‬יוצרים ’‪ G‬שהוא הכפלת הגרף ‪ .G‬ב‪ G’-‬מעגל פשוט באורך אמ"מ ב‪ G-‬מעגל המילטוני )פשוט באורך ‪.(n‬‬
‫פתרון‪:‬‬
‫תרגיל‪ :‬בהינתן ‪ G‬גרף מכוון‪ ,‬האם קיימים‬
‫‪ ,‬כך שאורך המסלול הקצר ביותר שמחבר אותם הוא באורך‬
‫‪ -‬בעיה ב‪ :NL-‬עוברים על כל זוגות הצמתים ומנחשים מסלול באורך כזה‪.‬‬
‫פתרון‪ :‬הבעיה המשלימה‪ :‬האם כל שני צמתים במרחק‬
‫| |‬
‫תרגיל‪ :‬בהינתן גרף ‪ ,G‬האם קיימת בו ‪ I‬שהיא ‪ IS‬ו‪ C-‬שהיא ‪ Clique‬כך ש‪2009-‬‬
‫| |‪L :‬‬
‫צמתים יש קליק או ‪ IS‬בגודל ‪ .2009‬הפתרון כאן‪ :‬עוברים על כל ‪ i‬ובודקים האם יש‬
‫פתרון‪ :‬יש פתרון גם בזמן קבוע‪ :‬בכל גרף עם לפחות‬
‫קליק בגודל ‪ i‬ו‪ IS-‬בגודל‬
‫‪NL :‬‬
‫‪ ,2009‬כל זה במקום לוגריתמי‪.‬‬
‫בעיות שלמות ב‪:PSPACE-‬‬
‫בעיות שניתן לפתור במקום פולי'‪ .‬ידוע ש‪-‬‬
‫)אם היה שוויון ‪ PH‬היתה קורסת(‪.‬‬
‫‪ ,‬אך לא יודעים להוכיח‬
‫‪1‬‬
‫טענה‪ :‬השפה‬
‫‪, ,1‬‬
‫מקום |‬
‫תוך שימוש ב‬
‫‪ .‬המחלקה ‪ PSPACE‬סגורה‬
‫לרדוקציה במקום לוגריתמי‪ ,‬וזו הרדוקציה בה נשתמש )רדוקציה במקום פולי' חזקה מדי(‪.‬‬
‫נוסחה מכומתת לחלוטין – )‪:Truly Quantified Boolean Formula (TQBF‬‬
‫‪,…,‬‬
‫נוסחה מהצורה‪:‬‬
‫‪.‬‬
‫‪ /‬כאשר‬
‫‪… /‬‬
‫נוסחה ללא כמתים‪.‬השפה ‪ – TQBF‬שפת הנוסחאות הללו שהן נוסחאות אמת‪SAT .‬‬
‫היא תת שפה של ‪ – TQBF‬הכמתים תמיד ישיים והנוסחאות הן מצורת ‪.CNF‬‬
‫‪:‬‬
‫טענה‪:‬‬
‫בגודל ‪ m‬ב‪ :TQBF-‬נקרא בצורה רקורסיבית לנוסחה פעם אחת עם הצבת‬
‫הוכחה‪ :‬להלן פרוצדורה לפתרון נוסחה‬
‫•‬
‫אם הכמת הוא ‪ ,‬נקבל אמ"מ לפחות אחת מהקריאות מחזירה ‪ .t‬‬
‫•‬
‫אם הכמת הוא ‪ ,‬נקבל אמ"מ שתי הקריאות מחזירות ‪ .t‬‬
‫·‬
‫נכונות‪ :‬קל לראות נכונות‪ ,‬והזיכרון בו משתמשים הוא‬
‫‪ n -‬עומק הרקורסיה ו‪-‬‬
‫‪.‬‬
‫ופעם עם‬
‫זיכרון להצבת ערכים ב‪. -‬‬
‫‪ ‬‬
‫מסקנה‪:‬‬
‫השוני בין ‪ PSPACE‬ל‪ PH-‬הוא שב‪ PH-‬מספר החלפות הכמתים ידוע מראש‪ ,‬בעוד שב‪ PSPACE-‬הוא תלוי הנוסחה המתקבלת כקלט‪.‬‬
‫כי מספר החלפות הכמתים ב‪ TQBF-‬יכול להיות ‪ n‬ולא קבוע כמו ב‪.PH-‬‬
‫הערה‪ :‬לא מאמינים ש‪-‬‬
‫‪:‬‬
‫משפט‪:‬‬
‫נראה ש‪-‬‬
‫עבור פולינום ‪ s‬כלשהו המחושבת ע"י ‪ ,M‬לכל ‪ x‬נבנה‬
‫‪ :‬בהינתן‬
‫‪ .‬נסתכל על‬
‫נוסחת אמת אמ"מ‬
‫‪ .(2‬נבנה‬
‫)מספר הקודקודים‬
‫‪,‬‬
‫נסמן את‬
‫גרף הקונפיגורציות של ריצת‬
‫‪,‬‬
‫‪ 2‬מקודקוד‬
‫הבודקת מסלול באורך‬
‫כנוסחה הבודקת האם יש מסלול בגרף‬
‫‪,‬‬
‫מ‪-‬‬
‫אל‬
‫‪ ,‬ויהי‬
‫נוסחה‬
‫‪,‬‬
‫זו‬
‫מתפתחת‬
‫‪.‬‬
‫‪,‬‬
‫‪,‬‬
‫אקספ'‪,‬‬
‫ולכן‬
‫‪,‬‬
‫…‬
‫‪,‬‬
‫כדי‬
‫‪.‬‬
‫לקצרה‬
‫מספר הביטים הנדרשים לייצוג קודקוד בגרף‬
‫לקודקוד‬
‫‪:‬‬
‫‪,‬‬
‫)מעבר חוקי של קונ'(‪ ,‬והיא בגודל פולי'‪ .‬נגדיר רקורסיבית‬
‫‪,‬‬
‫כנוסחה האומרת‪ :‬קיים מסלול חוקי בין ‪ c‬ל‪ d-‬באורך ‪ ,2‬ונקח לבסוף את‬
‫נהפוך‬
‫נוחסת ‪ TQBF‬כך שהיא‬
‫כל‬
‫‪:‬‬
‫זוג‬
‫‪,‬‬
‫הופעות‬
‫‪,‬‬
‫של‬
‫‪.‬‬
‫בהופעה‬
‫‪,‬‬
‫‪.‬‬
‫בודדת‪:‬‬
‫‪ ,‬כאשר החלק המסומן הוא מגודל קבוע‪.‬‬
‫‪,‬‬
‫פרק שלישי‪ :‬אלגוריתמי קירוב‪ ,‬בעיות אופטימיזציה‪:‬‬
‫אלגוריתמי קירוב‪:‬‬
‫אלגוריתם קירוב ל‪ VC-‬בפקטור ‪:2‬‬
‫האלג'‪ :‬בונים קבוצת זיווג מקסימלי‬
‫‪ ,‬נוסיף לקבוצה זו קשתות שלא נוגעות בקשתות שכבר בקבוצה עד שלא ניתן‪ .‬המקסימלי יכול‬
‫להשתנות בהתאם לבחירת הקשתות‪ ,‬אין זה משנה כאן‪ .‬נגדיר את ה‪:VC-‬‬
‫‪. .‬‬
‫|‬
‫זמן ריצה‪ :‬ברור שפולי'‪ ,‬כיוון שמציאת זיווג מקסימלי נעשית בזמן פולי'‪.‬‬
‫נכונות‪ :‬אכן מתקבלת קבוצת כיסוי חוקית כיוון שכל קשת ב‪ E-‬חייבת לגעת ב‪ M-‬כיוון ש‪ M-‬מקסימלית‪.‬‬
‫‪ -‬קבוצת הקודקודים של קשתות ‪.M‬‬
‫‪ ‬‬
‫‪10‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫יחס הקירוב‬
‫|‪2‬‬
‫‪ :2‬מתקיים |‬
‫|‬
‫| |‬
‫אריאל סטולרמן‬
‫|‪ :‬גודל הפלט הוא |‬
‫| |·‪2‬‬
‫|‬
‫האופטימום הוא לפחות ‪ M‬כי האופטימום מכיל לפחות קודקוד אחת מכל קשת ב‪ .M-‬כלומר‪| :‬‬
‫| |‪ ,‬ולכן |‬
‫|‬
‫הערה‪ :‬ידוע שזה ‪-NP‬קשה לקרב ביחס ‪ 1.36‬וכמו כן שזה קשה )לא ‪-NP‬קשה( לקרב עד כדי‬
‫| |‪ .‬מכיוון ש‪ M-‬זיווג‪ ,‬גודל‬
‫| |‪.‬‬
‫|‪2‬‬
‫‪.2‬‬
‫בעיות תכנות לינארי‪ :‬בעיות ‪ LP‬ניתנות לפתרון פולינומיאלי בעזרת אלגוריתם האליפסואיד‪.‬‬
‫אלגוריתם קירוב ל‪ VC-‬בעזרת ‪:LP‬‬
‫בהינתן קלט ל‪ VC-‬נכתוב את תוכנית האופטימיזציה הבאה‪:‬‬
‫‪1,‬‬
‫כאשר‬
‫‪0,‬‬
‫‪/‬‬
‫בעיה זו היא בעיית )‪ Integer Programming (IP‬והיא ‪.NPC‬‬
‫קודקוד‪ .‬בגלל שהאילוץ האחרון הוא לינארי‪,‬‬
‫נקח בעיה מקורבת המחליפה את האילוץ האחרון באילוץ לינארי‪0,1 :‬‬
‫‪ subject to: ‬‬
‫∑‪Minimize ‬‬
‫‪.‬‬
‫לכל קשת לפחות קודקוד אחד ‪1 – ‬‬
‫•‬
‫‪,‬‬
‫‪ ‬בכיסוי‬
‫•‬
‫‪.‬‬
‫‪0,1‬‬
‫‪ , .‬כלומר הקלנו בתנאים‪ .‬נסמן את האופטימום המקורי ב‪OPT-‬‬
‫ואת האופטימום של הבעיה המקורבת )בעיית ה‪ (LP-‬ב‪ .OPT*-‬ברור כי‬
‫‪,…,‬‬
‫האלג'‪ :‬נמצא פתרון ‪0,1‬‬
‫‪ .‬בנוסף *‪ OPT‬ניתנת לחישוב בזמן פולי' עם האליפסואיד‪.‬‬
‫∑‪ ,‬ונגדיר את הכיסוי‪0.5 :‬‬
‫כך ש‪-‬‬
‫|‬
‫‪.‬‬
‫זמן ריצה‪ :‬פולי' בעזרת האליפסואיד‪.‬‬
‫נכונות‪ :‬הפלט הוא כיסוי חוקי של צמתים כי לכל קשת‬
‫ניתוח קירוב‪:‬‬
‫‪2‬‬
‫∑‪2‬‬
‫‪2‬‬
‫‪1 : ,‬‬
‫ולכן לפחות אחד מהם‬
‫‪ ,0.5‬ולכן קשת זו מכוסה‪.‬‬
‫| | ‪ -‬כי כל ‪ 1‬ב‪ C-‬תורם לפחות ‪ 0.5‬ב‪ - OPT*-‬יחס קירוב גם כן ‪.2‬‬
‫תרגול‪:‬‬
‫בעית מקסימיזציה‪ :‬אלג' ‪ A‬מהווה ‪-c‬קירוב אם לכל ‪ x‬ערך הפתרון ש‪ A-‬מספק מקיים‪:‬‬
‫בעית מינימיזציה‪ :‬אלג' ‪ A‬מהווה ‪-c‬קירוב אם לכל ‪ x‬ערך הפתרון ש‪ A-‬מספק מקיים‪:‬‬
‫‪.‬‬
‫·‬
‫‪.‬‬
‫בעיית ‪:TSP‬‬
‫בהינתן גרף מלא‬
‫‪ , :‬יש למצוא מעגל פשוט העובר בכל קודקוד הגרף בעל משקל מינימלי‪.‬‬
‫עם פונ' משקלות‬
‫טענה‪ :‬בעיה זו לא ניתנת לקירוב לכל קבוע ‪ c‬שהוא‪ .‬נראה ‪-2‬קירוב לבעית ‪ TSP‬כאשר ‪ w‬מקיימת אשמ"ש‪:‬‬
‫‪,‬‬
‫‪,‬‬
‫‪,‬‬
‫‪:‬‬
‫‪-2‬קירוב ל‪ TSP-‬עם אשמ"ש‪:‬‬
‫הוכחה‪ :‬בהינתן ‪ G‬נמצא עפ"מ‪ .‬לאחר מכן נכפיל כל קשת בגרף כולו – ‪ ,G‬ונמצא מעגל אויילר בעץ המוכפל‪ .‬נלך על המעגל‪ ,‬ובכל פעם שאמורים‬
‫לבקר בצומת בו היינו‪ ,‬נדלג דרך קשת מוכפלת לצומת בו טרם היינו‪ .‬בצומת האחרון נקפוץ לצומת ההתחלה ע"י קשת מוכפלת‪.‬‬
‫נכונות‪ :‬משקל מסלול מינימלי‬
‫משקל עפ"מ‪ ,‬ולכן‬
‫אשמש‬
‫·‪2‬‬
‫בגלל האשמ"ש על ‪ ,w‬ולכן האלג' הולך במסלול השוקל לכל היותר‬
‫· ‪ .2‬כל קפיצה במהלך המסלול לא מעלה את משקל המסלול הכולל‬
‫· ‪.2‬‬
‫קירוב ל‪TSP-‬עם אשמ"ש‪:‬‬‫בהינתן גרף ‪ H‬שידוך מושלם לגרף הוא‬
‫כך שכל צומת מופיע בדיוק בקשת אחת ב‪.E’-‬‬
‫טענה‪ :‬בגרף מולא עם מספר זוגי של צמתים ניתן למצוא שידוך מושלם עם משקל מינימלי בזמן פולי'‪.‬‬
‫טענה‪ :‬בכל גרף‪ ,‬אם ‪ O‬קבוצת צמתים מדרגה אי זוגית אז | | זוגי‪.‬‬
‫האלג'‪ :‬נמצא עפ"מ ב‪ ,G-‬נסמנו ‪ .T‬עבור ‪ O‬קבוצת הצמתים מדרגה אי זוגית נמצא שידוך מושלם במשקל מינימלי בתת הגרף‬
‫ונסמנו ‪ .M‬ב‪-‬‬
‫יש דרגה זוגית לכל צומת‪ .‬נבנה עליו מעגל אויילרני ונפעל כמו האלג' הקודם )הכפלת קשתות וכו'(‪.‬‬
‫ניתוח קירוב‪:‬‬
‫‪ .‬משקל סיור ‪ TSP‬אופטימלי ב‪O-‬‬
‫נקח את כל הקשתות הזוגיות לשידוך אחד והאי זוגיות לשני‪ .‬לפי אשמ"ש משקל ‪ TSP‬ב‪G-‬‬
‫קשתות‬
‫‪2‬‬
‫‪ 2‬משקל שידוך מינימלי ב‪) O-‬כי סיור ניתן להפריד לשני שידוכים – עבור מעגל‬
‫משקל ‪ .M‬מכאן‪:‬‬
‫·‬
‫משקל ‪ TSP‬ב‪-‬‬
‫‪.‬‬
‫בעיות אופטימיזציה‪:‬‬
‫דוגמאות‪ – Clique :‬מקסימיזציה )מציאת קליקה גדולה ביותר(‪ – SAT ,‬מקסימיזציה )רוצים לספק כמה שיותר פסוקיות(‪ – VC ,‬מינימיזציה‬
‫)מציאת כיסוי קודקודים קטן ביותר(‪ .‬לכל בעיה קלט ופרמטר אותו בודקים כמדד‪ .‬למשל‪| - Clique :‬‬
‫|‪- SAT ,‬‬
‫האלג' צריך להחזיר פתרון חוקי שמתוכם את הכי טוב‪.‬‬
‫הגדרה‪ :‬קירוב‪ : -‬אלגוריתם לבעית מקסי'‪/‬מיני' עם פתרון אופטימלי ‪ ,O‬המחזיר פתרון‬
‫)מקסי'( או‬
‫·‬
‫)מיני'(‪.‬‬
‫‪| - VC ,#‬‬
‫|‪.‬‬
‫‪ ‬‬
‫‪11‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫בעית ‪:Set­Cover‬‬
‫בהינתן קבוצת איברים ‪ U‬ו‪-‬‬
‫כך ש‪-‬‬
‫‪-NP‬קשה‪:‬‬
‫אריאל סטולרמן‬
‫מינימלית המכסה את כל ‪:U‬‬
‫רוצים למצוא‬
‫‪ .‬זו בעית מינימיזציה‬
‫‪ :‬בהינתן גרף ‪ ,G‬נבנה אינסטנציה ל‪ SetCover-‬באופן הבא‪ :‬ב‪ U-‬יהיה אלמנט לכל קשת ב‪ ,E-‬וב‪ F-‬תהיה קבוצה‬
‫לכל קודקוד‪ .‬כמו שכל קודקוד מתאים לקשתות‪ ,‬כך כל קבוצה מ‪ F-‬מתאימה לאלמנטים ב‪.U-‬‬
‫אלג' קירוב לבעית ‪ – Set­Cover‬אלג' חמדן‪:‬‬
‫מתחילים מ‪ C-‬קבוצה ריקה ו‪-‬‬
‫המאותחלת ל‪ .U-‬כל עוד‬
‫כך ש‪|-‬‬
‫‪ :‬ניקח‬
‫| מקסימלי‪ ,‬כלומר ‪ S‬המכסה את מקסימום‬
‫האלמנטים שנותרו שטרם כוסו‪ .‬נוסיף את ‪ S‬ל‪ .C-‬חמדנות האלג' נובעת מכך שמבצע את מה שהכי טוב בכל שלב בנפרד‪.‬‬
‫יהי ‪ k‬האופטימום‪ ,‬כלומר כל תת קבוצה של ‪) U‬ו‪ U-‬עצמה( ניתנת לכיסוי ע"י ‪ k‬תתי‪-‬קבוצות‪ .‬מסקנה‪ :‬בכל צעד נלקחת קבוצה המכסה לפחות‬
‫מהאלמנטים שנותרו‪.‬‬
‫‪ :‬לאחר ‪ k‬צעדים מכוסים לפחות מהקודקודים‪ ,‬ולכן לאחר‬
‫הקירוב הוא‬
‫לפחות‬
‫· קודקודים‪ :‬נניח בשלילה שלא‪ ,‬אז לאחר ‪ k‬צעדים נשארים‬
‫הקבוצה הבאה שתלקח תהיה‬
‫קירוב‬
‫‪ :‬יהיו‬
‫‪,…,‬‬
‫·‬
‫קודקודים לא מכוסים‪ .‬כיוון שבכל שלב נלקחים לפחות מהנותרים‪,‬‬
‫‪ .‬מצד שני פונ' מספר הקודקודים שנלקחים בכל שלב לא עולה מונוטונית )בכל שלב נלקחים פחות ופחות‬
‫קודקודים‪ ,‬וסה"כ לאחר ‪ k‬צעדים ראשונים‪:‬‬
‫פריטים(‪ ,‬ולכן כל שלב כיסה‬
‫הקבוצות שנבחרו‪,‬‬
‫|| |‬
‫· ‪.‬‬
‫‪| |· 1‬‬
‫קבוצת הקודקודים שנותרו לאחר ‪ i‬צעדים‪ .‬מתקיים‪:‬‬
‫‪ .‬מכאן‪1 :‬‬
‫והחסם העליון הוא כיוון שהורדנו לפחות מהקודקודים בהורדת‬
‫חסם עליון טוב ביותר‪:‬‬
‫צעדים תכוסה כל ‪ .U‬מדוע לאחר ‪ k‬צעדים מכוסים‬
‫∑‬
‫‪1:‬‬
‫‪|· 1‬‬
‫·| |‬
‫·‬
‫‪ ,‬כלומר הפקטור הוא‬
‫|‬
‫|‬
‫|‬
‫|‬
‫|‬
‫|‪,‬‬
‫|‪.‬‬
‫של גודל הקבוצה המקסימלית ב‪ :F-‬כל‬
‫קבוצה ‪ S‬שמכניסים ל‪ C-‬תורמת ‪ 1‬לגודל ‪ ,C‬והיחס בין מספר זה ל‪ k-‬הוא פקטור הקירוב‪ .‬נחלק את ה"‪ "1‬שכל קבוצה בגודל ‪ L‬תורמת על פני כל‬
‫האלמנטים בה‪ ,‬כאשר כל אחד תורם ‪ .‬במקרה הגרוע‪ ,‬כל אלמנט משלם בתורו‬
‫סה"כ ישולמו קבוצה מקסימלית‬
‫גודל נוכחי‬
‫‪.‬‬
‫כלומר סה"כ הקבוצה משלמת‬
‫· ‪.‬‬
‫בעיות ‪:GAP‬‬
‫תהי ‪ A‬בעית אופטימיזציה‪ .‬נגדיר סף כך שכל הפתרונות מעל הסף טובים‪ ,‬ומתחתיו לא טובים‪ :‬בעית‬
‫המקורית ולכן‬
‫‪.‬‬
‫טענה‪ :‬לכל ‪ ,C‬אלג' ‪-h‬קירוב ל‪ A-‬מבטיח פתרון לבעית‬
‫•‬
‫‪,‬‬
‫מינימיזציה‪ :‬נגדיר שלכל קלט ‪ ,x‬אם‬
‫בעית‬
‫•‬
‫‪,‬‬
‫‪,‬‬
‫‪:‬‬
‫נקבל‪ ,‬אחרת נדחה )אם‬
‫מינימיזציה‪ :‬מקבלים לפלטים‬
‫מקסימיזציה‪ :‬נגדיר שלכל קלט ‪ ,x‬אם‬
‫בעית‬
‫‪,‬‬
‫‪ .‬בעית ‪ GAP‬קלה מהבעיה‬
‫‪ ,‬דוחים לפלטים‬
‫‪.‬‬
‫נקבל‪ ,‬אחרת נדחה )אם‬
‫מקסימיזציה‪ :‬מקבלים לפלטים‬
‫‪ ,‬מובטח ש‪-‬‬
‫‪ ,‬דוחים לפלטים‬
‫מסקנה‪ :‬אם בעית ה‪ GAP-‬היא ‪-NP‬קשה‪ ,‬כך גם בעית הקירוב )אלא אם‬
‫‪,‬‬
‫‪ ,‬מובטח ש‪-‬‬
‫‪ ,‬ולכן נקבל(‪ .‬‬
‫‪ ,‬ולכן נקבל(‪ .‬‬
‫‪.‬‬
‫(‪.‬‬
‫‪:‬‬
‫קלט טוב‪ 100% :‬מההסגרים מסתפקים; קלט לא טוב‪ :‬פחות מ‪-‬‬
‫מההסגרים‪ :‬בכל הסגר‬
‫מהסגרים מסתפקים‪ .‬נראה שלכל נוסחת ‪ 3CNF‬יש השמה המספקת‬
‫בו בדיוק ‪ 3‬משתנים שונים נסמן משתנה אינדיקציה‬
‫שמקבל ‪ 0‬אם‬
‫· · ‪ .‬לכן‬
‫כן‪ .‬לכל הסגר כזה המקרה היחיד שלא יסופק הוא עבור השמה ‪ f‬לכל משתניו‪ ,‬בסיכוי‬
‫·‬
‫מלינאריות של התוחלת‪:‬‬
‫∑‬
‫∑‬
‫‪ ,‬כלומר‬
‫משפט ה‪:PCP-‬‬
‫לכל ‪0‬‬
‫‪3‬‬
‫‪,1 :‬‬
‫;‬
‫‪ .‬אם בנוסחה ‪ m‬הסגרים‪,‬‬
‫מהסגרי הנוסחה יסופקו‪ .‬ההוכחה לכך שיש הצבה כזו‪ :‬כיוון שהממוצא הוא‬
‫מההסגרים מסתפקים‪ ,‬חייבת להיות הצבה שלפחות כמו הממוצע‪.‬‬
‫‪3‬‬
‫לא מסתפקת מהצבה רנדומית כלשהי ו‪ 1-‬אם‬
‫היא ‪-NP‬קשה‪ .‬כך ניתן לבצע רדוקציה מכל‬
‫‪.‬‬
‫‪:‬‬
‫‪ ‬‬
‫‪12‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫תרגול‪:‬‬
‫‪,‬‬
‫דוגמא‪ :‬נניח‬
‫אריאל סטולרמן‬
‫היא ‪-NP‬קשה‪ ,‬אזי קשה לקרב את ‪ IS‬בפקטור‬
‫תרגיל‪ :‬בעית‬
‫‪. /‬‬
‫‪:‬‬
‫ידוע ש‪ 2SAT-‬פולי'‪ ,‬ולכן לכל ‪1‬‬
‫‪2‬‬
‫‪ 0‬הבעיה ‪, 1‬‬
‫‪3‬‬
‫פולי'‪ .‬רדוקציה מ‪, 1 -‬‬
‫‪ :‬כל הסגר מהצורה‬
‫יועבר ל‪ 10-‬הסגרים עם ‪ w‬משתנה חדש מהצורה‪:‬‬
‫‪.‬‬
‫בהינתן השמה ל‪: , , -‬‬
‫•‬
‫אם היא לא מספקת אף אחד מ‪ , , , -‬אז לכל בחירה של ‪ w‬לא יותר מ‪ 6-‬מההסגרים יסופקו בעשיריה החדשה‪ .‬‬
‫•‬
‫אם היא מספקת ליטרל אחד בדיוק‪ ,‬לא יותר מ‪ 7-‬הסגרים יסופקו בהשמה החדשה‪ .‬‬
‫•‬
‫אם ‪ 2‬ליטרלים מסופקים נקבל ‪ 7‬הסגרים מסופקים לכל בחירה של ‪ .w‬‬
‫•‬
‫אם כל הליטרלים מסופקים נקבל לכל היותר ‪ 7‬הסגרים מסופקים‪ .‬‬
‫אם במקור היו ‪ m‬הסגרי ‪ ,3CNF‬אז אם יכולנו לספק את כולם‪ ,‬נוכל לספק בבעיה החדשה ‪ 7m‬מתוך ‪ 10m‬הסגרים‪ .‬אם לא יכולנו לספק יותר מ‪-‬‬
‫‪·6‬‬
‫מההסגרים המקוריים‪ ,‬לא נוכל לספק יותר מ‪-‬‬
‫משפט ה‪:PCP-‬‬
‫‪2‬‬
‫‪,‬‬
‫לכל ‪0‬‬
‫הסגרים מתוך ‪ 10m‬הסגרים‪ .‬לפי‬
‫‪·7‬‬
‫‪. /‬‬
‫‪ ,‬ומסקנה‪ :‬קשה לקרב את ‪ max­2SAT‬בפקטור‬
‫וריפיקציה פרובביליסטית‪:‬‬
‫טענה‪:‬‬
‫‪,‬‬
‫‪1‬‬
‫‪,1‬‬
‫‪.‬‬
‫נשתמש במכונת טיורינג עם סרט קלט‪ ,‬סרט עבודה וסרט עדות‪ .‬כל הוכחה ניתנת לרדוקציה לנוסחת ‪ ,3CNF‬וסרט העדות יהיה הצבה מספקת‪ .‬נבחר‬
‫ביטים )הצבות( מסרט העדות‪ ,‬למשל ‪ ,100‬כאשר ידוע לפי משפט ה‪ PCP-‬שהסיכוי לספק הסגר מסוים כאשר ההצבה שניתנה‬
‫באופן רנדומי ‪1‬‬
‫)העדות( אינה מספקת‪ ,‬הוא‬
‫‪ .‬ואז הסיכוי לטעות בבדיקה ולזהות הצבה לא מספקת כמספקת הוא‪:‬‬
‫‪,‬‬
‫משפט‪:‬‬
‫‪ -‬סיכוי קטן מאוד‪.‬‬
‫‪:‬‬
‫הקלט‪ :‬גרף בו ‪ m‬קבוצות ב"ת בגודל ‪ .3‬הפרמטר הוא הקליקה המקסימלית בגרף‪ .‬במקרה זה קלטים טובים הם כאלה עם בדיוק ‪ m‬קודקודים‬
‫בקליקה המקס'‪ .‬בעיה זו אינה ‪ NP‬כיוון שאינה בעית הכרעה‪ ,‬אך היא ‪-NP‬קשה‪ .‬נראה זאת ע"י רדוקציה משמרת ‪ Gap‬מ‪:3SAT-‬‬
‫רדוקציה משמרת ‪ :Gap‬מעבירה קלטים טובים לטובים‪ ,‬רעים לרעים ו‪ don’t­cares-‬לא משנה לאן‪.‬‬
‫כל הסגר הופך לשלושה קודקודים לא מחוברים ביניהם ואין קשתות בין ליטרלים הפוכים‪ ,‬כל שאר הקשתות קיימות‪ m .‬מספר ההסגרים‪.‬‬
‫נכונות‪ :‬אם יש השמה מספקת לכל היותר‬
‫‪ .‬אם יש השמה מספקת לכל‬
‫מההסגרים‪ ,‬הקליקה המקסימלית היא בגודל לכל היותר‬
‫ההסגרים‪ ,‬הקליקה היא בגודל ‪.m‬‬
‫‪:Graph Constraints Problems – CSG‬‬
‫קלט‪:‬‬
‫•‬
‫‪ ‬כאשר‬
‫‪, , ,‬‬
‫‪ ,‬גרף‪,‬‬
‫‪ :‬פונקצית אילוצי צביעה על קשתות הגרף‪ .‬שתי אפשרויות‪ :‬‬
‫קבוצת צבעים ו‪-‬‬
‫‪:‬‬
‫‪ :‬גרסת הקודקודים‪ ,‬נותנים השמה )צביעה(‬
‫‪,‬‬
‫כך שלכל‬
‫‪,‬‬
‫מתקיים‬
‫‪,‬‬
‫‪.‬‬
‫המטרה היא למקסם את כמות הצמתים שמקבלים צבע מ‪) -‬ולא (‪ .‬‬
‫•‬
‫‪ , :‬המטרה למקסם כמות הקשתות‬
‫‪ :‬גרסת קשתות‪:‬‬
‫אופטימיזציה‪ :‬בגרסת הקודקודים נרצה למקסם את‬
‫רדוקציה מ‪-‬‬
‫‪ -‬ההסתברות שקודקוד יקבל צבע מ‪ -‬ולא ‪.‬‬
‫אז‬
‫‪,‬‬
‫‪,‬‬
‫)שלושה צבעים בדיוק(‪ .‬עבור שני הסגרים‬
‫‪ , 1,2‬המייצג שאת‬
‫הליטרל ה‪ (a) 1-‬מספק‪ ,‬ואת‬
‫‪ :Max­Cut‬רדוקציה לבעית ‪ CSG‬עם שני צבעים‪ ,‬צבע לכל קבוצה בחתך‪ ,‬ולכל‬
‫)כאשר אלו ליטרלים(‪ ,‬אם‬
‫הליטרל ה‪ (y) 2-‬מספק‪ ,‬שכן זו תהיה סתירה‪.‬‬
‫‪,‬‬
‫יתקיים‬
‫‪1,2 , 2,1‬‬
‫טענה‪:‬‬
‫‪,1‬‬
‫‪3‬‬
‫היא ‪-NP‬קשה‪ :‬עולה ישירת מהרדוקציה משמרת ה‪ GAP-‬מ‪-‬‬
‫טענה‪:‬‬
‫‪,‬‬
‫‪,‬‬
‫‪:‬‬
‫לכל הסגר יהיה קודקוד‪1,2,3 ,‬‬
‫למשל‬
‫‪,‬‬
‫המקיימות את האילוצים‪:‬‬
‫‪,‬‬
‫‪ .‬‬
‫‪,1‬‬
‫‪.‬‬
‫‪3‬‬
‫לעיל‪.‬‬
‫‪,‬‬
‫‪.‬‬
‫‪ ‬‬
‫‪13‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫הוכחה‪ :‬לכל‬
‫‪,…,‬‬
‫יהיו ‪ k‬קודקודים‬
‫אריאל סטולרמן‬
‫קליקה‬
‫)קודקוד לכל צבע(‪ ,‬כאשר כל הקודקודים האלו מחוברים בקליקה )לכל קודקוד‬
‫‪ .‬שאר הקשתות בגרף יוגדרו‪ :‬‬
‫משלו( –‬
‫•‬
‫לכל‬
‫•‬
‫אם‬
‫‪,‬‬
‫אז‬
‫‪,‬‬
‫ קליקה עבור כל הקודקודים החדשים לכל קודקוד מהגרף המקורי‪ .‬‬‫‪,‬‬
‫‪ ,‬אז‬
‫‪ -‬אם הצביעה‬
‫‪,‬‬
‫‪ ,‬אינה חוקית ל‪-‬‬
‫‪,‬‬
‫‪ ,‬נעביר קשת‬
‫בגרף ’‪ .G‬‬
‫עבור צביעה הצובעת חלק מקודקודי ‪ ,G‬ב‪ G’-‬יש קשת היכן שהאילוץ לא מתקיים – היכן שאין קשת ב‪ .G-‬בהינתן ‪ IS‬ב‪ G’-‬נמצא צביעה חוקית ל‪-‬‬
‫בצבע ‪ .i‬ה‪ GAP-‬חלקי ‪ k‬כיוון שגודל הקבוצה נשאר זהה‪ ,‬בעוד גודל הגרף גדל פי ‪.k‬‬
‫‪ :G‬נצבע קודקוד ‪ u‬שעבורו ב‪ IS-‬ב‪ G’-‬נמצא הקודקוד‬
‫משפט‪:‬‬
‫‪,1‬‬
‫‪,1‬‬
‫‪.‬‬
‫מסקנה מהמשפט‪ :‬בעית ‪ IS‬לא ניתנת לקירוב ע"י פקטור קבוע כלשהו‪.‬‬
‫הוכחה‪ :‬הרדוקציה‪ :‬נגדיל את ‪ V‬ואת‬
‫פי ‪ .l‬כל ‪-l‬ית קודקודים ב‪ U-‬היא קודקוד אחד ב‪ .U’-‬האילוצים‪:‬‬
‫•‬
‫כל קודקוד ‪ u‬המופיע בכל ‪-l‬יה יהיה באותו צבע )‪ u‬לא יופיע פעם אחת בצבע ‪ i‬ופעם אחרת בצבע ‪ .(j‬‬
‫•‬
‫האילוצים המקוריים יהיו תקפים גם בין ‪-l‬יות שונות‪ .‬‬
‫צבעים כי צביעת כל קודקוד למעשה צובעת ‪-l‬יה שלמה‪.‬‬
‫ב‪ U’-‬יש‬
‫נכונות‪ :‬שלמות – אם ב‪ U-‬מתקיימים כל האילוצים על כל הקודקודים‪ ,‬ניתן ב‪ U’-‬לכל ‪-l‬יה את הצביעה המקורית‪ ,‬וכל האילוצים יתקיימו‪ .‬תקפות –‬
‫מהקודקודים‪ ,‬נייצר צביעה ל‪ U-‬באופן הבא‪ :‬כל האילוצים מתקיימים על כל‬
‫אם יש צביעה הצובעת‬
‫נצבע לפי צביעת ’‪ U‬אותם‪ .‬כל שאר הקודקודים לא יצבעו‪ .‬יהי‬
‫מהקודקודים‪ ,‬ולכן כל קודקוד שמופיע ב‪-‬‬
‫אחוז הצביעה שהתקבל כתוצאה מכך ב‪ ,U-‬נבדוק את היחס ‪ : /‬מתקיים‬
‫חסום ע"י הגודל היחסי של כל ה‪-l-‬יות הכוללות את אחוז הקודקודים‪ .‬ומכאן‪ ,‬אם‬
‫כי‬
‫‪ .‬דרך נוספת לראות זאת‪ :‬אם‬
‫אז‬
‫· … · – ‪-‬סיכוי לכל קודקוד להיות ב‪-l-‬יה‪.‬‬
‫יש לנו אחוז צבוע ב‪ ,U-‬הסיכוי של כל ‪-l‬יה רנדומית להצבע הוא‬
‫מסקנה‪ :‬כיוון שמספר הצבעים קבוע למרות שגדל‪ ,‬קיבלנו ‪ GAP‬קרוב ל‪ 1-‬כרצוננו‪.‬‬
‫תרגול‪:‬‬
‫בעיות ‪ – Gap‬המשך‪:‬‬
‫‪,‬‬
‫טענה‪ :‬אם‬
‫היא ‪-NP‬קשה‪ ,‬אז‪:‬‬
‫‪,‬‬
‫‪.1‬‬
‫היא ‪-NP‬קשה‪ .‬‬
‫‪,1‬‬
‫‪.2‬‬
‫היא ‪-NP‬קשה‪ .‬‬
‫‪1‬‬
‫הוכחה‪:‬‬
‫‪.1‬‬
‫נשתמש ברדוקציה משמרת‪ GAP-‬הבאה‪:‬‬
‫‪.2‬‬
‫טענה‪ S:‬היא ‪ IS‬אמ"מ \ היא ‪ .VC‬אם ‪ S‬היא ‪ IS‬ומניחים כי \ אינה ‪ ,VC‬אז קיימת קשת‬
‫\‬
‫‪,‬‬
‫‪,‬‬
‫‪ .‬נכונות מיידית‪ IS :‬בגודל ‪ k‬ב‪ G-‬אמ"מ ‪ Clique‬בגודל ‪ k‬ב‪ .G’-‬‬
‫‪,‬‬
‫שאותה לא מכסה‪ ,‬ולכן‬
‫‪ , ,‬אז זו‬
‫כך ש‪-‬‬
‫‪ ,‬ולכן ‪S‬‬
‫סתירה לכך ש‪ S-‬היא ‪ .IS‬אם \ היא ‪ ,VC‬אז לכל קשת לפחות אחד מקודקודיה ב‪ . \ -‬לכן‪ ,‬לא תתכן קשת‬
‫היא ‪ .IS‬לכן הרדוקציה‪ :‬בהינתן‬
‫‪,‬‬
‫דוגמאות למסקנות‪:‬‬
‫תרגיל‪:‬‬
‫‪,‬‬
‫‪,‬‬
‫‪,‬‬
‫קלט לבעית ה‪ ,IS-‬נחזיר‬
‫‪,‬‬
‫‪,‬‬
‫‪,‬‬
‫קלט לבעית ה‪ .VC-‬‬
‫‪/‬‬
‫הן ‪-NP‬קשות‪ ,‬קשה לקרב את ‪ VC‬בפקטור‬
‫לכל ‪0‬‬
‫‪.‬‬
‫‪.‬‬
‫‪,‬‬
‫הוכחה‪ :‬הבעיה שקולה לבעיה‬
‫שהיא ב‪ ,P-‬היות וקיים אלג' ‪-2‬קירוב לבעית ‪.VC‬‬
‫השיטה ההסתברותית‪:‬‬
‫‪ :Max­Cut‬טענה‪ :‬בכל גרף קיים חתך שגודלו לפחות‬
‫הוכחה‪ :‬כל צומת יושם ב‪-‬‬
‫‪.‬‬
‫בהסתברות חצי‪ ,‬כל בחירה ב"ת באחרות‪ .‬נסמן לכל‬
‫‪ ,‬ולפי לינאריות התוחלת‪| | · :‬‬
‫אחרת‪ .‬מתקיים‬
‫גודל החתך הוא לפחות‬
‫או‬
‫| |‬
‫| |‬
‫‪.‬‬
‫∑‬
‫∑‬
‫משתנה‬
‫|‬
‫|‬
‫שיקבל ‪ 1‬אם‬
‫‪,‬‬
‫ו‪0-‬‬
‫‪ .‬כיוון שזהו ממוצע‪ ,‬קיימת הגרלה בה‬
‫‪ ‬‬
‫‪14‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫בעיות ‪:CSG‬‬
‫אריאל סטולרמן‬
‫בעית צביעת גרפים‪ :‬בהינתן ‪ G‬ופרמטר ‪ ,k‬האם קיימת ל‪ G-‬צביעה חוקית ב‪ k-‬צבעים‪ :‬תיאור באמצעות‬
‫)הגדרת (‪ :‬כל צביעה בה זוג הצמתים מקבלים ערכים שונים‪ .‬המטרה‪ :‬למקסם צביעה חוקית ולא‬
‫‪ :MaxCut‬ייצוג בעזרת‬
‫‪ :IS‬ייצוג בעזרת‬
‫‪1,2 :‬‬
‫‪1 :‬‬
‫‪ ,‬לכל‬
‫‪1, … ,‬‬
‫‪:‬‬
‫‪ .‬צביעה חוקית‬
‫לצמתים‪.‬‬
‫צביעה חוקית היא כזו בה שני הצמתים מקבלים צבע שונה אחד מהשני‪.‬‬
‫‪ ,‬כלומר אף זוג מעל ‪ 1‬אינו צביעה חוקית‪ 1 .‬ינתן לצמתים ב‪ IS-‬ו‪ -‬לשאר‪.‬‬
‫‪ ,‬לכל קשת מתקיים‬
‫‪ :Clique‬הפוך מ‪ .IS-‬‬
‫בעיות‬
‫‪:‬‬
‫‪ . :‬האילוצים יקבעו בבעיות אלו ע"פ ההפרש בין ערך ה‪ q-‬של הקודקודים‪ .‬האילוצים‪:‬‬
‫תהי‬
‫‪,1‬‬
‫טענה‪, 1 :‬‬
‫‪ ,‬כאשר‬
‫‪,‬‬
‫| ‪,‬‬
‫‪.‬‬
‫‪.‬‬
‫קודקודים‪ .‬לכל שני קודקודים‪ ,‬אם נוסיף לשניהם ‪ ,d‬ההפרש ישמר‬
‫·‬
‫הרדוקציה‪ :‬יהי מספר הקודקודים בגרף ה‪-‬‬
‫‪ .m‬נבנה גרף חדש בו‬
‫ולכן ימשיכו לקיים את האילוצים בגרף ה‪-‬‬
‫‪ ,‬ויצרו ‪ IS‬נוספת‪ .‬אם אין קשת‬
‫‪,‬‬
‫‪,‬‬
‫אז גם לא תהיה קשת‬
‫ולהיפך‪ .‬לכן לכל‬
‫קבוצה ב"ת שנוסיף לצבעי הקודקודים בה ‪ ,d‬נקבל קבוצה ב"ת חדשה‪.‬‬
‫מסקנה‪ :‬מכאן שבעיה זו ‪-NP‬קשה‪ ,‬ולכן בעית צביעה )חלוקת גרף ל‪ k-‬קבוצות ‪ (IS‬היא ‪-NP‬קשה‪.‬‬
‫תוצאה‪:‬‬
‫‪,‬‬
‫‪ :‬כאשר‬
‫‪,1‬‬
‫‪,‬‬
‫הוכחה‪:‬‬
‫הוא מספר הצביעה של הגרף )המס' המינימלי הדרוש לצבוע את הגרף צביעה חוקית(‪.‬‬
‫‪,‬‬
‫‪ :‬לוקחים את ההצבה ‪ A‬לקודקודי ‪ ,V‬ומגדירים‬
‫‪ .‬שמירת האילוצים‬
‫מתקיימת כיוון שההפרשים נשארים זהים‪ .‬אם בגרף המקורי ניתן לצבוע את כל הקודקודים‪ ,‬ברור דגם בגרף החדש‪ .‬אם היה ניתן לצבוע לכל היותר‬
‫·‬
‫מהקודקודים‪ ,‬בגרף החדש ניתן יהיה לצבוע לכל היותר‬
‫·‬
‫מהקודקודים‪ .‬סה"כ הצביעה‪:‬‬
‫‪#‬‬
‫‪. ‬‬
‫·‬
‫ייחודיות בשלשות‪:‬‬
‫עבור | |‬
‫‪,‬‬
‫ניתן לבנות באופן יעיל ‪1‬‬
‫‪,‬‬
‫‪,‬‬
‫‪ :‬כך ש‪ :‬‬
‫‪0,1, … ,‬‬
‫‪,‬‬
‫‪,…,‬‬
‫‪:‬‬
‫‪ .‬כלומר‪ ,‬פונ' הנותנת לכל קודקוד‬
‫מספר מתוך ‪ q‬מספרים‪ ,‬כך שלכל שלישית קודקודים סכום ייחודי לה‪ ,‬וניתן לשחזר ממנה את הקודקודים המשתתפים בה‪.‬‬
‫נניח שנתנו מספרים ל‪ -‬קודקודים‪ .‬בשלב ה‪1-‬‬
‫צבע מספר חוקי‪ ,‬צריך לבדוק לכל זוג מ‪ l-‬הקודמים שהמספר‬
‫‪ :‬כדי לתת לקודקוד ה‪1-‬‬
‫שניתן לו בצירוף עם הזוג‪ ,‬אינו מפר סכום כל שלישיה מתוך ה‪ .l-‬לפיכך נזדקק ל‪-‬‬
‫בדיקות בשלב זה‪ ,‬וזהו מספר המספרים המקסימלי שנפסל‪.‬‬
‫הערה‪ :‬ניתן לזהות בודדים וזוגות ע"י השלמתם לשלישיה וזיהוי המשתתפים בה‪ .‬ולכן ‪ T‬ייחודית בבודדים‪ ,‬זוגות ושלישיות‪.‬‬
‫חזרה להוכחת הטענה‪, 1 :‬‬
‫נבנה‬
‫‪1,‬‬
‫‪,1‬‬
‫‪,‬‬
‫‪, 0,1, … ,‬‬
‫כך שלכל קודקוד‬
‫| |‬
‫נקבע לפי הוכחת חסם למציאת ‪ ,T‬והוא‬
‫נגדיר את האילוצים‪:‬‬
‫‪,‬‬
‫ההפרש‬
‫‪,‬‬
‫‪| ,‬‬
‫‪,‬‬
‫ל‪-‬‬
‫‪,‬‬
‫‪,‬‬
‫תקפות‪ :‬נוכיח שלכל‬
‫‪.‬‬
‫‪,‬‬
‫‪,‬‬
‫‪ -‬אם‬
‫‪,‬‬
‫מקיים את אילוצי‬
‫‪,‬‬
‫בגרף המקורי‪ ,‬נאפשר את‬
‫בגרף שבונים‪.‬‬
‫‪1, … ,‬‬
‫שלמות‪ :‬אם אפשר לצבוע את כל הגרף המקורי ע"י הצביעה‬
‫‪ , :‬אז בגרף החדש תתאים הצביעה‬
‫‪,‬‬
‫‪ ,‬יש הזזה ‪ d‬כך ש‪-‬‬
‫צביעה של‬
‫מתאימים צבע מ‪ 0-‬עד ‪1‬‬
‫‪ ,‬כך שכל שלישיה יחודית בסכומה‪ .‬הגודל ‪q‬‬
‫‪,‬‬
‫‪.‬‬
‫כאשר ‪ A‬היא צביעה מתאימה ל‪ .U-‬הדרך היחידה‬
‫לקבל צביעה ל‪ U’-‬היא לקחת צביעה של הגרף המקורי‪ ,‬להפעיל ‪ T‬על הקודקוד והצבע שלו ולהזיז את כולם ב‪ d-‬כלשהו – וכאן בדיוק הפעולה‬
‫ההפוכה‪ .‬כעת ידוע שמתקיים‪:‬‬
‫‪,‬‬
‫‪ ,‬ורוצים להגיד שקיים‬
‫‪,‬‬
‫זוג צבעים יחיד כך ש‪-‬‬
‫‪ .‬מהסבר ארוך בסופו של דבר מגיעים לכך שמייחודיות ‪ T‬נובעת תקפות )עמודים ‪ 9-10‬ב‪.(PCP writeup-‬‬
‫תרגול‪:‬‬
‫המשך בעיות ‪:CSG‬‬
‫רדוקציה ‪:1‬‬
‫‪,‬‬
‫רדוקציה ‪ :2‬אמפליפיקציה‪, 1 :‬‬
‫‪,1‬‬
‫‪ .‬מסקנה‪ :‬קשה לקרב את בעית ‪ Max­IS‬לכל פקטור קבוע‪.‬‬
‫‪,1‬‬
‫לכל ‪1‬‬
‫‪.‬‬
‫‪,‬‬
‫‪,‬‬
‫‪ ‬‬
‫‪15‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫תרגיל‪ :‬נניח‬
‫‪4‬‬
‫‪,1‬‬
‫‪,‬‬
‫פתרון‪:‬‬
‫‪,1‬‬
‫‪ .‬איזו תוצאת קושי קירוב מתקבלת עבור ‪ ?VC‬האם משתפר בעזרת אמפליפיקציה?‬
‫‪1‬‬
‫את ‪ VC‬יהיה פקטור של‬
‫אריאל סטולרמן‬
‫‪,‬‬
‫· לכל ‪0‬‬
‫‪,1‬‬
‫אם היינו משתמשים באמפליפיקציה‪:‬‬
‫‪4‬‬
‫‪,1‬‬
‫‪ .‬מכאן שתוצאת הקירוב שקשה לקרב‬
‫‪ .‬‬
‫‪,‬‬
‫‪1‬‬
‫‪4‬‬
‫‪,1‬‬
‫– ותוצאה זו לא משפרת‪,‬‬
‫כיוון שה‪ GAP-‬הצטמצם ולכן מתקבל שקשה לקרב פקטור שקרוב יותר ל‪ (OPT) 1-‬מאשר הפקטור שהתקבל קודם – ולכן לא נוסף מידע חדש )אם‬
‫‪ ,‬ברור שקשה לקרב בפקטור קרוב ממנו ל‪ ,1-‬כפי שהאמפליפיקציה נתנה(‪.‬‬
‫קשה לקרב ב‪-‬‬
‫תרגול )אותו נושא(‪:‬‬
‫טענה‪:‬‬
‫גודל ‪ IS‬מקסימלית‪,‬‬
‫יהי ‪ G‬גרף פשוט‪,‬‬
‫‪ :‬מקרה פרטי של‬
‫מספר הצביעה‪ n ,‬צמתים‪ .‬מתקיים‪:‬‬
‫‪,‬‬
‫בו לקשת‬
‫‪1‬‬
‫קיימת‬
‫·‬
‫‪0,1, . . ,‬‬
‫‪.‬‬
‫‪,‬‬
‫כך ש‪-‬‬
‫צביעה חוקית ל‪-‬‬
‫‪,‬‬
‫אמ"מ‬
‫‪.‬‬
‫‪,1‬‬
‫מהטענה מההרצאה‪, 1 :‬‬
‫‪,1‬‬
‫‪,‬‬
‫היא ‪-NP‬קשה‪ .‬נתבונן ברדוקציה‬
‫‪ ‬נובע ש‪, 1 -‬‬
‫כאשר גרף האילוצים הוא מהצורה הנ"ל‪.‬‬
‫שלמות‪ :‬אם ניתן היה לצבוע את כל צמתי הגרף כך שכל הקשתות יהיו טובות‪ ,‬אז קיימת לנו בגרף הקלסטרים )החדש( קבוצה ב"ת‬
‫עם נציג מכל‬
‫קלסטר‪ .‬אם מוסיפים ‪ i‬לצביעה זו מקבלים עדיין צביעה חוקית שמגדריה קבוצה ב"ת חדשה עם נציג מכל קלסטר‪ ,‬ו‪ -‬‬
‫‪ .‬מקבלים ‪k‬‬
‫קבוצות ב"ת שמכסות את כל הקלסטרים‪ ,‬ולכן‬
‫‪.‬‬
‫תקפות‪ :‬אם בגרף המקורי לא יכולנו לצבוע יותר מ‪· -‬‬
‫צמתים‪ ,‬אז כל קבוצה ב"ת בגרף הקלסטרים היא מגודל‬
‫·‬
‫אז‬
‫· ‪ .‬כיוון ש‪-‬‬
‫כאשר גדול כרצוננו‪.‬‬
‫·‬
‫מסקנה‪ :‬הבעיה‬
‫‪,1‬‬
‫היא ‪-NP‬קשה‪ ,‬ולכן קשה לקרב את בעית מספר הצביעה בכל פקטור קבוע‪.‬‬
‫‪,‬‬
‫‪:‬‬
‫בעית גרף אילוצים בה לכל קשת‬
‫‪,‬‬
‫צביעת קודקוד אחת קובעת את הצביעה של השניה‪ ,‬כאשר המטרה לספק כמה שיותר אילוצים על הקשתות‬
‫שהן פרמוטציות צבעים‪ .‬לא ידוע האם בעיה זו ב‪ P-‬או ב‪-‬‬
‫‪.‬‬
‫מציאת הצבה מספקת‪ :‬צובעים קודקוד כלשהו בכל אחד מרכיבי הקשירות‪ ,‬והוא קובע את צבע שאר הקודקודים באותו רכיב‪ ,‬ממשיכים כך עד‬
‫שיתקיימו כמה שיותר אילוצים‪.‬‬
‫בעית‬
‫‪√ ,‬‬
‫‪:‬‬
‫מציאת חתך בגרף כך שרק חלק מקשתות הגרף נמצאות לא באחד מצידי החתך ולא בחתך עצמו‪ .‬האילוץ מתבטא באמצעות שני צבעים אפשריים‬
‫‪ Pr‬היא הסתברות הקשת‬
‫לכל קודקוד כאשר‬
‫‪1.01 , 1‬‬
‫ידוע ש‪-‬‬
‫‪1‬‬
‫‪,‬‬
‫רק עם שני צבעים‪.‬‬
‫להימצא מחוץ לחתך‪ .‬מקרה פרטי של בעית‬
‫‪.‬‬
‫פרק רביעי‪ :‬חישובים פרובביליסטיים‪:‬‬
‫המחלקה ‪ :BPP‬כל הבעיות הניתנות לפתרון פולי' עם שימוש בראנדומיות‪ .‬לא ידוע האם‬
‫‪.‬‬
‫הגדרת ‪:PH‬‬
‫נגדיר את ‪ :Σ‬תת קבוצה של המחלקה ‪ TQBF‬של כל הנוסחאות מהצורה‬
‫ההיררכיה הפולינומיאלית‪Σ :‬‬
‫באופן דומה ניתן להגדיר ‪Σ‬‬
‫מתקיים‪:‬‬
‫‪,Π‬‬
‫…‬
‫‪ -‬מתחילות ב‪ -‬ולאחריהן ‪1‬‬
‫החלפות כמתים‪ .‬נגדיר את‬
‫‪ . ‬נשים לב שבניגוד ל‪ ,TQBF-‬מספר ההחלפות לא תלוי בגודל הנוסחה‪ .‬מחלקה זו סגורה תחת ‪.Karp‬‬
‫‪.Π‬‬
‫‪ ,Σ‬ולכל ‪:i‬‬
‫‪Σ‬‬
‫‪ Σ , Π‬וגם‬
‫‪Π‬‬
‫‪ .Σ , Π‬כמו כן‪:‬‬
‫‪.‬קריסת ההיררכיה הפולינומיאלית‪ :‬אם‬
‫‪ ,‬באינדוקציה על ‪.‬‬
‫מחלקת ‪:PP‬‬
‫אם קיימת מכונה פרובביליסטית פולי' כך ש‪-‬‬
‫‪,‬‬
‫‪Pr‬‬
‫‪ ,‬ו‪-‬‬
‫… ‪Pr‬‬
‫‪.‬‬
‫‪ ‬‬
‫‪16‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫מכונת טיורינג פרובביליסטית‪:‬‬
‫אריאל סטולרמן‬
‫בנוסף לסרט הקלט וסרט העבודה יש סרט רנדומי ‪ ,r‬וכדי להחליט האם המכונה מקבלת את ‪ x‬מסתכלים על ההסתברות‬
‫‪,‬‬
‫אמ"מ קיימת ‪ M‬מכונה פרוב'‪-‬פולי' כך ש‪-‬‬
‫טענה‪:‬‬
‫‪,‬‬
‫‪ ,‬ו‪-‬‬
‫‪.Pr‬‬
‫‪,‬‬
‫‪.Pr‬‬
‫‪:‬‬
‫‪ 0‬למכונה פרוב'‪:‬‬
‫הפיכת מכונת ‪ NP‬הבודקת האם קיימת ריצה אי‪-‬דטר' מקבלת – כלומר מסתכלת על מספר הריצות המקבלות ומבדילה בין ‪ 0‬ל‪-‬‬
‫מוסיפים למכונה צעד התחלתי המגריל מספר בין ‪ 0‬ל‪ .1-‬אם ‪ ,0‬דוחים‪ .‬אם ‪ ,1‬ממשיכים כרגיל‪ .‬אם קיבלנו ‪ ,0‬במצטבר קיבלנו ‪ ,‬ודוחים )כי‬
‫(‪.‬‬
‫‪ ,‬מקבלים‪.‬‬
‫אם קיבלנו שההסתברות להצלחה היא‬
‫אמפליפיקציה‪:‬‬
‫טענה‪ :‬אם‬
‫‪0,1‬‬
‫אז קיימת ‪ TM‬פרוב' פולי' ’‪ M‬כך שלכל‬
‫‪:‬‬
‫‪,‬‬
‫·‬
‫של השפה )מחזירה ‪ 1‬אם ‪ x‬בשפה ו‪ 0-‬אחרת(‪ .‬כלומר‪ :‬ההסתברות לטעות קטנה מ‪-‬‬
‫משפט‪Σ :‬‬
‫‪,‬‬
‫‪.‬‬
‫(‪:‬‬
‫‪ ,‬אז קיימת ‪ M‬כמוגדר לעיל כך ש‪:‬‬
‫תהי‬
‫היא‬
‫)כאמור לא ידוע‬
‫·‬
‫‪ , Pr‬כאשר‬
‫היא פונ' הזהות‬
‫‪ ,‬ולכן ההסתברות של ‪ M‬לקבל היא‬
‫‪,‬‬
‫‪0,1‬‬
‫‪.‬‬
‫‪0,1‬‬
‫‪.‬‬
‫‪ ,‬והסתברות השגיאה של ‪M‬‬
‫‪,…,‬‬
‫‪Pr‬‬
‫‪ .‬ה‪ xor-‬משמעותו הזזה של הביטים‪ .‬נשתמש בתכונה ההסתברותית‪:‬‬
‫‪.‬‬
‫‪ :‬במקרה זה רק‬
‫מהממחרוזות ‪ r‬הן טובות‪ ,‬ולכן גם אם נזיז את כולן )ע"י ‪ xor‬עם‬
‫כלשהו( כך שכולן יהפכו לטובות‪ ,‬תוך שימוש ב‪-‬‬
‫‪) union bound‬במקרה הטוב ביותר שכל מחרוזת טובה שונה ממחרוזות טובה אחרת שמתקבלת(‪ ,‬נקבל‬
‫‪ :‬כל המחרוזות ‪ r‬האפשריות הן‬
‫גורמת ל‪ M-‬לקבל‪ .‬נראה שההסתברות לבחירת‬
‫‪,…,‬‬
‫‪0‬‬
‫נסתכל על כל ה‪r-‬ים‪ ,‬וזה ‪ .overcounting‬אם זה יהיה הסת' קטנה‪ ,‬זה טוב‪:‬‬
‫‪,‬‬
‫‪ ‬‬
‫המעבר למכפלה מכך שהמאורעות ב"ת‪ ,‬כי ‪ r‬ו‪ -‬רנד'‪ ,‬ולכן גם‬
‫מכאן ש‪Σ -‬‬
‫ולכן ‪Σ‬‬
‫‪1‬‬
‫‪,…,‬‬
‫‪0,1‬‬
‫‪0‬‬
‫· ‪2‬‬
‫‪,‬‬
‫‪0‬‬
‫‪0‬‬
‫מחרוזת רנדומית‪:‬‬
‫ומכאן ההסתברות המשלימה גדולה מ‪ ,0-‬ולכן קיימים‬
‫נקבל שכל ‪) r‬מקורית או לאחר הזזה(‬
‫כאלה גדולה מ‪ 0-‬ולכן לפי התכונה ההסתברותית‪ ,‬קיימים כאלה מחרוזות‪ ,‬ו‪ M-‬תקבל‪:‬‬
‫הסתברות המקרה המשלים‪ :‬ההסתברות שקיים ‪ r‬רע לכל בחירת ‪-s‬ים‪:‬‬
‫‪ 2‬הוא מס' ה‪ r-‬האפשריים‪,‬‬
‫·‬
‫לא טובות‪ .‬נראה שע"י הזזות עם ‪ m‬מחרוזות‬
‫‪ , 0,1‬ומתוכן‬
‫מחרוזות‪ ,‬ולכן ‪ M‬תדחה‪.‬‬
‫‪0,1‬‬
‫‪,‬‬
‫‪,‬‬
‫‪,‬‬
‫…‪,‬‬
‫…‪,‬‬
‫‪,‬‬
‫‪Pr‬‬
‫‪,…,‬‬
‫‪Pr‬‬
‫∏‬
‫‪,‬‬
‫‪Pr‬‬
‫∑‬
‫‪,‬‬
‫‪,‬‬
‫‪Pr‬‬
‫∑‬
‫∏· ‪2‬‬
‫‪ ‬‬
‫כך שלכל ‪ r‬תתקיים הנוסחה‪ ,‬ולכן הנוסחה נכונה‪.‬‬
‫‪.‬‬
‫‪ Undirected­CONN‬ב‪ logspace-‬ע"י אלג' רנד'‪:‬‬
‫נניח הגרף קשיר‪ .‬נוסיף לכל קודקוד קשת עצמית‪ .‬נתחיל ב‪ s-‬כאשר דרגתו ההתחלתית היא‬
‫ונמשיך כך‪ .‬יהי‬
‫סימון הקודקוד בו נמצאים לאחר ‪ t‬צעדים‪,‬‬
‫של ‪ s‬להיות הקודקוד בו נמצאים בזמן ‪ 0‬הוא ‪ .1‬לכל ‪ i‬מתקיים‪:‬‬
‫למה‪ :‬אם ל‪ t-‬כלשהו מתקיים לכל ‪:i‬‬
‫| |‬
‫אז לכל ‪:i‬‬
‫| |‬
‫נסיונות צפויים לבחור בשכן הנכון‪ ,‬סה"כ‪2| | :‬‬
‫‪Pr‬‬
‫‪ .‬נגדיר‪:‬‬
‫| |‬
‫‪ .‬לפיכך‪ ,‬התפלגות כל הקודקודים היא | |‪.‬‬
‫| |‬
‫‪ .‬אם כן‪ ,‬נבדוק כמה צעדים יקח מ‪ s-‬ל‪) t-‬תוחלת מס' הצעדים(‪:‬‬
‫ללכת בכיוון הנכון‪ .‬אם לא‪ ,‬יקח בממוצע‬
‫| |‬
‫·‬
‫פונ' התפלגות‪ .‬למשל‪1 :‬‬
‫כי הסיכוי‬
‫‪ - lim‬התפלגות לינארית בדרגה )בגרף קשיר(‪.‬‬
‫לכל קודקוד ‪ ,i‬תוחלת מספר הצעדים שנעבור מיציאה ממנו ועד חזרה אליו היא‬
‫כדי להגיע מ‪ s-‬לקודקוד הבא במסלול ל‪ t-‬יש סיכוי‬
‫‪ .‬נבחר בהסתברות‬
‫לכל אחד משכניו שכן אחד‪,‬‬
‫| |‬
‫לחזור ל‪ s-‬ולבחור בשכן הבא‪ .‬לכל היותר לאחר‬
‫צעדים‪ .‬לפיכך מסלול מ‪ s-‬ל‪ t-‬יקח לכל היותר )הסתברותית( | || |‪.2‬‬
‫האלג'‪ :‬נתחיל ב‪ s-‬ונבחר שכן באופן רנדומי‪ ,‬וכך הלאה עד שנגיע ל‪ .t-‬אם תוך | || |‪ 2‬צעדים לא הגענו ל‪ ,t-‬נדחה‪.‬‬
‫‪ ‬‬
‫‪17‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫תרגול‪:‬‬
‫שיטת התוחלות המותנות‪:‬‬
‫אריאל סטולרמן‬
‫‪:Max­Cut‬‬
‫המטרה‪ :‬למצוא באופן דטר' חתך שגודלו לפחות חצי מקשתות הגרף‪ .‬בהינתן השמה חלקית של צמתי הגרף לצידי החתך‪ ,‬ניתן לחשב את תוחלת‬
‫גודל החתך עבור הגדרה רנדומית וב"ת של שאר הצמתים‪.‬‬
‫הרעיון‪ :‬נבנה השמה ב‪ n-‬שלבים‪ .‬בכל שלב נבחר צד לאחד הצמתים‪ :‬נחשב את תוחלת גודל בחתך בשלב ה‪ i-‬לכל בחירה של צד‪ ,‬ובהינתן ההשמה ל‪-‬‬
‫‪1‬‬
‫‪ 1, … ,‬הצמתים הקודמים‪ .‬שני הערכים שנקבל לא יכולים להיות קטנים מהתוחלת לאחר השלב ה‪1-‬‬
‫‪ ,‬ולכן תוחלת זו לא קטנה לאורך‬
‫האלג'‪ .‬לכן בזמן פולי' מקבלים פתרון שערכו לפחות כמו תוחלת פתרון מקרי‪.‬‬
‫אלגוריתם רנדומי למציאת ‪:(Karger, 94’) Min­Cut‬‬
‫‪,‬‬
‫המטרה‪ :‬מציאת חלוקת ‪ V‬לשתי קבוצות‬
‫לא ריקות כך שמס' הקשתות ביניהן מינימלי )פתרון רנדומי‪ ,‬לא כבעית זרימה(‪.‬‬
‫אלגוריתם‪ :‬כל עוד יש יותר משני צמתים בגרף‪ ,‬נקח קשת ונכווץ אותה‪ .‬קבוצת השכנים החדשה היא איחוד קב' השכנים של הצמתים המקוריים‪,‬‬
‫ומספר הצמתים יורד ב‪ .1-‬במהלך האלג' נוצרות קשתות כפולות‪ ,‬עליהן שומרים‪ ,‬ולולאות )מצומת לעצמו( זורקים בסיום הריצה‪ .‬מתקבל גרף עם‬
‫שני צמתים כאשר האינדקס המצטבר של כל אחד מהם הוא החלוקה של החתך‪.‬‬
‫רעיון האלג'‪ :‬בהינתן חתך ‪ ,C‬אם במהלך האלג' כיווצנו קשת ששיכת לחתך‪ ,‬לעולם לא יוחזר ‪ C‬בסיום הריצה )"נדפק"(‪ .‬אם בשום שלב לא בחרנו‬
‫קשת מ‪ ,C-‬בסוף הריצה הוא יוחזר‪ .‬גודל חתך מינימלי לא יורד במהלך האלג'‪ :‬כל חתך ששורד עד השלב ה‪ ,i-‬מס' הקשתות בו לא יורד‪ .‬אם גודל‬
‫חתך מינימלי הוא ‪ ,k‬אז כל צומת מדרגה לפחות ‪) k‬אחרת יש חתך בו צומת מדרגה קטנה מ‪ k-‬בצד אחד ושאר הקודקודים בשני(‪ .‬אם בגרף ‪n‬‬
‫קודקודים אז מס' הקשתות הכולל הוא לפחות‬
‫‪.‬‬
‫יהי ‪ C‬חתך מינימלי כלשהו בגרף המקורי‪ .‬ההסתברות שישרוד את החתך הראשון )ששום קשת בו לא תלקח(‪:‬‬
‫)‪1‬‬
‫השני יש לפחות‬
‫‪1‬‬
‫‪/‬‬
‫להשרדות בשלב ה‪i-‬‬
‫‪log‬‬
‫| |‬
‫‪ .1‬באופן כללי הסיכוי‬
‫צמתים‪ ,‬גודל חתך מינימלי לא יורד( קשתות בגרף‪ ,‬וההסתברות לשרוד שלב שני‬
‫‪ .1‬ההסתברות שהחתך ישרוד עד הסוף הוא טור טלסקופי המצטמצם לכדי‬
‫חזרה על ריצת האלג'‬
‫‪1‬‬
‫‪ . 1‬בשלב‬
‫‪1/‬‬
‫‪.‬‬
‫פעמים תתן את החתך המינימלי בהסתברות גבוהה‪.‬‬
‫‪ .1/‬בנוסף‪ ,‬המאורעות בהם בחרנו חתכים שונים זרים‪ .‬מכאן‪ ,‬מספר‬
‫מסקנה קומבינטורית‪ :‬כל חתך מינימלי מתקבל באלג' בהסתברות לפחות‬
‫החתכים המינימלי בגרף‬
‫‪ ,‬וזה חסם הדוק‪.‬‬
‫חסם צ'רנוב‪:‬‬
‫משפט צ'רנוב )חסם צ'רנוב(‪:‬‬
‫יהיו ‪0,1‬‬
‫מתקיים‪:‬‬
‫‪,…,‬‬
‫∑‬
‫משתנים מקריים ב"ת‪,‬‬
‫‪ln‬‬
‫)תוחלת(‪ .‬אז הסיכוי לטעות‪:‬‬
‫· ‪ 2‬ולכן‬
‫· ‪ln 2‬‬
‫·‬
‫· ‪ln‬‬
‫·‪2‬‬
‫∑‬
‫‪.Pr‬‬
‫‪ .‬מכאן ש‪ -‬תלוי רק בגודל הודאות הנדרשת ולא בגודל המדגם‪.‬‬
‫אלג' קירוב לבעית ‪ Set­Cover‬תוך שימוש ב‪:L.P.-‬‬
‫נעביר את הבעיה לבעית ‪:LP‬‬
‫•‬
‫לכל קבוצה‬
‫•‬
‫אם‬
‫•‬
‫רוצים להביא למינימום את‬
‫נתאים משתנה‬
‫)הכיסוי(‪ ,‬אז ‪1‬‬
‫‪1, … ,‬‬
‫•‬
‫‪0,1‬‬
‫ונקבל‬
‫‪,…,‬‬
‫‪ ,‬אחרת ‪0‬‬
‫‪ .‬‬
‫∑‬
‫כך ש‪1-‬‬
‫‪ .‬‬
‫‪.∑ :‬‬
‫)כלומר‪ :‬לפחות קבוצה אחת ב‪ C-‬מכילה את ‪ ,j‬לכל‬
‫‪1, … ,‬‬
‫(‪ .‬‬
‫‪ .‬‬
‫הבעיה לעיל היא ‪ IP‬ולכן היא ‪-NP‬קשה‪ ,‬נעביר לבעיה מקורבת שהיא ‪ LP‬ע"י הפיכת האילוץ האחרון ל‪0,1 -‬‬
‫יהי ‪ P‬פתרון אופטימלי לבעית ה‪) LP-‬שקיבלנו(‪:‬‬
‫‪,…,‬‬
‫∑‬
‫‪,‬‬
‫בעיגול התוצאה כדי למצוא ‪ SC‬חוקית‪ .‬מהפתרון נוציא ‪ SC‬עם ‪ t‬קבוצות‪:‬‬
‫האלג' הרנדומי‪ :‬משתמש ב‪-‬‬
‫נקח כל קבוצה‬
‫מפתרון ה‪ LP-‬כהסתברויות לבחירת‬
‫בהסתברות‬
‫‪ .OPT‬נחזור על פעולה זו ‪· log‬‬
‫אל הפתרון ‪ .C‬תוחלת‪:‬‬
‫‪ .‬ידוע כי‬
‫·‬
‫‪log‬‬
‫‪ .‬פולי' עם אלג' האליפסואיד‪.‬‬
‫‪ .‬אלג' הקירוב ישתמש‬
‫‪.‬‬
‫שיכנסו לפתרון ‪.C‬‬
‫∑‬
‫‪#‬‬
‫פעמים כאשר ‪ d‬יקבע אח"כ‪ .‬כדי להבטיח כיסוי מושלם לכל ‪.j‬‬
‫‪ .‬כלומר‪ ,‬תוחלת הפתרון לפי אלג' זה זהה ל‪-‬‬
‫‪ ‬‬
‫‪18‬‬
‫סיבוכיות‪ ,‬סמסטר ב' ‪2009‬‬
‫‪ ‬‬
‫מתקיים‪:‬‬
‫‪#‬‬
‫· ‪· log‬‬
‫‪∑ :‬‬
‫נבצע ‪· log‬‬
‫∑‬
‫‪.‬‬
‫‪j‬‬
‫נניח‬
‫‪Π‬‬
‫אריאל סטולרמן‬
‫ב‪f-‬‬
‫נמצא‬
‫‪Π‬‬
‫קבוצות‬
‫‪·…· 1‬‬
‫איטרציות ובסיכוי גבוה נקבל שכל ‪ j‬מכוסים‪60% :‬‬
‫·‬
‫כך ש‪-‬‬
‫‪:F‬‬
‫מתוך‬
‫‪Pr‬‬
‫‪ , 1‬כלומר לבסוף קיבלנו חסם קבוע‪.‬‬
‫‪. Pr‬‬
‫‪1‬‬
‫‪ .‬כדי שכל ‪ j‬יכוסו נבחר ‪d‬‬
‫‪ .‬כל איטרציה ב"ת בקודמתה ובכל איטרציה הסיכוי לכל ‪ j‬שלא יכוסה הוא ‪ .‬הסיכוי שלא הצלחנו לתפוס את ‪ j‬בכל‬
‫·‬
‫האיטרציות‪:‬‬
‫‪. Pr‬‬
‫· ‪ .‬מכאן‬
‫‪ .‬יש ‪-j n‬ים שונים‪ ,‬ולכן יש ‪:union­bound‬‬
‫הסתברות של לקבל ‪ SC‬טוב‪ ,‬שהוא ‪.C‬‬
‫‪:(Semi­Definite Prog.) SDP‬‬
‫מוגדרת כמו בעית ‪ LP‬אבל‪:‬‬
‫· √‬
‫·‬
‫·‬
‫∑‬
‫‪,‬‬
‫‪,‬‬
‫‪,…,‬‬
‫‪,…,‬‬
‫‪.‬‬
‫·‬
‫אילוצים הם מהצורה‬
‫‪min ∑ ,‬‬
‫‪ ‬כאשר‬
‫וקטורים‪ .‬תזכורת‪, :‬‬
‫‪,‬‬
‫‪,…,‬‬
‫·‬
‫‪ ∑ ,‬עבור‬
‫‪,‬‬
‫‪1, … ,‬‬
‫‪,…,‬‬
‫‪ .‬ה‪ SDP-‬מוצא וקטורים‬
‫המביאים למינימום את‬
‫‪.‬‬
‫ל‪ SDP-‬אלג' יעילים הפותרים אותו בזמן פולי'‪.‬‬
‫‪ Max­Cut‬עם ‪:SDP‬‬
‫‪,‬‬
‫בהינתן‬
‫לא מכוון רוצים למצוא‬
‫נתאים‬
‫לכל‬
‫הקשת‬
‫אם נקח‬
‫כך ש‪-‬‬
‫·‬
‫נקבל‪:‬‬
‫כך ש‪-‬‬
‫‪ : ,‬אם ‪1‬‬
‫‪ .‬מכאן שמתקיים לכל‬
‫‪ ,‬לא בחתך‪ .‬באופן דומה‪ ,‬אם מכפלת ‪1‬‬
‫‪1, ,‬‬
‫‪0, ,‬‬
‫· ‪0.878‬‬
‫|‬
‫כך שגודל קב' הקשתות‬
‫קירוב המשתמש ב‪ SDP-‬ונותן פקטור ‪ ,0.878‬כלומר נותן פתרון‬
‫‪1,‬‬
‫‪1,‬‬
‫‪,‬‬
‫כך ש‪-‬‬
‫·‬
‫| )|‬
‫‪,‬‬
‫‪,‬‬
‫(‪ .‬נכתוב כ‪:IP-‬‬
‫|‬
‫אז ‪ ,‬נמצאים או לא נמצאים ב‪ S-‬ביחד‪ ,‬כלומר‬
‫‪ ,‬בחתך‪ .‬‬
‫אז הקשת‬
‫·‬
‫‪ .‬הבעיה שנרצה למצוא‪:‬‬
‫‪,‬‬
‫·‬
‫מקסימלית‪ .‬בעיה זו ‪ .NPC‬להלן אלג'‬
‫‪,‬‬
‫∑ ‪ max‬כך ש‪1, 1 -‬‬
‫‪.‬‬
‫‪.‬‬
‫הפיכת הבעיה לבעית ‪:SDP‬‬
‫וקטורים‬
‫·‬
‫‪ , , … ,‬הבעיה‪:‬‬
‫‪,‬‬
‫∑ ‪ max‬תחת האילוץ‪1 :‬‬
‫·‬
‫‪.‬‬
‫‪ ,‬כלומר לכל צומת מתאים וקטור יחיד‪ .‬שאיפה‬
‫שכולם יהיו הפוכים אחד לשני כדי שמכפלתם תהיה ‪ , 1‬אך זה כמובן לא אפשרי‪ .‬בדוגמא עבור ‪ 3‬וקטורים‪ :‬‬
‫‪min‬‬
‫ביניהם ‪ ,120‬כלומר‬
‫‪1‬‬
‫‪cos 120‬‬
‫·‬
‫‪1‬‬
‫‪1‬‬
‫‪ ,‬ולכן הנ"ל שווה ל‪2-‬‬
‫‪ ,max‬כאשר עבור ‪ 3‬וקטורים הפתרון האופטימלי יהיה אם‬
‫‪ ,‬כאשר ‪ 2‬הוא ה‪ mincut-‬בדוגמא הזו‪.‬‬
‫‪2‬‬
‫אלג' ‪:('94) Goemans­Williamson‬‬
‫•‬
‫קשת‬
‫תחילה נפתור את בעית ה‪ SDP-‬ונקבל‬
‫‪,…,‬‬
‫כאשר‬
‫‪,‬‬
‫∑‬
‫חתך‬
‫‪ .‬‬
‫לכל צומת יש וקטור‪ ,‬אותו נשים על מעגל )יותר נכון ספירה‪ ,‬שכן במימד ‪ .(n‬‬
‫•‬
‫האלג'‪ :‬מעבירים חתך רנדומי‪ ,‬וכך הסיכוי הגדול ביותר לחתוך מקסימום מהקשתות‪ .‬בשני מימדים – מעבירים חתך דרך ‪ .0‬‬
‫ב‪ n-‬מימדים מעבירים ‪ – hyper­plain‬מישור ממימד ‪1‬‬
‫במרחב ממימד ‪.n‬‬
‫‪n‬‬
‫תיאור מישור רנדומי‪ :‬כל מישור רנדומי מתואר ע"י וקטור נורמלי )יחיד( ‪) n‬המישור עובר דרך ‪ .(0‬תיאור‪0 :‬‬
‫מציאת מישור רנדומי שקולה למציאת הוקטור הנורמלי שלו ‪ n‬רנדומי‪1 ,‬‬
‫‪ .‬בוחרים וקטור כלשהו מהספירה‪ ,‬והוא יהיה ‪.n‬‬
‫כעת נבדוק כמה קשתות נחתכו ע"י המישור לאחר בחירת ‪:n‬‬
‫‪ ‬‬
‫טענה‪:‬‬
‫· ‪0.878‬‬
‫אם הטענה נכונה אז‬
‫‪2‬‬
‫‪2‬‬
‫‪,‬‬
‫‪Pr‬‬
‫… ‪.Pr‬‬
‫· ‪0.878‬‬
‫‪,‬‬
‫∑ · ‪0.878‬‬
‫‪,‬‬
‫‪Pr‬‬
‫∑‬
‫‪,‬‬
‫הוכחת הטענה‪:‬‬
‫‪0.878 ‬‬
‫מבדיקת מינימום‬
‫·‬
‫·‬
‫|‬
‫‪,‬‬
‫‪.‬‬
‫‪ ‬‬