Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Gerold Jäger Martin-Luther-Universität Halle-Wittenberg (in Zusammenarbeit mit Paul Molitor) DFG-Projekt: Toleranzbasierte Algorithmen für das Handelsreisendenproblem (2. Phase) Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Überblick 1 Einführung Verallgemeinertes Traveling Salesman Problem Verwandte Probleme Komplexitätsbetrachtungen Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Überblick 2 Heuristiken für das verallgemeinerte Traveling Salesman Problem Cheapest-Insert-Algorithmus Nearest-Neighbor-Algorithmus Two-Directional-Nearest-Neighbor-Algorithmus Patching-Technik General-Assignment-Patching-Algorithmus Nearest-Neighbor-Patching-Algorithmus Two-Directional-Nearest-Neighbor-Patching-Algorithmus Greedy-Algorithmus k-OPT-Algorithmus Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Überblick 3 Exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Branch-and-Bound-Algorithmus Integer-Programming-Algorithmus 4 Experimenteller Vergleich der Algorithmen Vergleich der Heuristiken Vergleich der exakten Algorithmen Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Einführung Verallgemeinertes Traveling Salesman Problem Verallgemeinertes Traveling Salesman Problem (GTSP) Eingabe: Vollständiger gerichteter Graph mit n Knoten v1 , . . . , vn , Dreidimensionale Kostenmatrix C = (cijk ) ∈ Rn,n,n mit Kosten cijk einer Knotenfolge (vi , vj , vk ). Ausgabe: Vollständige Tour T = (vi1 , . . . , vin , vi1 ), P Tourkosten c(T ) = cin−1 ,in ,i1 + cin ,i1 ,i2 + n−2 l=1 cil ,il+1 ,il+2 sind minimal. Anwendungen des GTSP: Bioinformatik: Suche nach optimalen Permuted Markow-Modellen / Permuted Variable Length Markow-Modellen. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Einführung Verwandte Probleme Asymmetrisches Traveling Salesman Problem (ATSP) Eingabe: Vollständiger gerichteter Graph mit n Knoten v1 , . . . , vn , Kostenmatrix C = (cij ) ∈ Rn,n mit Kosten cij für eine Kante (vi , vj ). Ausgabe: Vollständige Tour T = (vi1 , . . . , vin , vi1 ), Pn−1 Tourkosten c(T ) = cin ,i1 + l=1 cil ,il+1 sind minimal. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Einführung Verwandte Probleme Assignment Problem (AP) Eingabe: Vollständiger gerichteter Graph mit n Knoten v1 , . . . , vn , Kostenmatrix C = (cij ) ∈ Rn,n mit Kosten cij für eine Kante (vi , vj ). Ausgabe: Menge von Kreisen Z1 , . . . , Zk , wobei jeder Knoten genau einmal besucht wird. Gesamtkosten aller Kreise c(T ) = c(Z1 ) + · · · + c(Zk ) sind minimal, wobei Kreis Zj = (v1 , . . . , vt ) die Kosten P c(Zj ) = cit ,i1 + t−1 l=1 cil ,il+1 hat. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Einführung Verwandte Probleme Verallgemeinertes Assignment Problem (GAP) Eingabe: Vollständiger gerichteter Graph mit n Knoten v1 , . . . , vn , Dreidimensionale Kostenmatrix C = (cijk ) ∈ Rn,n,n mit Kosten cijk einer Knotenfolge (vi , vj , vk ). Ausgabe: Menge von Kreisen Z1 , . . . , Zk , wobei jeder Knoten genau einmal besucht wird. Gesamtkosten aller Kreise c(T ) = c(Z1 ) + · · · + c(Zk ) sind minimal, wobei Kreis Zj = (v1 , . . . , vt ) die Kosten Pt−2 c(Zj ) = cit−1 ,it ,i1 + cit ,i1 ,i2 + l=1 cil ,il+1 ,il+2 hat. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Einführung Komplexitätsbetrachtungen ATSP ist N P-vollständig. ⇒ Reduktion von 3-SAT auf HCP auf ATSP [Karp, 1972]. GTSP ist N P-vollständig. Sei c die Gewichtsfunktion einer zu lösenden ATSP-Instanz. Definiere c 0 (u, v , w) := c(v , w) für alle u ∈ V als Gewichtsfunktion einer zugehörigen GTSP-Instanz. Eine kostenminimale GTSP-Tour ist gleichzeitig auch eine kostenminimale ATSP-Tour. ⇒ Beh. GTSP und ATSP enthalten beide (n − 1)! zulässige Touren. ⇒ gleichschwer. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Einführung Komplexitätsbetrachtungen GTSP ist durch eine dreidimensionale Wertefunktion definiert und ATSP durch eine zweidimensionale. ⇒ GTSP (deutlich) schwerer. AP ist in O(n3 ) lösbar. ⇒ Ungarischer Algorithmus [Kuhn, 1955]. Frage: Welche Komplexität hat GAP? ⇒ Unklar. Vermutung: N P-vollständig. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Heuristiken für das verallgemeinerte Traveling Salesman Problem Cheapest-Insert-Algorithmus Verallgemeinerung eines ATSP-Algorithmus von [Rosenkrantz, Stearns, Lewis, 1977]. Starte mit einer “guten” Kante e = (v , w), aufgefasst als Subtour T := (v,w,v). Füge solange in T einen “guten” neuen Knoten an eine “gute” Stelle der Tour T ein, bis T alle Knoten enthält. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Heuristiken für das verallgemeinerte Traveling Salesman Problem Nearest-Neighbor-Algorithmus Verallgemeinerung eines ATSP-Algorithmus von [Rosenkrantz, Stearns, Lewis, 1977]. Starte mit einer “guten” Kante e = (v , w), aufgefasst als Pfad P. Füge solange ans Ende von P einen “guten” neuen Knoten an, bis P alle Knoten enthält. Schließe den Pfad P zu einer Tour T . Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Heuristiken für das verallgemeinerte Traveling Salesman Problem Two-Directional-Nearest-Neighbor-Algorithmus Verallgemeinerung des Nearest-Neighbor-Algorithmus. Das Anfügen von Knoten ist in beide Richtungen möglich. Man entscheidet sich in jedem Schritt für die Richtung, so dass der Unterschied zwischen dem zweitbesten und dem besten Knoten in der jeweiligen Richtung größer ist (sogenannte Toleranz), (nicht nach dem besten Knoten über beide Richtungen). Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Heuristiken für das verallgemeinerte Traveling Salesman Problem Patching-Technik Verallgemeinerung einer Technik für das ATSP [Karp, 1979]. Starte mit einer Menge von Kreisen Z1 , . . . , Zk , so dass jeder Knoten genau einmal besucht wird. Wähle die zwei Kreise Z1 und Z2 mit den meisten Knoten. Ersetze zwei Kanten (v1 , w1 ) ∈ Z1 und (v2 , w2 ) ∈ Z2 . durch (v1 , w2 ) und (v2 , w1 ). Die Wahl der Kanten soll so erfolgen, dass (v1 , w1 ), (v2 , w2 ) möglichst “schlecht” und (v1 , w2 ), (v2 , w1 ) möglichst “gut” sind. Erhalte aus Z1 und Z2 einen neuen Kreis Z3 . Wiederhole diese Schritte, bis man nur noch einen Kreis hat, den man dann als Tour auffasst. Im folgenden werden drei verschiedene Varianten vorgestellt, die Startkreise zu erhalten. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Heuristiken für das verallgemeinerte Traveling Salesman Problem General-Assignment-Patching-Algorithmus Für das ATSP werden als Startkreise die Kreise einer AP-Lösung genommen. Eine naheliegende Verallgemeinerung für das GTSP wären die Kreise einer GAP-Lösung. Problem: Bisher kein Polynomialzeit-Algorithmus bekannt. Ideen: Approximiere die Lösung der GAP-Instanz durch die Lösung einer AP-Instanz. Im GAP werden Knotenfolgen mit kleinen Kosten bevorzugt. ⇒ Definiere für die Gewichtsfunktion c des GAP folgende Gewichtsfunktion für das AP: c 0 (v , w) = min u∈V \{v ,w} c(u, v , w) Die Kreise der AP-Lösung werden dann als Startkreise für den Patching-Algorithmus benutzt. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Heuristiken für das verallgemeinerte Traveling Salesman Problem Nearest-Neighbor-Patching-Algorithmus Der Nachteil des Nearest-Neighbor-Algorithmus ist, dass im Laufe des Algorithmus die Anzahl der verbleibenden Knoten immer kleiner wird. Somit werden die in Frage kommenden Gewichte der Knotenfolgen im Durchschnitt immer größer. Der Nearest-Neighbor-Patching-Algorithmus stoppt den Nearest-Neighbor-Algorithmus, falls das Schließen des derzeitigen Pfades zu einer “guten” Subtour führen würde. Es werden solange Kreise konstruiert, bis jeder Knoten in genau einem Kreis enthalten ist. Auf diese Kreise wird dann der Patching-Algorithmus angewandt. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Heuristiken für das verallgemeinerte Traveling Salesman Problem Two-Directional-Nearest-Neighbor-Patching-Algorithmus Im Vergleich zum Nearest-Neighbor-Patching-Algorithmus: Verwende zur Berechnung der Startkreise statt dem Nearest-Neighbor-Algorithmus in analoger Weise den Two-Directional-Nearest-Neighbor-Algorithmus. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Heuristiken für das verallgemeinerte Traveling Salesman Problem Greedy-Algorithmus Verallgemeinerung eines ATSP-Algorithmus von [Glover, Gutin, Yeo, Zverovich, 2001]. Wähle eine “gute” Kante (u, v ). Kontrahiere die Knoten u und v zu einem neuen Knoten (u, v ). Erhalte einen neuen Graphen mit einem Knoten weniger und einer transformatierten Gewichtsfunktion. Wiederhole diese Schritte, bis nur noch drei Knoten u, v , w übrig sind. Wähle den Kreis mit den kleinsten Kosten von den zwei Möglichkeiten (u, v , w) und (u, w, v ). Ersetze alle Knoten durch die korrespondierenden kontrahierten Wege. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Heuristiken für das verallgemeinerte Traveling Salesman Problem k-OPT-Algorithmus Verallgemeinerung eines ATSP-Algorithmus von [Lin, Kernighan, 1973]. Alle bisherigen Algorithmen sind Konstruktionsheuristiken, d.h. sie konstruieren die gesuchte Tour. Der k-OPT-Algorithmus ist eine Verbesserungsheuristik, d.h. er startet mit einer Tour, die von einer Konstruktionsheuristik geliefert wird und verbessert diese anschließend. Ein k-OPT-Schritt verändert eine gegebene Tour T , indem es k Tourkanten durch k Kanten außerhalb der Tour in solch einer Weise ersetzt, dass die Kantenmenge nach der Veränderung immer noch eine Tour ist. Der k-OPT-Algorithmus führt an einer Starttour solange wie möglich Tourverbessernde k-OPT-Schritte mit r ≤ k durch. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Branch-and-Bound-Algorithmus Berechne mit einer Heuristik eine gute obere Schranke für die Instanz. Durchlaufe alle (n − 1)! möglichen Touren lexikographisch. Bei einer Verbesserung aktualisiere die derzeitige optimale Tour und die obere Schranke. Durchlaufe alle Teilpfade, beginnend bei denen mit den wenigsten Knoten. Kontrahiere den Teilpfad zu einem Knoten. Berechne zu dem Teilpfad die jeweilige approximierte GAP-Lösung, die eine lokale untere Schranke darstellt. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Branch-and-Bound-Algorithmus Ist die lokale untere Schranke eines Teilpfads nicht kleiner als die derzeitige obere Schranke, können alle Touren und Teilpfade, die mit diesem Teilpfad beginnen, weggelassen werden. Ansonsten wende den Patching-Algorithmus auf die approximierte GAP-Lösung an, und aktualisiere gegebenenfalls die derzeitige optimale Tour und die obere Schranke. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Integer-Programming-Algorithmus GAP kann mit dem folgenden IP-Modell gelöst werden: min n X n n X X cijk xijk (1) xijk ∈ {0; 1} ∀ 1 ≤ i, j, k ≤ n, i 6= j, i 6= k, j = 6 k n n X X xijk = 1 ∀ 1 ≤ k ≤ n (2) i=1,i6=j,k j=1,j6=k k=1 (3) i=1,i6=j,k j=1,j6=k n X n X i=1,i6=j,k k=1,k 6=j xijk = 1 ∀ 1 ≤ j ≤ n (4) Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Integer-Programming-Algorithmus n X n X xijk = 1 ∀ 1 ≤ i ≤ n (5) xkij ∀ 1 ≤ i 6= j ≤ n (6) j=1,j6=i,k k=1,k6=j n X k=1,k6=i,k6=j xijk = X k=1,k6=i,k6=j Damit neben dem GAP auch das GTSP gelöst wird, müssen noch alle möglichen Subtouren verboten werden. Für die Subtour (vs1 , . . . , vst , vs1 ) muss die folgende Ungleichung ergänzt werden: xst−1 ,st ,s1 + xst ,s1 ,s2 + t−2 X i=1 xsi ,si+1 ,si+2 ≤ t − 1 (7) Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Integer-Programming-Algorithmus Leider gibt es exponentiell vieler solcher Subtouren. Somit müssen Schritt für Schritt nur die notwendigen Subtouren verboten werden. 1 Löse das IP mit Bedingungen (1), (2), (3), (4), (5), (6). 2 Erhalte eine Lösung mit k Kreisen Z1 , . . . , Zk und Kreis Z = (vs1 , . . . , vst , vs1 ) mit minimaler Anzahl von Knoten. 3 IF k = 1 4 THEN TERMINATE mit Lösung Z . 5 ELSE Füge Bedingung (7) zum IP hinzu. 6 GOTO 1. Gibt man einem IP-Solver (wie cplex) eine (durch eine Heuristik erhaltene) gute obere Schranke, so kann der Solver beschleunigt werden. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Experimenteller Vergleich der Algorithmen Vergleich der Heuristiken Wir vergleichen folgende Heuristiken: Cheapest-Insert Algorithmus (CI), Nearest-Neighbor Algorithmus (NN), Two-Directional Nearest-Neighbor Algorithmus (2NN), General-Assignment Patching-Algorithmus (GAK), Nearest-Neighbor-Patching-Algorithmus (NNK), Two-Directional-Nearest-Neighbor-Patching-Algorithmus (2NNK), Greedy-Algorithmus (G). Zu jeder Heuristik betrachten wir auch eine Version, in der der Algorithmus durch den 5-OPT-Algorithmus ergänzt wird. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Experimenteller Vergleich der Algorithmen Vergleich der Heuristiken Unterschiede zwischen oberen Schranken für alle Basis-Heuristiken im Vergleich mit CI für reale Instanzklassen 1+2. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Experimenteller Vergleich der Algorithmen Vergleich der Heuristiken Unterschiede zwischen oberen Schranken für alle Basis-Heuristiken im Vergleich mit CI für reale Instanzklasse 3 und zufällige Instanzklasse. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Experimenteller Vergleich der Algorithmen Vergleich der Heuristiken Unterschiede zwischen oberen Schranken für alle 5-OPT-Heuristiken im Vergleich mit CI+5-OPT für reale Instanzklassen 1+2. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Experimenteller Vergleich der Algorithmen Vergleich der Heuristiken Unterschiede zwischen oberen Schranken für alle 5-OPT-Heuristiken im Vergleich mit CI+5-OPT für reale Instanzklasse 3 und zufällige Instanzklasse. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Experimenteller Vergleich der Algorithmen Vergleich der Heuristiken Unterschiede zwischen oberen Schranken von CI im Vergleich zu CI+5-OPT für reale Instanzklassen 1+2. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Experimenteller Vergleich der Algorithmen Vergleich der Heuristiken Unterschiede zwischen oberen Schranken von CI im Vergleich zu CI+5-OPT für reale Instanzklasse 3 und zufällige Instanzklasse. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Experimenteller Vergleich der Algorithmen Vergleich der exakten Algorithmen Zeitvergleich zwischen IP und BnB in Sekunden für reale Instanzklassen 1+2. Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem Experimenteller Vergleich der Algorithmen Vergleich der exakten Algorithmen Zeitvergleich zwischen IP und BnB in Sekunden für reale Instanzklasse 3 und zufällige Instanzklasse. Für noch größere Dimensionen ab 20 scheint sich das Laufzeitverhältnis aber umzukehren.