Wie kann ich eine Lösung für das Problem des Handlungsreisenden in polynomialer Zeit überprüfen?


31

Somit ist das TSP-Entscheidungsproblem (Travelling Salesman Problem) NP-vollständig .

Aber ich verstehe nicht, wie ich überprüfen kann, ob eine gegebene Lösung für TSP in der Polynomzeit tatsächlich optimal ist, da es keine Möglichkeit gibt, die optimale Lösung in der Polynomzeit zu finden (was liegt daran, dass das Problem nicht in P liegt)?

Kann ich sehen, dass die Überprüfung tatsächlich in polynomialer Zeit durchgeführt werden kann?

Antworten:


20

wissen wir nicht , ob sich TSP in . Es ist möglich, dass es in polynomialer Zeit gelöst werden kann, auch wenn die allgemeine Annahme lautet, dass . Erinnern Sie sich jetzt daran, was es bedeutet, dass ein Problem -hard und -complete ist, siehe zum Beispiel meine Antwort hier . Ich glaube, Ihre Quelle der Verwirrung ergibt sich aus den Definitionen: Ein -schweres Problem liegt nicht unbedingt in .PPNPNPNPNPNP

Wie Sie und die Wikipedia - Seite Zustände verknüpfen, das Entscheidungsproblem ist -komplette: die Kosten und eine ganze Zahl gegeben , entscheiden , ob es eine Tour billiger ist , als . Eine Möglichkeit, das Problem in zu sehen, besteht darin, zu sehen, dass es bei gegebener Lösung einfach ist, in polynomialer Zeit zu überprüfen, ob die Lösung billiger als . Wie kannst du das tun? Folgen Sie einfach der angegebenen Tour, notieren Sie die Gesamtkosten und vergleichen Sie die Gesamtkosten mit .NPxxNPxx


"Folgen Sie einfach der angegebenen Tour, notieren Sie die Gesamtkosten und vergleichen Sie die Gesamtkosten mit x." -> Ja, aber es gibt eine exponentielle Anzahl von Touren, die überprüft werden müssen!
Lazer

2
Ich war nur ein bisschen zu langsam, wie es scheint. ;-)
Niel de Beaudrap

3
@ Lazer Nein, es gibt genau eine Tour, die überprüft werden muss. Sie erhalten eine Tour und zeichnen deren Länge auf. Ist es kleiner als , wird yes ausgegeben , andernfalls no . x
Juho

"Entscheide, ob es eine Tour gibt" bedeutet auf jeden Fall, dass wir keine Tour bekommen. Was vermisse ich?
Lazer

3
@Lazer Nein, im Problem erhalten Sie eine gewichtete Grafik und einen Kostenvoranschlag. Das Zertifikat ist eine Tour. Eine alternative Erklärung finden Sie in der Antwort von Niel. Genau wie im Beispiel im Wiki für SUBSET-SUM erhalten wir keine Null, sondern eine bestimmte Teilmenge als Zertifikat.
Juho

34

Der springende Punkt ist, dass Sie das Entscheidungsproblem berücksichtigen müssen :

Problem des Handlungsreisenden (Entscheidungsversion). Gibt es bei einem gewichteten Graphen G und Zielkosten C einen Hamilton-Zyklus in G, dessen Gewicht höchstens C beträgt ?

Für ein 'Ja'-Beispiel ist das Zertifikat nur ein Hamilton-Zyklus, dessen Gewicht höchstens C beträgt . Wenn Sie dieses Problem effizient lösen könnten, könnten Sie die Kosten einer Minimaltour durch binäre Suche ermitteln, beginnend mit dem Gewicht des gesamten Netzwerks als Obergrenze.


3

Sie denken wahrscheinlich an das Problem, festzustellen, ob eine bestimmte Lösung für den TSP die beste Lösung ist. Es ist jedoch keine polynomielle Lösung dafür bekannt, was bedeutet, dass dieses Problem in NP-schwer, aber nicht unbedingt in NP-vollständig vorliegt.

Bei dem TSP- Entscheidungsproblem geht es tatsächlich darum, zu bestimmen, ob das Gewicht einer Lösung in einem Graphen Ghöchstens C(wie in Niels Antwort besser erklärt) kostet , was mit Sicherheit in polynomieller Zeit überprüfbar ist.


5
Sorry für die Pedanterie, aber TSP ist nicht NP-schwer, da es Touren gibt. Beispielsweise wird in P sortiert, obwohl esmögliche Permutationen auch. Riesige oder schnell wachsende Suchräume bedeuten nicht immer Härte. O(n!)n!
Juho

@Juho Es ist möglich , zu überprüfen, ob eine Sequenz sortiert, indem man einfach , dass die Überprüfung . Um jedoch zu wissen, dass etwas die BESTE Lösung für TSP ist, muss bekannt sein, dass es sich bei den Kosten um die Mindestkosten handelt, für die die Kenntnis aller anderen Kosten von Natur aus erforderlich ist. n0<=n1<=...
Casey Kuball

4
Nein, Sie können das Optimum erzielen, auch ohne die Länge aller anderen Touren zu berechnen. Und ja, es ist möglich zu beweisen, dass dies tatsächlich das Optimum ist, ohne alle anderen Touren zu berechnen. Als Beispiel betrachten wir branch & bound.
Juho

7
Ich sage nur, dass große Suchräume nicht unbedingt bedeuten, dass das Problem schwierig ist. Auch wenn wir zum Beispiel keinen besseren Algorithmus als Brute-Force kennen, der alle Möglichkeiten auflistet, heißt das nicht, dass es der einzige Algorithmus auf dem Markt ist. Die dynamische Programmierung ist auch hier ein gutes Beispiel: Der Held-Karp-Algorithmus ist ein exakter Algorithmus für TSP, der in läuft . Entschuldigung, das ist wohl nur ein Trottel, aber ich wollte nur eine Erinnerung hinzufügen :)O(n22n)
Juho

@Juho guter Punkt. Ich habe die Antwort so aktualisiert, dass Brute Force nicht mehr als einzige Option angezeigt wird (nur, dass es keine polynomiellen Lösungen gibt).
Casey Kuball

2

Sie können zeigen, dass es bei einem Orakel, das das Entscheidungsproblem (siehe andere Antworten) in Polynomzeit löst, optimal ist, indem Sie abfragen, ob es eine kürzere Lösung gibt. Wenn es Ihr Ziel ist, angesichts des Orakels eine optimale Lösung zu finden, gehen Sie wie folgt vor. Finden Sie das minimale Gesamtgewicht über die binäre Suche (oder, wenn es nicht ganzzahlige Kantengewichte gibt, finden Sie ein Gesamtgewicht, das sich vom Minimum um weniger als die minimale Differenz zwischen zwei Kantengewichten unterscheidet). Rufen Sie diesen Wert . Entfernen Sie für jede Kante in der Grafik die Kante und fragen Sie das Orakel ab, um festzustellen, ob noch eine Lösung von höchstens . Wenn ja, lassen Sie den Rand weg und fahren Sie fort. Wenn nicht, legen Sie die Kante wieder ein und fahren Sie fort. Wenn Sie alle Kanten bearbeitet haben, bleibt ein Hamilton-Zyklus mit minimalem Gewicht übrig.MM

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.