קשת משתנה, משולש פסוקית, סף $n+2m$

3NAE ≤p MAXCUT

3NAE≤pMAXCUT\mathrm{3NAE}\le_p\mathrm{MAXCUT} (על מולטיגרפים), ולכן MAXCUT\mathrm{MAXCUT} היא NP-קשה.

הבנייה

על נוסחת 3CNF φ\varphi מעל x1,…,xnx_1,\dots,x_n עם mm פסוקיות:

  1. קודקודים. לכל 1≤i≤n1\le i\le n קודקוד עבור xix_i וקודקוד עבור xi‾\overline{x_i} — סך הכול 2n2n קודקודים, קודקוד לכל ליטרל.
  2. קשתות כחולות (קשתות משתנה). לכל ii קשת בין xix_i ל-xi‾\overline{x_i} — nn קשתות.
  3. קשתות אדומות (קשתות פסוקית). לכל פסוקית, קשת בין כל שני ליטרלים שלה — משולש, 33 קשתות לפסוקית, סך הכול 3m3m.
  4. החזר ⟨G, n+2m⟩\langle G,\ n+2m\rangle.

למה מולטיגרף. אם שתי פסוקיות מכילות את אותו זוג ליטרלים נוצרות שתי קשתות מקבילות, ואם פסוקית מכילה גם xix_i וגם xi‾\overline{x_i} נוצרת קשת אדומה מקבילה לכחולה. אלה קשתות שונות של המולטיגרף, וזה בדיוק מה שמאפשר לספור כל פסוקית בנפרד.

המחשה

בנייה מודרכת

NAE-3SAT → Max-Cut

שלב 1 מתוך 7
NAE-3CNF מקור(x ∨ y ∨ z) ∧ (¬x ∨ y ∨ ¬z)
NAE-3SAT ל־Max-Cut במולטי־גרףקודקודי ליטרלים עם קשתות משתנים ומשולשי פסוקיות; חתך בגודל n+2m מקודד השמת NAE.NAE-3CNF מקור
קשת משתנהקשת פסוקית

נכונות — שני הכיוונים

3NAE ∈ ⟹ MAXCUT ∈

נניח φ∈3NAE\varphi\in\mathrm{3NAE}, ותהי VV הצבה המספקת אותה במובן NAE. נגדיר U={ ℓ ∣ ℓ קודקוד ליטרל, V(ℓ)=1 }.U=\{\,\ell\ \mid\ \ell \text{ קודקוד ליטרל},\ V(\ell)=1\,\}.

הקשתות הכחולות. לכל ii, בדיוק אחד מבין xi,xi‾x_i,\overline{x_i} מקבל 11 (שכן V(xi‾)=1−V(xi)V(\overline{x_i})=1-V(x_i)), ולכן בדיוק אחד מהם ב-UU; הקשת הכחולה מקיימת ∣e∩U∣=1|e\cap U|=1 והיא בחתך. לכן כל nn הקשתות הכחולות בחתך.

הקשתות האדומות. תהי CC פסוקית עם ליטרלים ℓ1,ℓ2,ℓ3\ell_1,\ell_2,\ell_3. מכיוון ש-VV מספקת את CC במובן NAE, קיים jj עם ℓj∈U\ell_j\in U וקיים j′j' עם ℓj′∉U\ell_{j'}\notin U. הקשת בין ℓj\ell_j ל-ℓj′\ell_{j'} חוצה. נותר הקודקוד השלישי: לא משנה באיזה צד הוא, מבין שתי הקשתות הנותרות בדיוק אחת חוצה. לכן מבין שלוש קשתות המשולש בדיוק שתיים בחתך.

מכיוון שקשתות אדומות של פסוקיות שונות הן קשתות שונות במולטיגרף, אפשר לסכום בנפרד: ∣cutG(U)∣=n⏟כחול+2m⏟אדום=n+2m ≥ n+2m.|\mathrm{cut}_G(U)|=\underbrace{n}_{\text{כחול}}+\underbrace{2m}_{\text{אדום}}=n+2m\ \ge\ n+2m . לכן ⟨G,n+2m⟩∈MAXCUT\langle G,n+2m\rangle\in\mathrm{MAXCUT}.

MAXCUT ∈ ⟹ 3NAE ∈

נניח ⟨G,n+2m⟩∈MAXCUT\langle G,n+2m\rangle\in\mathrm{MAXCUT}; אזי קיימת U⊆VU\subseteq V שהחתך המושרה על ידיה מכיל לפחות n+2mn+2m קשתות.

צעד 1 — חסם עליון על האדומות. כאן דרוש טיעון הפוך מכל השאר: עד כה "לפחות", כעת "לכל היותר". תהי CC פסוקית והמשולש שלה. לא משנה מהי UU: או ששלושת קודקודי המשולש באותו צד (אז 00 חוצות), או שהם מתחלקים 22–11 (אז בדיוק 22). לכן לכל פסוקית לכל היותר 22 קשתות אדומות בחתך, ובסך הכול לכל היותר 2m2m.

צעד 2 — כפיית הכחולות. בחתך יש לפחות n+2mn+2m קשתות ומהן לכל היותר 2m2m אדומות, ולכן לפחות nn כחולות. אבל בגרף יש בסך הכול בדיוק nn קשתות כחולות. לכן בחתך יש בדיוק nn כחולות — כולן. מכאן שלכל ii הקשת xixi‾x_i\overline{x_i} בחתך, כלומר בדיוק אחד מבין xi,xi‾x_i,\overline{x_i} ב-UU.

צעד 3 — ההצבה. נגדיר V(ℓ)=1  ⟺  ℓ∈UV(\ell)=1\iff\ell\in U לכל קודקוד ליטרל. מצעד 2 ההגדרה עקבית ומוגדרת היטב: מכל זוג {xi,xi‾}\{x_i,\overline{x_i}\} בדיוק אחד ב-UU, ולכן בדיוק אחד מקבל 11 והשני 00.

צעד 4 — כל פסוקית מסופקת במובן NAE. בחתך בדיוק nn כחולות, ולכן מתוך לפחות n+2mn+2m קשתות, לפחות 2m2m אדומות. מצד שני כל פסוקית תורמת לכל היותר 22; אילו פסוקית אחת תרמה פחות מ-22, הסכום היה קטן מ-2m2m — סתירה. לכן כל פסוקית תורמת בדיוק שתיים.

תהי CC פסוקית. אילו שלושת קודקודיה היו באותו צד היא הייתה תורמת 00. לכן היא מתחלקת: קיים ℓ∈C\ell\in C עם ℓ∈U\ell\in U, כלומר V(ℓ)=1V(\ell)=1, וקיים ℓ′∈C\ell'\in C עם ℓ′∉U\ell'\notin U, כלומר V(ℓ′)=0V(\ell')=0. זו בדיוק ההגדרה של סיפוק במובן NAE. מכיוון ש-CC שרירותית, φ∈3NAE\varphi\in\mathrm{3NAE}.

סיבוכיות הרדוקציה

זמןO(|φ|)
מקוםO(|φ|)
גודל הפלטO(|φ|)

ליניארי, וזה נקודת העניין: קשתות הפסוקיות הן בדיוק שלוש לפסוקית, כי הנוסחה 3CNF. סך הקשתות האדומות 3m≤3∣φ∣3m\le3|\varphi|. לו הפסוקיות היו באורך שרירותי, מספר הקשתות למשולש היה ריבועי באורך הפסוקית — ואז זה לא היה ליניארי.

מה זה קונה

MAXCUT\mathrm{MAXCUT} היא NP-קשה, וגם ב-NP\mathrm{NP} (העד הוא UU, והמאמת סופר קשתות עם ∣e∩U∣=1|e\cap U|=1), ולכן NP-שלמה. הגרסה על גרפים פשוטים נשארת קשה — ראו MAXCUT-MULTI≤pMAXCUT-SIMPLE\mathrm{MAXCUT\text{-}MULTI}\le_p\mathrm{MAXCUT\text{-}SIMPLE}.

מלכודות

  • למה דווקא 33. הקסם הוא שמשולש תורם לחתך בדיוק 22 או בדיוק 00 — אין אפשרויות אחרות. בפסוקית בגודל 44 או 55 הקודקודים החופשיים מתחלקים בכמה דרכים ומספר הקשתות החוצות אינו נקבע חד-משמעית; החסם העליון בצעד 1 נעשה רופף והכפייה בצעד 2 נשברת.

  • אין "ללכת אחורה ברדוקציה". בכיוון ⇐\Leftarrow נטו סטודנטים לחשוב שצריך לבנות נוסחה מגרף. לא: התחלנו מנוסחה φ\varphi שקיבלנו, ממנה בנה האלגוריתם את GG, ולכן שניהם בידינו ואנחנו יודעים בדיוק איך GG נראה. אין שום שלב שבו נאמר "יהי GG גרף".

השרשרת

נשענת על

משמשת בהמשך ל

מאיפה זה נקרא

  • שיעור 10משפט 4: 3NAE≤pMAXCUT\mathrm{3NAE} \le_p \mathrm{MAXCUT}, ולכן MAXCUT\mathrm{MAXCUT} היא NP-קשה
  • תרגיל מודרךmax-cut-multi-nae-reduction
  • 2026"הוכיחו כי האלגוריתם המתואר מהווה רדוקציית זמן פולינומי מ-3-NAE ל-Max-Cut-Multi" — הבנייה ניתנת במלואה בגוף השאלה.