הגרף המשלים

IS ≤p CLIQUE

IS≤pCLIQUE\mathrm{IS}\le_p\mathrm{CLIQUE}: אלגוריתם פולינומי ל-CLIQUE\mathrm{CLIQUE} פותר גם את IS\mathrm{IS}.

הבנייה

על קלט ⟨G,K⟩\langle G,K\rangle כאשר G=(V,E)G=(V,E) ו-K∈NK\in\mathbb{N}:

  1. בנה את הגרף המשלים Gˉ=(V,Eˉ)\bar G=(V,\bar E), כאשר Eˉ={xy ∣ x,y∈V, x≠y}∖E=(V2)∖E.\bar E=\Big\{xy\ \Big|\ x,y\in V,\ x\ne y\Big\}\setminus E=\binom{V}{2}\setminus E .
  2. החזר ⟨Gˉ,K⟩\langle\bar G,K\rangle.

המספר KK נשאר ללא שינוי; רק הגרף מתהפך.

המחשה

בנייה מודרכת

קבוצה בלתי תלויה → קליקה

שלב 1 מתוך 6
קבוצה בלתי־תלויה לקליקה דרך משלים גרףמסלול על ארבעה קודקודים מושלם; זוג בלתי־תלוי הופך לקליקה בעוד שהסף נשאר k.מקור G1234משלים Ḡ1234
קשת מקור (נמחקת)קשת משלים (נוספת)

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

IS ∈ ⟹ CLIQUE ∈

נניח ⟨G,K⟩∈IS\langle G,K\rangle\in\mathrm{IS}. אזי קיימת U⊆VU\subseteq V עם ∣U∣=K|U|=K שהיא בלתי תלויה ב-GG.

נתבונן באותה UU בתוך Gˉ\bar G — מותר, שכן לשני הגרפים אותה קבוצת קודקודים VV. אז U⊆VU\subseteq V ו-∣U∣=K|U|=K. נותר להראות ש-UU קליקה ב-Gˉ\bar G: יהיו x,y∈Ux,y\in U שונים. מכיוון ש-UU בלתי תלויה ב-GG מתקיים xy∉Exy\notin E, ולפי הגדרת המשלים כל זוג קודקודים שונים שאינו קשת ב-EE הוא קשת ב-Eˉ\bar E; לכן xy∈Eˉxy\in\bar E. מכאן ש-UU קליקה ב-Gˉ\bar G, כלומר ⟨Gˉ,K⟩∈CLIQUE\langle\bar G,K\rangle\in\mathrm{CLIQUE}.

CLIQUE ∈ ⟹ IS ∈

נניח ⟨Gˉ,K⟩∈CLIQUE\langle\bar G,K\rangle\in\mathrm{CLIQUE}. אזי קיימת U⊆VU\subseteq V עם ∣U∣=K|U|=K שהיא קליקה ב-Gˉ\bar G (חובה לומר באיזה גרף — יש כאן שניים).

נתבונן באותה UU בתוך GG. אז U⊆VU\subseteq V ו-∣U∣=K|U|=K. יהיו x,y∈Ux,y\in U שונים. מכיוון ש-UU קליקה ב-Gˉ\bar G מתקיים xy∈Eˉxy\in\bar E, ולפי הגדרת המשלים xy∉Exy\notin E. מכאן ש-UU בלתי תלויה ב-GG, כלומר ⟨G,K⟩∈IS\langle G,K\rangle\in\mathrm{IS}.

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

זמןO(|V|²) with an adjacency matrix
מקוםO(|V|²)
גודל הפלטO(|V|²)

בייצוג מטריצת שכנויות בדיקת "האם xy∈Exy\in E" עולה O(1)O(1), ולכן מעבר על כל (∣V∣2)\binom{|V|}{2} הזוגות עולה O(∣V∣2)O(|V|^2). בייצוג רשימת קשתות, סריקה עבור כל זוג נותנת O(∣V∣2⋅∣E∣)O(|V|^2\cdot|E|). שניהם פולינומיים, ולכן לצורך הטענה אין ביניהם הבדל — וזו בדיוק הסיבה שמותר להתרשל בפרטי המימוש.

מה זה קונה

IS\mathrm{IS} אינה קשה יותר מ-CLIQUE\mathrm{CLIQUE}. יחד עם הרדוקציה ההפוכה מתקבל ששתי הבעיות שקולות תחת ≤p\le_p: אחת מהן ב-P\mathrm P אם ורק אם השנייה ב-P\mathrm P, ואחת מהן NP-שלמה אם ורק אם השנייה NP-שלמה.

מלכודות

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

  • "נמחק את כל הקשתות" — אז הפלט לעולם אינו ב-CLIQUE\mathrm{CLIQUE} (עבור K≥2K\ge2), ללא תלות בקלט; זה הורס את כיוון ה"אם". "נוסיף את כל הקשתות" — אז הפלט תמיד ב-CLIQUE\mathrm{CLIQUE}; זה הורס את הכיוון השני. כל פעולה שמייצרת פלט קבוע-מראש מקלקלת אחד הכיוונים, ולכן צריך פעולה שמחליפה ולא כזו שמאפסת.

השרשרת

משמשת בהמשך ל

מאיפה זה נקרא