ריפוד פסוקיות קצרות

3SAT ≤p 3SAT=

תהי 3SAT=\mathrm{3SAT}^{=} הבעיה שבה כל פסוקית מכילה בדיוק שלושה ליטרלים. אז 3SAT≤p3SAT=\mathrm{3SAT}\le_p\mathrm{3SAT}^{=}, ולכן גם 3SAT=\mathrm{3SAT}^{=} היא NP-שלמה.

הבנייה

על נוסחת 3CNF φ\varphi, נטפל בכל פסוקית לפי אורכה, עם משתנים חדשים y,y′y,y' לכל פסוקית בנפרד:

  • אורך 3: משאירים כמו שהיא.
  • אורך 2, C=ℓ1∨ℓ2C=\ell_1\vee\ell_2: מחליפים ב-(ℓ1∨ℓ2∨y)∧(ℓ1∨ℓ2∨yˉ)(\ell_1\vee\ell_2\vee y)\wedge(\ell_1\vee\ell_2\vee\bar y).
  • אורך 1, C=ℓ1C=\ell_1: מחליפים ב- (ℓ1∨y∨y′)∧(ℓ1∨y∨yˉ′)∧(ℓ1∨yˉ∨y′)∧(ℓ1∨yˉ∨yˉ′).(\ell_1\vee y\vee y')\wedge(\ell_1\vee y\vee\bar y')\wedge(\ell_1\vee\bar y\vee y')\wedge(\ell_1\vee\bar y\vee\bar y').

המחשה

בנייה מודרכת

3SAT → בדיוק-3SAT

שלב 1 מתוך 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 ∈ ⟹ 3SAT= ∈

נניח ש-φ\varphi ספיקה על ידי vv. נרחיב את vv למשתני העזר באופן שרירותי (נאמר y=y′=0y=y'=0). כל פסוקית מקורית CC מסופקת על ידי vv, כלומר קיים בה ליטרל ℓ\ell עם v(ℓ)=1v(\ell)=1; אותו ℓ\ell מופיע בכל אחת מהפסוקיות שהחליפו את CC, ולכן כולן מסופקות ללא תלות בערכי y,y′y,y'. לכן הפלט ספיק.

3SAT= ∈ ⟹ 3SAT ∈

נניח שהפלט ספיק על ידי vv, ונצמצם את vv למשתני φ\varphi. תהי CC פסוקית של φ\varphi; נראה שהיא מסופקת.

  • אם ∣C∣=3|C|=3 היא מופיעה כמות שהיא בפלט ולכן מסופקת.
  • אם C=ℓ1∨ℓ2C=\ell_1\vee\ell_2: נניח בשלילה v(ℓ1)=v(ℓ2)=0v(\ell_1)=v(\ell_2)=0. אחד מבין y,yˉy,\bar y מקבל 00 תחת vv, ולכן אחת משתי הפסוקיות (ℓ1∨ℓ2∨y)(\ell_1\vee\ell_2\vee y), (ℓ1∨ℓ2∨yˉ)(\ell_1\vee\ell_2\vee\bar y) אינה מסופקת — סתירה.
  • אם C=ℓ1C=\ell_1: נניח בשלילה v(ℓ1)=0v(\ell_1)=0. הזוג (v(y),v(y′))(v(y),v(y')) הוא אחד מארבעת הצירופים, ולכל צירוף קיימת בדיוק אחת מארבע הפסוקיות שבה שני ליטרלי העזר מקבלים 00; אותה פסוקית אינה מסופקת — סתירה.

לכן vv מספקת כל פסוקית של φ\varphi, כלומר φ\varphi ספיקה.

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

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

מעבר יחיד על הפסוקיות. הפלט גדל פי 44 לכל היותר, במקרה הקיצוני שבו כל הפסוקיות באורך 11.

מה זה קונה

שתי ההגדרות של 3SAT — "לכל היותר שלושה" ו"בדיוק שלושה" — שקולות תחת ≤p\le_p, ולכן אפשר להשתמש בהנחת הנרמול "בכל פסוקית בדיוק שלושה ליטרלים שונים" בלי לאבד כלליות. הרדוקציות 3NAE≤pMAXCUT\mathrm{3NAE}\le_p\mathrm{MAXCUT} ו-3NAE≤p3COL\mathrm{3NAE}\le_p\mathrm{3COL} נשענות על ההנחה הזאת.

מלכודות

  • משתני העזר חייבים להיות חדשים לכל פסוקית בנפרד. אילו אותו yy שירת שתי פסוקיות, כיוון ⇐\Leftarrow היה נשבר: הטיעון "אחד מבין y,yˉy,\bar y מקבל 00" הופך לתלות בין פסוקיות שאין עליה שליטה.

השרשרת

נשענת על

מאיפה זה נקרא

  • שיעור 8משפט 7 (השלמה): הווריאנט "בדיוק 3 ליטרלים"
  • השיעור מציין במפורש שהטענה הזאת אינה בסיכום ואינה בהקלטה — היא נכתבה בקובץ השיעור כהשלמה, מפני שההגדרה "בדיוק שלושה" נפוצה בספרות ומפני שהיא מצדיקה את הנחת הנרמול שבה משתמשים בשיעור 10.