UHC ∈ ⟹ TSP ∈
נניח ; אז קיים ב- מעגל המילטוני . מכיוון ש-, אותו עצמו הוא מעגל בגרף , והוא המילטוני גם שם — קבוצת הקודקודים לא השתנתה, רק הוספנו קשתות.
מעגל המילטוני על קודקודים מכיל בדיוק קשתות, וכל אחת מהן היא קשת של ולכן משקלה . לכן ומכאן .
, ולכן היא NP-קשה (ועם השייכות ל-NP — NP-שלמה).
אלגוריתם . על קלט — גרף פשוט לא מכוון:
למה דווקא מ-. אפשר היה לצאת גם ממסלול המילטוני — יש רדוקציות בין כל הגרסאות — אבל שואלת על מעגל בגרף לא מכוון, ולכן היא הבעיה הקרובה ביותר. אותו עיקרון חוזר: להתחיל מהבעיה הקרובה.
הערה על שלב 1. ברגע שנקבע , קיים גרף מלא יחיד עליו; אין כאן שום בחירה. בפועל שלב 1 פירושו "לכתוב את כל הקשתות", כולל אלה שלא היו ב-.
נניח ; אז קיים ב- מעגל המילטוני . מכיוון ש-, אותו עצמו הוא מעגל בגרף , והוא המילטוני גם שם — קבוצת הקודקודים לא השתנתה, רק הוספנו קשתות.
מעגל המילטוני על קודקודים מכיל בדיוק קשתות, וכל אחת מהן היא קשת של ולכן משקלה . לכן ומכאן .
בהרצאה ניתנו שתי גרסאות של הכיוון השני, במכוון — כדי להראות שאין שום קדושה בשאלה אם מוכיחים "שייך שייך" או "לא שייך לא שייך". שתיהן נכונות.
גרסה א (בדרך השלילה). נניח , ויהי מעגל המילטוני כלשהו ב- (כזה קיים, שהרי מלא). ל- יש בדיוק קשתות ומשקל כל אחת לפחות . כמו כן ב- קיימת קשת שאינה ב- — אחרת כל קשתותיו היו ב- ו- היה מעגל המילטוני ב-, בסתירה להנחה. משקלה של אותה קשת הוא . לכן זה נכון לכל מעגל המילטוני ב-, ולכן אין מעגל במשקל , כלומר .
גרסה ב (ישירה, ושתי שורות קצרה יותר). נניח ; אז קיים מעגל המילטוני ב- עם . מכיוון שמשקל כל קשת הוא לפחות ול- יש בדיוק קשתות, מתקיים . משתי אי-השוויונות בדיוק. כעת הוא סכום של מחוברים שכל אחד וסכומם בדיוק ; אילו מחובר אחד היה הסכום היה עולה על . לכן משקל כל אחת מ- הקשתות הוא בדיוק , ולפי הגדרת כל אחת מהן ב-. לכן הוא מעגל המילטוני ב-, כלומר .
זהו ניתוח שדורש זהירות. העבודה היא מעבר על כל קשתות וכתיבת משקל לכל אחת, כלומר . הפיתוי הוא לומר "זה ליניארי" — אבל ליניארי במה? זה ליניארי בגודל הגרף החדש, ואת זמן הריצה חייבים לחסום בגודל הקלט.
הבעיה: איננו יודעים כמה קשתות היו ב-; תיאורטית ייתכן שהיו מעט מאוד, אפילו אפס. לכן אי אפשר לחסום את באמצעות . מה שכן ידוע בוודאות הוא , ומספר הקודקודים אינו משתנה ברדוקציה וחסום בגודל הקלט. לכן זמן הריצה הוא — ריבועי בגודל הקלט.
היא NP-שלמה. ובונוס: משקלים בערכים מקיימים את אי-שוויון המשולש, שכן לכל מתקיים . לכן אותה רדוקציה בדיוק מוכיחה ש- נשארת NP-קשה גם בגרסה המטרית — וזו הגרסה שעבורה קיים אלגוריתם קירוב (עץ פורש כפול, יחס ).
למה ולא . הבנייה הטבעית הראשונה שעלתה בכיתה הייתה משקל לקשתות המקוריות ו- לחדשות, עם . הבנייה הזאת נכונה לחלוטין והיא עובדת — אבל היא מפסידה את הבונוס: עם משקלי ו- אי-שוויון המשולש נשבר (), ולכן היא אינה מוכיחה דבר על הגרסה המטרית.
"ליניארי" בגודל הפלט אינו "ליניארי" בגודל הקלט. זו הנקודה שהמרצה עמד עליה באריכות: אי אפשר לחסום את באמצעות , כי ייתכן ש- היה כמעט ריק מקשתות. החסימה חייבת לעבור דרך .