השלמה לגרף מלא, משקלים $1$ ו-$2$, תקציב $|V|$

UHC ≤p TSP

UHC≤pTSPUHC\le_p TSP, ולכן TSPTSP היא NP-קשה (ועם השייכות ל-NP — NP-שלמה).

הבנייה

אלגוריתם R′′R''. על קלט G=(V,E)G=(V,E) — גרף פשוט לא מכוון:

  1. יהי G^=(V,E^)\hat G=(V,\hat E) הגרף המלא על VV.
  2. הגדר w:E^→[0,∞)w:\hat E\to[0,\infty) על ידי w(e)={1e∈E2e∉Ew(e)=\begin{cases}1 & e\in E\\ 2 & e\notin E\end{cases}
  3. החזר (G^,  w,  ∣V∣)\left(\hat G,\;w,\;|V|\right).

למה דווקא מ-UHCUHC. אפשר היה לצאת גם ממסלול המילטוני — יש רדוקציות בין כל הגרסאות — אבל TSPTSP שואלת על מעגל בגרף לא מכוון, ולכן UHCUHC היא הבעיה הקרובה ביותר. אותו עיקרון חוזר: להתחיל מהבעיה הקרובה.

הערה על שלב 1. ברגע שנקבע VV, קיים גרף מלא יחיד עליו; אין כאן שום בחירה. בפועל שלב 1 פירושו "לכתוב את כל הקשתות", כולל אלה שלא היו ב-GG.

המחשה

בנייה מודרכת

מעגל המילטוני → TSP

שלב 1 מתוך 6
מעגל המילטוני ל־TSP על חמישה קודקודיםמחומש של חמש קשתות מקוריות בעלות 1 מושלם על ידי כוכב מחומש של חמישה אלכסונים בעלות 2; המחומש עצמו הוא מסע בעלות חמש, בדיוק גובה התקציב B = n = 5.גרף המקור G — 5 קודקודים, 5 קשתות12345
קשת מקורית של G — עלות 1

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

UHC ∈ ⟹ TSP ∈

נניח G∈UHCG\in UHC; אז קיים ב-GG מעגל המילטוני CC. מכיוון ש-E⊆E^E\subseteq\hat E, אותו CC עצמו הוא מעגל בגרף G^\hat G, והוא המילטוני גם שם — קבוצת הקודקודים לא השתנתה, רק הוספנו קשתות.

מעגל המילטוני על ∣V∣|V| קודקודים מכיל בדיוק ∣V∣|V| קשתות, וכל אחת מהן היא קשת של EE ולכן משקלה 11. לכן w(C)=∣V∣⋅1=∣V∣≤∣V∣,w(C)=|V|\cdot1=|V|\le|V| , ומכאן (G^,w,∣V∣)∈TSP(\hat G,w,|V|)\in TSP.

TSP ∈ ⟹ UHC ∈

בהרצאה ניתנו שתי גרסאות של הכיוון השני, במכוון — כדי להראות שאין שום קדושה בשאלה אם מוכיחים "שייך ⇒\Rightarrow שייך" או "לא שייך ⇒\Rightarrow לא שייך". שתיהן נכונות.

גרסה א (בדרך השלילה). נניח G∉UHCG\notin UHC, ויהי CC מעגל המילטוני כלשהו ב-G^\hat G (כזה קיים, שהרי G^\hat G מלא). ל-CC יש בדיוק ∣V∣|V| קשתות ומשקל כל אחת לפחות 11. כמו כן ב-CC קיימת קשת שאינה ב-EE — אחרת כל קשתותיו היו ב-EE ו-CC היה מעגל המילטוני ב-GG, בסתירה להנחה. משקלה של אותה קשת הוא 22. לכן w(C)≥(∣V∣−1)⋅1+2=∣V∣+1>∣V∣.w(C)\ge(|V|-1)\cdot1+2=|V|+1>|V| . זה נכון לכל מעגל המילטוני ב-G^\hat G, ולכן אין מעגל במשקל ≤∣V∣\le|V|, כלומר (G^,w,∣V∣)∉TSP(\hat G,w,|V|)\notin TSP.

גרסה ב (ישירה, ושתי שורות קצרה יותר). נניח (G^,w,∣V∣)∈TSP(\hat G,w,|V|)\in TSP; אז קיים מעגל המילטוני CC ב-G^\hat G עם w(C)≤∣V∣w(C)\le|V|. מכיוון שמשקל כל קשת הוא לפחות 11 ול-CC יש בדיוק ∣V∣|V| קשתות, מתקיים w(C)≥∣V∣w(C)\ge|V|. משתי אי-השוויונות w(C)=∣V∣w(C)=|V| בדיוק. כעת w(C)w(C) הוא סכום של ∣V∣|V| מחוברים שכל אחד ≥1\ge1 וסכומם בדיוק ∣V∣|V|; אילו מחובר אחד היה >1>1 הסכום היה עולה על ∣V∣|V|. לכן משקל כל אחת מ-∣V∣|V| הקשתות הוא בדיוק 11, ולפי הגדרת ww כל אחת מהן ב-EE. לכן CC הוא מעגל המילטוני ב-GG, כלומר G∈UHCG\in UHC.

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

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

זהו ניתוח שדורש זהירות. העבודה היא מעבר על כל קשתות E^\hat E וכתיבת משקל לכל אחת, כלומר Θ(∣E^∣)\Theta(|\hat E|). הפיתוי הוא לומר "זה ליניארי" — אבל ליניארי במה? זה ליניארי בגודל הגרף החדש, ואת זמן הריצה חייבים לחסום בגודל הקלט.

הבעיה: איננו יודעים כמה קשתות היו ב-GG; תיאורטית ייתכן שהיו מעט מאוד, אפילו אפס. לכן אי אפשר לחסום את ∣E^∣|\hat E| באמצעות ∣E∣|E|. מה שכן ידוע בוודאות הוא ∣E^∣=(∣V∣2)≤∣V∣2|\hat E|=\binom{|V|}{2}\le|V|^2, ומספר הקודקודים אינו משתנה ברדוקציה וחסום בגודל הקלט. לכן זמן הריצה הוא O(∣V∣2)=O(∣x∣2)O(|V|^2)=O(|x|^2) — ריבועי בגודל הקלט.

מה זה קונה

TSPTSP היא NP-שלמה. ובונוס: משקלים בערכים {1,2}\{1,2\} מקיימים את אי-שוויון המשולש, שכן לכל u,x,vu,x,v מתקיים w(u,v)≤2=1+1≤w(u,x)+w(x,v)w(u,v)\le2=1+1\le w(u,x)+w(x,v). לכן אותה רדוקציה בדיוק מוכיחה ש-TSPTSP נשארת NP-קשה גם בגרסה המטרית — וזו הגרסה שעבורה קיים אלגוריתם קירוב (עץ פורש כפול, יחס 22).

מלכודות

  • למה {1,2}\{1,2\} ולא {0,1}\{0,1\}. הבנייה הטבעית הראשונה שעלתה בכיתה הייתה משקל 00 לקשתות המקוריות ו-11 לחדשות, עם K=0K=0. הבנייה הזאת נכונה לחלוטין והיא עובדת — אבל היא מפסידה את הבונוס: עם משקלי 00 ו-11 אי-שוויון המשולש נשבר (1≰0+01\not\le0+0), ולכן היא אינה מוכיחה דבר על הגרסה המטרית.

  • "ליניארי" בגודל הפלט אינו "ליניארי" בגודל הקלט. זו הנקודה שהמרצה עמד עליה באריכות: אי אפשר לחסום את ∣E^∣|\hat E| באמצעות ∣E∣|E|, כי ייתכן ש-GG היה כמעט ריק מקשתות. החסימה חייבת לעבור דרך ∣V∣|V|.

השרשרת

משמשת בהמשך ל

מאיפה זה נקרא

  • שיעור 12משפט 8: UHC≤pTSPUHC \le_p TSP, ולכן TSPTSP היא NP-hard
  • תרגיל מודרךhamiltonian-cycle-to-tsp
  • 2026 '1 מועד 1אלגוריתם המחזיר גרף שלם עם משקלים xx לקשתות קיימות ו-yy לחסרות — איזו טענה על הרדוקציה נכונה.