Heuristiken und exakte Algorithmen f¨ur das verallgemeinerte

Werbung
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.
Herunterladen