אותו גרף, המשלים של הקבוצה

IS ≤p VC

IS≤pVC\mathrm{IS}\le_p\mathrm{VC}, ולכן VC\mathrm{VC} היא NP-שלמה.

הבנייה

על קלט ⟨G,k⟩\langle G,k\rangle עם G=(V,E)G=(V,E):

  1. החזר ⟨G, ∣V∣−k⟩\langle G,\ |V|-k\rangle.

זהו. אותו גרף בדיוק, רק המספר משתנה.

הבנייה נשענת על הבחנה אחת, שהיא הלב של השיעור: לכל U⊆VU\subseteq V, U כיסוי בקודקודים של G  ⟺  V∖U בלתי תלויה ב-G.U \text{ כיסוי בקודקודים של } G \iff V\setminus U \text{ בלתי תלויה ב-} G . שתי הטענות אומרות בדיוק את אותו דבר על כל קשת: "לכל קשת יש קצה ב-UU" שקול ל"אין קשת ששני קצותיה מחוץ ל-UU".

המחשה

בנייה מודרכת

קבוצה בלתי תלויה → כיסוי קודקודים

שלב 1 מתוך 6
קבוצה בלתי־תלויה לכיסוי קודקודים דרך משלים קבוצהקבוצה בלתי־תלויה במסלול מושלמת לכיסוי קודקודים בעוד שהסף הופך ל־n פחות k.אותו גרף G1234

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

IS ∈ ⟹ VC ∈

נניח ⟨G,k⟩∈IS\langle G,k\rangle\in\mathrm{IS}. אזי קיימת U⊆VU\subseteq V בלתי תלויה ב-GG עם ∣U∣=k|U|=k. לפי ההבחנה, V∖UV\setminus U היא כיסוי בקודקודים של GG, וגודלה ∣V∖U∣=∣V∣−∣U∣=∣V∣−k.|V\setminus U|=|V|-|U|=|V|-k . לכן קיים ב-GG כיסוי בקודקודים בגודל ∣V∣−k|V|-k, ומכאן ⟨G,∣V∣−k⟩∈VC\langle G,|V|-k\rangle\in\mathrm{VC}.

VC ∈ ⟹ IS ∈

נניח ⟨G,∣V∣−k⟩∈VC\langle G,|V|-k\rangle\in\mathrm{VC}. אזי קיים כיסוי בקודקודים U⊆VU\subseteq V של GG עם ∣U∣=∣V∣−k|U|=|V|-k. לפי ההבחנה, V∖UV\setminus U בלתי תלויה ב-GG, וגודלה ∣V∖U∣=∣V∣−(∣V∣−k)=k.|V\setminus U|=|V|-(|V|-k)=k . לכן ⟨G,k⟩∈IS\langle G,k\rangle\in\mathrm{IS}.

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

זמןO(|⟨G,k⟩|²)
מקוםO(|⟨G,k⟩|)
גודל הפלט|⟨G,k⟩| + O(1)

האלגוריתם מעתיק את הקלט ומבצע חיסור יחיד. במודל RAM זה אפילו זמן קבוע; במכונת טיורינג יש לבצע חיסור בינארי על מספר שאורכו לכל היותר אורך הקלט, כלומר O(∣⟨G,k⟩∣2)O(|\langle G,k\rangle|^2) בגישה נאיבית. בכל מקרה פולינומי, וזה כל מה שנדרש.

מה זה קונה

VC\mathrm{VC} היא NP-קשה, ומכיוון שהיא גם ב-NP\mathrm{NP} (העד הוא UU; המאמת בודק ∣U∣≤k|U|\le k ועובר על הקשתות) — היא NP-שלמה. משם היא הופכת לנקודת המוצא של VC≤pSUBSET-SUM\mathrm{VC}\le_p\mathrm{SUBSET\text{-}SUM}, VC≤pDS\mathrm{VC}\le_p\mathrm{DS} ו-VC≤p3H-VC\mathrm{VC}\le_p\mathrm{3H\text{-}VC}.

מלכודות

  • "בדיוק kk" מול "לפחות/לכל היותר kk". ההוכחה משתמשת בגודל בדיוק kk ובגודל בדיוק ∣V∣−k|V|-k, בעוד ההגדרות אומרות "לפחות kk" ב-IS\mathrm{IS} ו"לכל היותר kk" ב-VC\mathrm{VC}. זה חוקי: לכיסוי אפשר תמיד להוסיף קודקודים (הוספה אינה מקלקלת כיסוי), ומקבוצה בלתי תלויה אפשר תמיד להוציא (תת-קבוצה של בלתי תלויה היא בלתי תלויה). שימו לב שהכיווניות הפוכה בין שתי הבעיות — ובכל בעיה חדשה יש לשאול מחדש אם השקילות הזאת מתקיימת.

  • "למה לא הזהות?" — שתי סיבות. הכיוון: אנחנו רוצים רדוקציה אל VC\mathrm{VC}, לא ממנה, כי המטרה היא להוכיח ש-VC\mathrm{VC} קשה. והמספר: הגרף אכן נשאר אותו גרף, אבל kk חייב להשתנות, בדיוק בגלל הקשר בין גודל קבוצה לגודל המשלים שלה.

השרשרת

מאיפה זה נקרא

  • שיעור 10משפט 2: IS≤pVC\mathrm{IS} \le_p \mathrm{VC}, ולכן VC\mathrm{VC} היא NP-שלמה
  • תרגיל מודרךindependent-set-to-vertex-cover
  • 2026 '2 מועד 2יחסי ≤p\le_p בין גרסאות "בדיוק", "לפחות" ו"מינימלי" של כיסוי בקודקודים.