Es scheint mir seltsam, dass der TSP die Möglichkeit wiederholter Städte verweigert. Das Ziel dieses reisenden Verkäufers ist es, so schnell wie möglich alle Städte zu besuchen, oder? Was ist, wenn es schneller ist, durch eine Stadt zu reisen, in der Sie bereits waren?
terminology
traveling-salesman
Danmcardle
quelle
quelle
Antworten:
Es spielt keine Rolle, wie Sie es genau definieren, da es nur eine Möglichkeit ist, ein reales Problem zu modellieren. In TSP haben Sie nur eine Reihe von Städten und die Reisekosten zwischen jedem Paar. Dies schließt nicht aus, dass in der von Ihnen modellierten realen Situation die beste Route zwischen B und C durch A führt. Wenn dies der Fall wäre, könnte die Route, die in TSP als ABCA modelliert wird, dies tun Sehr gut ist es, auf dem Weg von B nach C eine zusätzliche Zeit durch A zu fahren, aber solche Details werden im TSP-Modell abstrahiert.
quelle
Ich stimme zu, dass die Einschränkung seltsam aussieht und für viele praktische Situationen nicht relevant ist. Wie David in seiner Antwort betont hat, spielt es keine Rolle, ob Sie die Modellierung selbst ändern können. Bei einer nicht modifizierbaren Instanz wird dies jedoch einen Unterschied machen, da der allgemeine TSP mit dieser Einschränkung innerhalb eines konstanten Faktors nicht approximierbar ist, während die Lockerung der Einschränkung für einen einzelnen Besuch ihn innerhalb des Faktors 2 approximierbar zu machen scheint (obwohl er nicht metrisch ist) ). Wenn ich nichts vermisse, können Sie nach Standardargumenten zuerst einen minimalen Spannbaum erstellen (Kosten ) und dann diesen Baum mit der Euler-Tour-Technik besuchen. Die Gesamtkosten Ihrer Tour betragen dann eindeutig 2 c (zweimal pro Kante). Im Widerspruch, wenn es eine Tour gab, die weniger kostete alsc 2 c , dann könnte diese Tour verwendet werden, um einen MST mit Kosten unter c abzuleiten , was ein Widerspruch ist.c c
quelle
Bei jeder Tour mit Wiederholungen können Sie eine kürzere Tour erstellen, die keine Stadt wiederholt. Sie sich zum Beispiel eine Tour durch die Form ⋯ → A → ⋯ → X → A → Y → ⋯ vor , die A zweimal besucht . Sie können bei Ihrem zweiten Besuch in A eine Verknüpfung von X nach Y erstellen : ⋯ → A → ⋯ → X → Y → ⋯ .
Es kann sein, dass der kürzeste Weg von nach Y durch A führt , der jedoch bereits in der Kante X → Y eingekapselt ist . Sie können von einer Erwähnung denken A nicht als „Durchreise“ A , sondern „zu stoppen“ A . Man braucht sich nur zu stoppen A einmal, wenn Sie passieren könnte A mehrmals.X. Y. EIN X.→ Y. EIN EIN EIN EIN EIN
Tatsächliche Algorithmen für TSP könnten diesen Schritt des "Nehmens von Verknüpfungen" haben, zum Beispiel den Algorithmus von Christofides. Siehe zum Beispiel diese Beschreibung oder das kürzere Konto .
quelle
Es gibt keine allgemeine Antwort darauf, außer "Leute sind nicht dumm". Sie wenden die Lösung an, die ihrer Situation entspricht. Selten beschäftigen sich Menschen mit dem Problem des reisenden Verkäufers. Eveb im klassischen Fall würde sich ein Verkäufer in der realen Welt mehr mit dem Problem befassen, sein Einkommen über einen bestimmten Zeitraum innerhalb eines bestimmten Satzes von Einschränkungen zu maximieren. In diesem Fall des Problems ist die zurückgelegte Gesamtstrecke nur einer von mehreren Faktoren, die dazu beitragen, die optimale Antwort zu finden.
quelle
Wenn Wiederholungen zulässig sind, überprüfen Sie einfach alle Verbindungen X -> A -> Y, und wenn diese kürzer als X -> Y sind, ersetzen Sie die Länge von X -> Y durch die Länge von X -> A -> Y, und lösen Sie das resultierende Problem mit dem Standardalgorithmus. Ich denke, Sie müssen den Austauschvorgang wiederholen, bis keine Änderungen mehr vorliegen. Wenn Sie eine kürzere Verbindung X -> Y finden, kann dies bedeuten, dass jetzt X -> Y -> Z kürzer als X -> Y ist.
Verfolgen Sie, welche Verbindungen Sie geändert haben, gehen Sie die Verbindungen in der Lösung durch. Wenn die Lösung X -> Y enthält, ersetzen Sie diese durch X -> A -> Y.
PS. Ich finde meine Idee großartig, bin mir aber im Moment nicht sicher, ob sie richtig ist. Da X -> A -> Y anstelle von X -> Y nicht nur eine Verknüpfung ist, sondern auch Stadt A abdeckt.
quelle