בנו גאדג׳טים לפסוקיות, הוסיפו קשתות סתירה, בחרו את הסף והוכיחו את שני הכיוונים.
1 נוסחת המקור 2 קודקודי מופעים 3 גאדג׳טים לפסוקיות 4 קשתות סתירה 5 קביעת הסף 6 בחירת עד 7 מדוע הרדוקציה עובדת
φ = (x ∨ y ∨ z) ∧ (¬x ∨ y ∨ w) ∧ (¬y ∨ z ∨ w)
בנייה מ־3SAT לקבוצה בלתי תלויה שלוש פסוקיות הופכות לגאדג׳טים משולשים. קשתות רציפות מחברות ליטרלים באותה פסוקית, קשתות מקווקוות מחברות ליטרלים משלימים, ובשלב האחרון נבחרים x, y ו־z כקבוצה בלתי תלויה בגודל שלוש. C1 x ∨ y ∨ z פסוקית מקור C2 ¬x ∨ y ∨ w פסוקית מקור C3 ¬y ∨ z ∨ w פסוקית מקור
קשת באותה פסוקית סתירה בין משלימים
הפכו כל אי־קשת לקשת, השאירו את אותה קבוצת קודקודים ואת אותו סף, וקראו קבוצה בלתי־תלויה כקליקה.
1 גרף המקור 2 קבוצה בלתי־תלויה 3 בניית המשלים 4 קריאת הקליקה 5 השארת k 6 מדוע זה עובד
קבוצה בלתי־תלויה לקליקה דרך משלים גרף מסלול על ארבעה קודקודים מושלם; זוג בלתי־תלוי הופך לקליקה בעוד שהסף נשאר k. מקור G 1 2 3 4 משלים Ḡ 1 2 3 4
קשת מקור (נמחקת) קשת משלים (נוספת)
השאירו את אותו גרף, השלימו את קבוצת הקודקודים הנבחרת, והעבירו את הסף k אל |V|−k.
1 גרף המקור 2 קבוצה בלתי־תלויה 3 השלמת הקבוצה 4 כיסוי קודקודים 5 הזזת הסף 6 מדוע זה עובד
קבוצה בלתי־תלויה לכיסוי קודקודים דרך משלים קבוצה קבוצה בלתי־תלויה במסלול מושלמת לכיסוי קודקודים בעוד שהסף הופך ל־n פחות k. אותו גרף G 1 2 3 4
פצלו פסוקית CNF ארוכה לשרשרת שלשות שוות־ספיקות עם משתנים חדשים, בלי דיסטריבוטיביות אקספוננציאלית.
1 פסוקית ארוכה 2 משתנים חדשים 3 בניית השרשרת 4 ריפוד פסוקיות קצרות 5 שוויון־ספיקות 6 גודל פולינומי
פסוקית מקור (a ∨ b ∨ c ∨ d ∨ e)
SAT ל־3SAT בפיצול פסוקיות פסוקית בת חמישה ליטרלים מוחלפת בשלוש שלשות חופפות הקשורות בשני משתנים חדשים. פסוקית מקור משתנה טרי שלשת פלט
מקמו קודקודי ליטרלים, חתכו כל זוג משתנים, ניקדו שתי קשתות לכל משולש פסוקית, והגיעו לסף n+2m.
1 נוסחת NAE 2 קודקודי ליטרלים 3 קשתות משתנים 4 משולשי פסוקיות 5 קביעת K = n+2m 6 קריאת חתך 7 מדוע זה עובד
NAE-3CNF מקור (x ∨ y ∨ z) ∧ (¬x ∨ y ∨ ¬z)
NAE-3SAT ל־Max-Cut במולטי־גרף קודקודי ליטרלים עם קשתות משתנים ומשולשי פסוקיות; חתך בגודל n+2m מקודד השמת NAE. NAE-3CNF מקור
קשת משתנה קשת פסוקית
השלימו את הגרף, תמחרו קשתות מקוריות ב־1 וקשתות חסרות ב־2, קבעו תקציב B = n, וקראו מסע זול בחזרה כמעגל המילטוני.
1 גרף המקור 2 השלמת הגרף 3 תמחור הקשתות 4 קביעת התקציב 5 קריאת המסע 6 מדוע זה עובד
מעגל המילטוני ל־TSP על חמישה קודקודים מחומש של חמש קשתות מקוריות בעלות 1 מושלם על ידי כוכב מחומש של חמישה אלכסונים בעלות 2; המחומש עצמו הוא מסע בעלות חמש, בדיוק גובה התקציב B = n = 5. גרף המקור G — 5 קודקודים, 5 קשתות 1 2 3 4 5
קשת מקורית של G — עלות 1
קלט חמישה קודקודים ושאלה אחת מופע המקור הוא מחומש על n = 5 קודקודים: קיימות בו רק חמש הקשתות 1-2, 2-3, 3-4, 4-5, 5-1 . האם יש ב־ G מעגל המילטוני?
הוסיפו את הסמנים S+T ו־2S−T כך שחלוקה שווה של הסכום החדש 4S חייבת להפריד ביניהם ולחשוף תת־קבוצה שסכומה T.
1 מופע המקור 2 הסכום S 3 הוספת הסמנים 4 איזון הכפות 5 הפרדת הסמנים 6 מדוע זה עובד
A = {3, 5, 6, 11} T = 14
מסכום תת־קבוצה לחלוקה באמצעות שני סמנים שנוספים עמודות פרופורציוניות ל־3, 5, 6, 11 ולסמנים 39 ו־36 ממלאות שתי כפות שסכום כל אחת מהן 50. המספרים משורטטים לפי גודלם 3 5 6 11
מספר מקורי
קלט מתחילים ממופע Subset Sum אותו מופע מזין גם את התכנות הדינמי של Subset Sum: הקבוצה A = {3, 5, 6, 11} עם היעד T = 14 . כל המספרים חיוביים, והעמודות משורטטות לפי גודלן.
בדקו את כיוון הרדוקציה ועקבו אחר העברת הקושי בשרשרת בעיות קנוניות.
1 בדיקת הכיוון 2 שימור תשובות כן ולא 3 שרשרת הרדוקציות 4 הקישור האמצעי בפירוט 5 הרכבת רדוקציות
הבעיה הקשה הידועה A מופע המקור x
→ f(x) מהדר פולינומי כולל
→ פותר לבעיית היעד B אלגוריתם מהיר היפותטי
תשובת כן/לא של הפותר מכריעה את A
כיוון מתחילים מן הבעיה הקשה כדי להוכיח ש־ B קשה, ממירים מופע של הבעיה הקשה הידועה A ומפעילים פותר היפותטי של B . לכן דרושה הרדוקציה A ≤ₘᵖ B , ולא הכיוון ההפוך.
חקרו את רשת הרדוקציות של הקורס ואת ההעתקה שמבצעת כל קשת.
1 מקור לוגי 2 תאימות בגרפים 3 בעיות מסלולים 4 חתכים וצביעות 5 הענף האריתמטי 6 קריאת הרשת
רשת קנונית של רדוקציות בין בעיות NP-שלמות SAT עוברת ל־3SAT, ומשם הרשת מתפצלת לגרפי תאימות, בעיות מסלולים, בעיות חתך וצביעה וקידודים אריתמטיים. כל קשת מציינת את ההמרה הקונקרטית שלה. צייטין + פיצול פסוקיות SAT 3SAT לוגיקה / תאימות
הענף המוצג: מקור לוגי 1 המרות מתויגות
לוגיקה יוצרים מקור לשימוש חוזר משפט קוק–לוין מספק את SAT . משתני צייטין ופיצול פסוקיות יוצרים מופע 3SAT שווה־סיפוק בלי הרחבה מעריכית לצורה נורמלית קוניונקטיבית.
העמודים שמהם זה נכתב 1 עמודים העמודים נבחרו לפי חפיפת מילים בין הטקסט כאן לתמלול העמוד — לא אומתו ידנית. הם הצעה לבדיקה, לא ציטוט.
שיעור 7 · עמוד 2 משפט קוק-לוין מילים משותפות קוק · לוין · ורק · משפט
המירו חישוב חסום לאילוצים בוליאניים בעזרת חלונות מקומיים בטבלה.
1 תצורת ההתחלה 2 בניית הטבלה 3 מתן שמות למשתני התאים 4 סמל אחד בדיוק 5 התחלה וקבלה 6 בדיקת חלון מקומי 7 ספירה ופענוח
קלט x = 10 · חסם זמן T = 3 · רוחב הטבלה S = 5
תצורה מקבעים את שורת ההתחלה האמיתית שורה אפס מתעדת את הקלט, התאים הריקים וסמל סרט אחד המסומן במצב. פסוקיות יחידה יכפו את התצורה המדויקת הזאת.
קדדו בחירות אמת וסיפוק פסוקיות בעמודות ספרות ללא נשא.
1 הקצאת עמודות ספרות 2 הוספת בחירות אמת 3 סימון פסוקיות מסופקות 4 הוספת השלמה לפסוקיות 5 הגעה ליעד 6 הוכחת גודל ושקילות
φ = (x₁ ∨ ¬x₂) ∧ (¬x₁ ∨ x₂)
פריסה מקצים עמודות למשתנים ולפסוקיות שתי העמודות הראשונות יכפו בחירת אמת אחת לכל משתנה. שתי העמודות האחרונות יעידו שכל פסוקית קיבלה ליטרל אמיתי.
העמודים שמהם זה נכתב 2 עמודים העמודים נבחרו לפי חפיפת מילים בין הטקסט כאן לתמלול העמוד — לא אומתו ידנית. הם הצעה לבדיקה, לא ציטוט.
שיעור 11 · עמוד 4 אלגוריתמי קירוב וסכום תת קבוצה מילים משותפות בבסיס · הם · ספרות · גדול · המספרים · וסכום
שיעור 12 · עמוד 3 SubsetSum מילים משותפות להוסיף · הספרות · האחרונות · מספקת
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 קלט וקודקודים 2 קשתות שחורות 3 קשתות כחולות 4 קשתות אדומות 5 כיוון ראשון 6 כיוון שני 7 למה דווקא NAE
הקלט φ (x ∨ y ∨ z) ∧ (¬x ∨ y ∨ ¬z)
מ-3NAE לצביעה ב-3 צבעים: N, קודקודי ליטרלים ומשולשי פסוקיות קודקוד מיוחד N מחובר בקשתות שחורות לשישה קודקודי ליטרלים; קשתות כחולות מחברות כל ליטרל לשלילתו; לכל אחת משתי הפסוקיות משולש אדום משלה שקודקודיו מחוברים לליטרלים של אותה פסוקית. N N — שורף את צבע 1 x ¬x y ¬y z ¬z קודקודי ליטרלים — 2n = 6 1:x 1:y 1:z 2:¬x 2:y 2:¬z C₁ = (x ∨ y ∨ z) C₂ = (¬x ∨ y ∨ ¬z) קודקודי פסוקית — 3m = 6
קלט נוסחת 3CNF, בשאלה במובן NAE ניקח את φ = (x ∨ y ∨ z) ∧ (¬x ∨ y ∨ ¬z) עם n = 3 משתנים ו-m = 2 פסוקיות. השאלה היא אם קיימת השמה שבה לכל פסוקית יש גם ליטרל אמת וגם ליטרל שקר.
הפלט הוא גרף בלבד — לא מצורף אליו שום מספר, כי k = 3 הוא חלק מה-DNA של בעיית היעד.
קודקודים: אחד לכל ליטרל (2n = 6), קודקוד מיוחד N , ולכל פסוקית שלושה קודקודים משלה (3m = 6). קודקוד פסוקית מסומן לפי הליטרל שאליו הוא יחובר — אבל הוא עצם נפרד, ולא הליטרל עצמו.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 הקלט G 2 הוספת v̂ 3 כיוון ראשון 4 כיוון שני 5 הזהות נכשלת 6 קודקוד מבודד נכשל 7 הבנייה על K₄
מצביעה ב-3 לצביעה ב-4: הוספת קודקוד אחד המחובר להכול בפאנל השמאלי גרף הקלט עם צביעה; בפאנל הימני אותו גרף בתוספת קודקוד חדש המחובר לכל קודקוד מקורי, עם הצביעה שלו. בצעדים המאוחרים הקלט מוחלף ב-K₄ ומושווים פונקציית הזהות, קודקוד מבודד נוסף, והבנייה האמיתית. מופע קלט של 3COL G = C₅ v₁ 1 v₂ 2 v₃ 1 v₄ 2 v₅ 3 C₅ ∈ 3COL ✓
קשת של G (נשמרת) צבע 1 (מקווקו) צבע 2 (רציף) צבע 3 (מנוקד)
קלט גרף קונקרטי שהוא 3-צביע ניקח G = C₅ , המעגל באורך 5. מעגלים אי-זוגיים אינם 2-צביעים, אבל שלושה צבעים מספיקים: 1, 2, 1, 2, 3 סביב המעגל.
כלומר G ∈ 3COL, והרדוקציה חייבת לשלוח אותו לגרף שנמצא ב-4COL — וגם לשלוח כל גרף שאינו 3-צביע לגרף שאינו 4-צביע.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 הקלט ⟨G,k⟩ 2 מוסיפים v_xy 3 מוחקים מבודדים 4 כיוון ראשון ⇐ 5 עד שנפל מהשמיים 6 מפת התיקון 7 עלות ומסקנה
⟨G, k = 2⟩ ∈ VC ?
כיסוי קודקודים לקבוצה שולטת: קודקוד לכל קשת, ומחיקת קודקודים מבודדים גרף המקור G עם הקודקודים a, b, c, d וקודקוד מבודד z מופיע בצד אחד. בצד השני הגרף Ĝ מוסיף קודקוד לכל קשת ומחבר אותו לשני קצותיה, מוחק את z, ושומר את אותו סף k. ההדגשות מראות את הכיסוי U שמשמש כקבוצה שולטת, קבוצה שולטת שמכילה קודקוד חדש, ואת מפת התיקון שמחזירה את הקודקוד החדש לקודקוד מקורי. G — גרף המקור a b c d z מבודד קודקוד מקורי מתוך V
קלט כיסוי בגודל 2, ובנוסף קודקוד מבודד שואלים אם לגרף G יש כיסוי קודקודים בגודל k = 2 . הקשתות שלו הן ab, bc, bd, cd , והקודקוד z מבודד.
התשובה חיובית: U = {b, c} פוגעת בכל ארבע הקשתות. שימו לב ש־z אינו נוגע באף קשת ולכן לעולם אינו דרוש לכיסוי — זכרו זאת, זה עומד להיות קריטי.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 הגרף 2 מספרי קודקודים 3 מספרי קשתות 4 יעד ואי־נשאות 5 קדימה 6 למה 0 קטלני 7 אחורה 8 ערך מול אורך
G = P₅: |V| = 5, m = |E| = 4 K = 3
מסלול הקלט לצד תרשים של סכומי עמודות הקשתות משמאל מסלול בן חמישה קודקודים וארבע קשתות, כשעל כל קשת תג המציין כמה מקצותיה נבחרו. מימין עמודה אחת לכל עמודת קשת, מפוצלת לחלק שתרמו הקודקודים הנבחרים ולחלק שתרם מספר הקשת עצמה, על רקע קווי עזר ביעד 2, במקסימום 3 ובסף הנשאות 10. G — גרף הקלט סכומי עמודות הקשתות cⱼ e₁ e₂ e₃ e₄ v₁ v₂ v₃ v₄ v₅ 0 2 3 10 e₁ e₂ e₃ e₄
מספר קודקוד a_v
שורה לכל מספר שנבנה; עמודה אחת ל־d ועמודה לכל קשת; השורות האחרונות הן סכומי העמודות וסכום היעד. מספר d e₁ e₂ e₃ e₄ ערך
צעד 0 — "לכל היותר K" הופך ל"בדיוק K" אם K > |V| מחליפים את K ב־|V|. כיסוי בגודל ≤ K תמיד אפשר להשלים לגודל K בדיוק, ולכן כפיית K בעמודה d אינה מזיקה.
קלט גרף, מספור קשתות ו־K ניקח את המסלול על חמישה קודקודים, עם m = |E| = 4 קשתות ממוספרות e₁ = (v₁,v₂), e₂ = (v₂,v₃), e₃ = (v₃,v₄), e₄ = (v₄,v₅) , ונשאל אם יש כיסוי קודקודים בגודל לכל היותר K = 3 .
צעד 0 של האלגוריתם: אם K > |V|, מחליפים את K ב־|V|. לאחר מכן מותר לבנייה לכפות בדיוק K במקום לכל היותר K — הוספת קודקודים לכיסוי משאירה אותו כיסוי, ולכן כיסוי קטן יותר מושלם לגודל K בדיוק; ואם K > |V| התשובה חיובית ממילא.
הרדוקציה בונה את המספרים מהגרף ומ־K בלבד. היא אינה מחפשת כיסוי — ניסוח הבנייה במונחי הפתרון הוא אותו "חטא כבד" שנפסל ב־3COL ≤p 4COL.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 מופעים 2 קליקות פסוקית 3 קשתות שלילה 4 קדימה ∃ 5 קדימה ∀ 6 אחורה 7 עלות ומסקנה
φ = (x₁ ∨ ¬x₂) ∧ (¬x₁ ∨ x₂ ∨ x₃) ∧ (¬x₂ ∨ ¬x₃) m = 3 פסוקיות
הגרף G_φ הנבנה מנוסחת CNF בת שלוש פסוקיות שבעה קודקודים מסודרים בשלושה טורי פסוקיות. קשתות אדומות מלאות הופכות כל פסוקית לקליקה; קשתות כהות מקווקוות מחברות כל ליטרל לשלילתו. שלושה קודקודים נבחרים, אחד מכל פסוקית, מרכיבים קבוצה בלתי תלויה בגודל שלוש. G_φ — קודקוד לכל מופע ליטרל x₁ ¬x₂ ¬x₁ x₂ x₃ ¬x₂ ¬x₃ ¬x₂ מופיע פעמיים ← שני קודקודים
קודקוד = מופע ליטרל אחד
קלט קודקוד לכל מופע ליטרל ניקח את נוסחת ה־CNF הכללית φ = (x₁ ∨ ¬x₂) ∧ (¬x₁ ∨ x₂ ∨ x₃) ∧ (¬x₂ ∨ ¬x₃) . הפסוקיות יכולות להיות מכל גודל — שום דבר כאן אינו מצריך 3CNF.
יוצרים קודקוד לכל מופע של ליטרל, ולא לכל משתנה. ¬x₂ מופיע ב־C₁ ושוב ב־C₃, ולכן הוא מקבל שני קודקודים נפרדים. עם 2 + 3 + 2 מופעים יש בגרף 7 קודקודים.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 הקלט של משלים IS 2 שותלים k−1 3 מחברים לכל הישנים 4 קדימה 5 למה לא מבודדים? 6 אחורה 7 עלות ומסקנה
⟨G, k⟩ = ⟨C₅, 4⟩ משלים IS: האם אין ב־G קבוצה בלתי תלויה בגודל 4?
למת המשלימים f רדוקציה מ־A ל־B ⇔ f רדוקציה מ־Ā ל־B̄ — ולכן מותר לצאת ממשלים IS.
מעגל באורך חמש ושלושה קודקודים שתולים המחוברים לכל קודקוד מקורי גרף המקור הוא מחומש בן חמישה קודקודים. שלושה קודקודים שתולים ניצבים בטור מימינו, בלי קשתות ביניהם ועם קשת דקה אל כל אחד מחמשת הקודקודים המקוריים. בשלב ההשוואה מוצג אותו גרף פעמיים, פעם עם קשתות החיבור ופעם בלעדיהן. G = C₅ — גרף הקלט v₁ ✓ v₂ v₃ ✓ v₄ v₅ α(G) = 2 ≤ k − 1 = 3, אך לא בהכרח שווה
קודקוד מקורי של V מלא: קשת מקורית של G הקבוצה הבלתי תלויה הנדונה, מוקפת ב־✓
קלט מתחילים מהשאלה המשלימה למת המשלימים (שיעור 21): פונקציה f הניתנת לחישוב בזמן פולינומי היא רדוקציה מ־A ל־B אם ורק אם היא רדוקציה מ־Ā ל־B̄, שכן x ∈ A ⇔ f(x) ∈ B שקול לוגית ל־ x ∉ A ⇔ f(x) ∉ B . זה מה שמאפשר לצאת ממשלים IS.
ניקח ⟨G, k⟩ = ⟨C₅, 4⟩ . השאלה היא השלילית: האם נכון שאין ב־G קבוצה בלתי תלויה בגודל 4? כן — הקבוצה הבלתי תלויה הגדולה ביותר במעגל באורך 5 היא זוג לא סמוך, ולכן α(G) = 2 .
שימו לב לפער שהבנייה צריכה לסגור. מהידיעה שאין קבוצה בגודל 4 נובע רק שהמקסימום הוא לכל היותר k−1 = 3 — וכאן הוא 2. MaxIS דורשת בדיוק k−1, ולכן צריך משהו שיקבע את המקסימום.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 הקלט ⟨G,k⟩ 2 ניפוח לגודל 3 3 מופע חוקי 4 כיוון ראשון ⇐ 5 כיסוי שנפל מהשמיים 6 מפת התיקון 7 עלות ומסקנה
⟨G, k = 2⟩ ∈ VC ?
כיסוי קודקודים לכיסוי בהיפרגרף 3-אחיד: כל קשת מנופחת בעזרת קודקוד חדש גרף המקור G עם הקודקודים a, b, c, d והקשתות ab, ac, bc, cd מופיע בצד אחד. בצד השני ההיפרגרף H שומר את ארבעת הקודקודים, מוסיף קודקוד ריבועי לכל קשת, ומצייר כל היפר־קשת כשטח מוצלל שמכסה בדיוק שלושה קודקודים. ההדגשות מראות את הכיסוי U שנשאר ללא שינוי, כיסוי של ההיפרגרף שמכיל קודקוד חדש, ואת מפת התיקון שמחליפה אותו באחד משני קצותיו האמיתיים. G — גרף המקור (קשתות בגודל 2) ab ac bc cd a b c d קודקוד מקורי מתוך V (עיגול)
קלט הבעיה הקרובה ביותר — אבל בגודל קשת לא מתאים לגרף G יש את הקשתות ab, ac, bc, cd , ואנחנו שואלים על כיסוי בגודל k = 2 . התשובה חיובית: U = {a, c} פוגעת בכל ארבע הקשתות.
מפחיתים דווקא מ־VC כי היא הבעיה הקרובה ביותר: ההגדרה של כיסוי קודקודים בהיפרגרף היא מילה במילה ההגדרה של VC, וגרף רגיל הוא בסך הכול היפרגרף 2-אחיד.
הקושי היחיד הוא גודל הקשת. הפלט חייב להיות 3-אחיד, ואילו כל קשת כאן היא קבוצה בגודל 2 — צריך „לנפח” כל קשת לגודל 3 בלי לשנות את התשובה.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 המולטיגרף G 2 חלוקת הקשתות 3 למה G′ פשוט 4 הסף 5 כיוון ראשון 6 טיעון הזוגיות 7 כיוון שני
|E| = 4 k = 3
Max-Cut במולטיגרף ברדוקציה ל‑Max-Cut בגרף פשוט משמאל מולטיגרף עם שתי קשתות מקבילות ולולאה; מימין הגרף הפשוט שבו כל קשת הפכה למסלול באורך שלוש דרך שני קודקודים ייחודיים, עם סימון צדי החתך, הקשתות החוצות ומקרי הזוגיות. G — מולטיגרף e₁ e₂ e₃ e₄ a b c G′ — גרף פשוט V′ = V ∪ V″ — נבנה בשלב הבא קודקוד מקורי מ‑V
קלט קשתות מקבילות ולולאה הקלט הוא ⟨G, k⟩ כאשר G מולטיגרף מעל V = {a, b, c} : שתי קשתות מקבילות e₁, e₂ בין a ל‑b, קשת e₃ = {b, c} ולולאה e₄ = {c, c} . לכן |E| = 4 .
השאלה: האם קיים ב‑G חתך עם לפחות k = 3 קשתות חוצות? החתך הטוב ביותר הוא U = {a, c}: הקשתות e₁, e₂, e₃ חוצות, והלולאה לעולם אינה חוצה.
Max-Cut הרגילה אפילו אינה יודעת לקרוא קלט כזה — בגרף פשוט אין קשתות מקבילות ואין לולאות. בדיוק את זה הרדוקציה נדרשת לתקן.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 הקלט ⟨G,k⟩ 2 למה עלה? 3 מוסיפים את העלים 4 כיוון ראשון ⇐ 5 קבוצה שנפלה מהשמיים 6 מפת התיקון 7 עלות ומסקנה
⟨G, k = 3⟩ ∈ VC ? צנוע ⇔ כל דרגה ≤ 1
כיסוי קודקודים לגרף צנוע: עלה תלוי על כל קודקוד מקורי גרף המקור G, משולש a, b, c עם קודקוד תלוי d היוצא מ־c, מופיע בצד אחד. בצד השני הגרף G′ תולה עלה קטן על כל אחד מ־a, b, c ו־d. ליד כל קודקוד ששורד מופיע תג דרגה, קודקודים שנמחקו מסומנים בקו חוצה, וההדגשות מראות את הכיסוי U המשמש כקבוצת הסרה, קבוצת הסרה שמבזבזת יחידה על עלה, ואת מפת התיקון שמחליפה את העלה בקודקוד שהוא תלוי בו. G — גרף המקור a b c d קודקוד מקורי מתוך V (עיגול גדול) קשת מקורית מתוך E
קלט „צנוע” פירושו דרגה מקסימלית של לכל היותר 1 גרף נקרא צנוע אם הדרגה המקסימלית שלו היא לכל היותר 1 — כלומר אם הוא איחוד זר של קודקודים בודדים ושל קשתות בודדות. הבעיה MODEST שואלת אם אפשר להסיר לכל היותר k קודקודים כך שמה שנשאר יהיה צנוע.
המופע שלנו: G הוא המשולש a, b, c עם קודקוד תלוי d היוצא מ־c, ו־ k = 3 . הקבוצה U = {b, c} היא כיסוי קודקודים: היא פוגעת ב־ab, bc, ca ו־cd.
בחרנו k נדיב בכוונה — 3 במקום המינימום 2 — כי הכיוון השני חייב לשרוד גם פתרון מרושל, לא רק פתרון אופטימלי.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 הגרף המכוון 2 השלישיות 3 הקשתות 4 דרגה 2 5 כיוון ראשון 6 הכיוון מתפשט 7 קריאת המעגל
מעגל המילטוני מכוון ברדוקציה למעגל המילטוני לא מכוון משמאל גרף מכוון על ארבעה קודקודים; מימין כל קודקוד מורחב לשלישייה in, mid, out המסודרת סביב מעגל, כך שהמעגל ההמילטוני עובר על הטבעת וקודקודי האמצע מדרגה שתיים כופים כיוון אחיד. G — מכוון 1→2 2→3 3→4 4→1 3→1 1 2 3 4 G′ — לא מכוון כל קודקוד עומד להפוך לשלישייה
קלט גרף מכוון, ומה עולה מחיקת החצים הקלט הוא גרף מכוון G מעל V = {1, 2, 3, 4} עם הקשתות 1→2, 2→3, 3→4, 4→1 ובנוסף הקשת 3→1 . האם קיים ב‑G מעגל המילטוני מכוון?
כן: 1 → 2 → 3 → 4 → 1 . הקשת 3→1 היא קיצור אמיתי של G שהמעגל הזה אינו משתמש בו.
פשוט למחוק את החצים זו טעות: קשת לא מכוונת {u, v} מאפשרת מעבר גם מ‑v ל‑u, גם כאשר קיימת רק הקשת u→v. הבנייה חייבת לקודד את הכיווניות בתוך מבנה הגרף עצמו.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 נוסחת הקלט 2 הוספת z 3 כיוון ראשון 4 סימטריית ההשלמה 5 כיוון שני 6 למה z משותף 7 המסקנה
φ = (x₁ ∨ x₂ ∨ x₃) ∧ (¬x₁ ∨ x₂ ∨ ¬x₃) ∧ (x₁ ∨ ¬x₂ ∨ ¬x₃)
מ-3SAT ל-4NAE: טבלת פסוקיות עם הליטרל z שנוסף כל שורה היא פסוקית וכל תא הוא ליטרל, צבוע לפי ערכו תחת ההשמה הנוכחית. העמודה הרביעית מחזיקה את הליטרל החדש המשותף z. תוויות ההכרעה מימין אומרות אם הפסוקית מסופקת ואם היא מסופקת במובן NAE. φ תחת v = (1,1,1) — מסופקת, אבל פסוקית 1 כולה אמת C₁ x₁ = 1 x₂ = 1 x₃ = 1 מסופקת ✓ כולם שווים ✗ C₂ ¬x₁ = 0 x₂ = 1 ¬x₃ = 0 מסופקת ✓ NAE ✓ C₃ x₁ = 1 ¬x₂ = 0 ¬x₃ = 0 מסופקת ✓ NAE ✓ x₁ = 1 x₂ = 1 x₃ = 1
ערך הליטרל 1 ערך הליטרל 0
קלט ספיקות אינה ספיקות במובן NAE ניקח את φ = (x₁ ∨ x₂ ∨ x₃) ∧ (¬x₁ ∨ x₂ ∨ ¬x₃) ∧ (x₁ ∨ ¬x₂ ∨ ¬x₃) ואת ההשמה המספקת v = (1,1,1) .
בכל פסוקית יש ליטרל אמת, ולכן v מספקת את φ. אבל פסוקית 1 נקראת (1,1,1): כל ליטרליה שווים, ולכן v אינה מספקת את φ במובן NAE. NAE דורשת בכל פסוקית ליטרל אמת וגם ליטרל שקר.
על הרדוקציה לספק את ליטרל השקר החסר, בלי לפגוע בספיקות.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 קלט 4CNF 2 פיצול הפסוקיות 3 עלות והמלכודת 4 כיוון ראשון 5 כל המקרים 6 כיוון שני 7 המסקנה
4NAE ברדוקציה ל‑3NAE על ידי פיצול כל פסוקית שתי פסוקיות בנות ארבעה ליטרלים מפוצלות כל אחת לשתי פסוקיות בנות שלושה ליטרלים המחוברות במשתנה עזר ובשלילתו; ערכי הליטרלים מסומנים בעיגול עבור אמת ובריבוע עבור שקר, ואחריהם שלושת מקרי הכיוון הראשון וחילוץ ליטרל אמת וליטרל שקר בכיוון ההפוך. φ — 4CNF, בקריאת NAE C₁ x ℓ₁ y ℓ₂ z ℓ₃ ¬w ℓ₄ C₂ ¬x ℓ₁ w ℓ₂ z ℓ₃ y ℓ₄ כל פסוקית עומדת להתפצל לשתיים כל פסוקית עומדת להתפצל לשתיים
קלט סמנטיקת NAE: בכל פסוקית דרושים שני הערכים הקלט הוא נוסחת ה‑4CNF φ = (x ∨ y ∨ z ∨ ¬w) ∧ (¬x ∨ w ∨ z ∨ y) .
השאלה אינה ספיקות רגילה. השמה מספקת את φ במובן NAE אם בכל פסוקית יש לפחות ליטרל אמת אחד ולפחות ליטרל שקר אחד — „לא כולם שווים”.
זו דרישה חזקה ממש מספיקות, ובדיוק בגללה אי אפשר פשוט לצטט כאן את ההוכחה של SAT ≤ₚ 3SAT.
עקבו אחר הבנייה ואחר שני כיווני ההוכחה.
1 נוסחת הקלט 2 אורך 3 3 אורך 2 4 אורך 1 5 טבלת האמת 6 חדשים לכל פסוקית 7 מדוע זה עובד
v: x₁ = F, x₂ = F, x₃ = T
ריפוד פסוקיות קצרות עד בדיוק שלושה ליטרלים שלוש פסוקיות הקלט, באורכים שלוש, שתיים ואחת, ממופות לשבע פסוקיות פלט: הפסוקית המלאה מועתקת, הפסוקית בת שני הליטרלים הופכת לשתי פסוקיות עם משתנה עזר אחד, והפסוקית היחידה הופכת לארבע פסוקיות עם שני משתני עזר. φ — קלט, לכל היותר 3 ליטרלים f(φ) — פלט, בדיוק 3 ליטרלים נבנית פסוקית אחר פסוקית |C₁| = 3 · משאירים C₁ x₁ ∨ ¬x₂ ∨ x₃ |C₂| = 2 · מרפדים ב־y₂ C₂ ¬x₁ ∨ x₂ |C₃| = 1 · מרפדים ב־y₃, y₃′ C₃ x₃
ליטרל של φ
קלט פסוקית אחת מכל אורך ב־3SAT פסוקית מכילה לכל היותר שלושה ליטרלים. ניקח φ = (x₁∨¬x₂∨x₃) ∧ (¬x₁∨x₂) ∧ (x₃) — באורכים 3, 2 ו־1.
בעיית היעד 3SAT= דורשת בדיוק שלושה ליטרלים בכל פסוקית, ולכן רק שתי הפסוקיות הקצרות דורשות טיפול.
φ ספיקה: ההשמה x₁=F, x₂=F, x₃=T מספקת את שלוש הפסוקיות. שמרו אותה — היא תעבור לפלט כמות שהיא.