Effektive Heuristiken für große Instanzen des

Werbung
Effektive Heuristiken für große Instanzen des
Handelsreisendenproblems
Gerold Jäger
Christian-Albrechts-Universität zu Kiel
DFG-Projekt:
“Auf Toleranzen basierende Methoden zur Lösung des
Handelsreisendenproblems und anderer kombinatorischer Probleme”
19. Juli 2010
Gerold Jäger
19. Juli 2010
1 / 29
Überblick
1
Einleitung
Definition
Bedeutung
Historie
Anwendungen
2
Helsgaun-Heuristik
3
Pseudo-Backbone-Kontraktions-Heuristik
Beschreibung
Bemerkungen
Experimentelle Resultate
Arbeit an der World-TSP-Instanz
Gerold Jäger
19. Juli 2010
2 / 29
Definition
Ein Handelsreisender möchte in einer Rundreise (Tour) eine gegebene
Menge von n Städten besuchen und die Tourlänge minimieren.
Handelsreisendenproblem (Traveling Salesman Problem, TSP):
Geg.: Vollständiger Graph G = (V , E ), |V | = n,
Kostenfunktion c : E → R.
Ges.: Tour (v1 , v2 , . . . , vn , v1 ) mit minimalen Kosten
c(vn , v1 ) +
n−1
X
c(vi , vi+1 )
i=1
Gerold Jäger
Einleitung
19. Juli 2010
3 / 29
Bedeutung
Leicht zu verstehen.
Komplexitätstheoretisch schwer zu lösen.
Diskrepanz zwischen
wenigen Approximationsschranken
guten praktischen Resultaten
Lokomotive der Algorithmen-Entwicklung:
Ganzzahlige Programmierung
Lokale Suche
Branch-and-Cut
Gerold Jäger
Einleitung
19. Juli 2010
4 / 29
Historie
Erste Erwähnung im Jahre 1832
[...] Durch geeignete
”
Auswahl und Planung der
Tour kann man oft so viel Zeit
sparen, daß wir einige
Vorschläge zu machen haben.
[...] Der wichtigste Aspekt ist,
so viele Orte wie möglich zu
erreichen, ohne einen Ort
zweimal zu besuchen.“
[In: Der Handelsreisende, wie er sein soll und was zu tun hat,
um Aufträge zu erhalten und eines glücklichen Erfolgs in seinen
Geschäften gewiß zu sein. Von einem alten Commis - Voyageur.
Ilmenau 1832]
Gerold Jäger
Einleitung
19. Juli 2010
5 / 29
Historie
Theoretische Resultate
TSP: N P-hart [Karp, 1972]
Metrisches TSP: Existenz eines polynomialen
Approximations-Algorithmus mit Faktor 1.5
[Christofides, 1975]
Euklidisches TSP: Existenz eines polynomiales Approximationsschema
[Arora, 1996]
TSP: Falls P 6= N P, dann existiert für k ≥ 1 kein
Approximations-Algorithmus mit Faktor k.
[Sahni, Gonzalez, 1976]
Gerold Jäger
Einleitung
19. Juli 2010
6 / 29
Historie
Größte exakt gelöste Beispiel-Instanzen
Jahr
1954
1971
1975
1977
1980
1987
1987
1987
1994
1998
2001
2004
2006
Forschungsteam
Dantzig, Fulkerson, Johnson
Held, Karp
Camerini, Fratta, Maffioli
Grötschel
Crowder, Padberg
Padberg, Rinaldi
Grötschel, Holland
Padberg, Rinaldi
Applegate, Bixby, Chvátal, Cook
Applegate, Bixby, Chvátal, Cook
Applegate, Bixby, Chvátal, Cook
App., Bixby, Chvátal, Cook, Helsgaun
App., Bixby, Chvátal, Cook, Helsgaun
# Knoten
49
64
100
120
318
532
666
2.392
7.397
13.509 (USA-Tour)
15.112 (D-Tour)
24.978 (SWE-Tour)
85.900
5 größte Instanzen ⇒ Branch-and-Cut-basiertes Programm Concorde
Gerold Jäger
Einleitung
19. Juli 2010
7 / 29
Historie
Beispiel: Kürzeste Tour durch 15.112 Städte in Deutschland
Gerold Jäger
Einleitung
19. Juli 2010
8 / 29
Anwendungen
Messungen an einer Sternwarte
Geg.: Menge von Sternen, an denen eine
Messung durchzuführen ist.
Ges.: Optimale Reihenfolge der Sterne,
die die Summe der Zeiten zum
Anvisieren mit dem Teleskop minimiert.
c http://www.sternwarte-hof.de
Gerold Jäger
Einleitung
19. Juli 2010
9 / 29
Anwendungen
Laserbohrungen
c Bystronic Corporate Communications
Geg.: Eine Menge Bohrpunkte auf einem Blech.
Ges.: Beste Reihenfolge der Punkte, in der am schnellsten alle Bohrungen
durchgeführt werden können.
Gerold Jäger
Einleitung
19. Juli 2010
10 / 29
Anwendungen
Weitere Anwendungen
Röntgenkristallographie: Ein Kristall wird in verschiedenen Positionen
bestrahlt. Kristallpositionen entsprechen den Punkten, die Zeit zum
Wechsel zwischen zwei Positionen entspricht den Kosten.
Tourenplanung bei Pharma-Großhändlern: Verteilen von angeforderten
Medikamenten an die Apotheken der Umgebung
Austragen von abonnierten Zeitungen: In welcher Reihenfolge sollen
die Abonnenten aufgesucht werden?
Lagerlogistik: Zusammensuchen der Einzelposten einer Bestellung im
Lager
siehe:
http://comopt.ifi.uni-heidelberg.de/projects/projekttspsir/tspposter.html
Gerold Jäger
Einleitung
19. Juli 2010
11 / 29
Helsgaun-Heuristik
Beste TSP-Heuristik: [Helsgaun, 1998, Erweiterung: 2007]
Ideen: [Lin, Kernighan, 1973]
Setzt sich aus zwei klassischen Komponenten zusammen:
Teil 1: Konstruktion
Konstruktion einer Starttour ohne Versuch der Verbesserung
üblicherweise sehr schnell
Teil 2: Verbesserung
Verbesserung der gegebenen Starttour
typischerweise langsamer als Teil 1
meistens lokale Suche
Gerold Jäger
Helsgaun-Heuristik
19. Juli 2010
12 / 29
Helsgaun-Heuristik
Konstruktion:
1 Starte mit einem beliebigen Knoten.
2 Gehe in jedem Schritt zum nächsten noch nicht besuchten Knoten.
3 Sobald alle Knoten besucht wurden, gehe zum Startknoten zurück.
4 Benutze die erhaltene Tour als Starttour für die nächsten Schritte.
Verbesserung:
5 Für k ≤ n wende einen k-OPT-Schritt an, d.h.:
Ersetze Tourkanten durch Nicht-Tourkanten, so dass gilt:
Die Kanten bilden weiterhin eine Tour.
Die neue Tour ist kürzer als die alte.
6
Beispiel eines 2-OPT-Schritts
Wiederhole Schritt 5 so oft wie möglich.
Gerold Jäger
Helsgaun-Heuristik
19. Juli 2010
13 / 29
Helsgaun-Heuristik
Optimierungen:
1 Wähle k klein.
2 Betrachte für jeden Knoten nur die s besten benachbarten
Kanten, das sogenannte Kandidatensystem.
Helsgauns Hauptfortschritt:
Betrachte für jeden Knoten nicht die s kürzesten benachbarten
Kanten, sondern die s benachbarten Kanten, die nach einem
Kriterium bestimmt werden, das vom minimal spannenden Baum
abhängt.
3 Führe t (fast) unabhängige Läufe des Algorithmus durch.
Je größer die Parameter des Algorithmus k, s, t sind, desto
langsamer, aber effektiver ist die Helsgaun-Heuristik.
Gerold Jäger
Helsgaun-Heuristik
19. Juli 2010
14 / 29
Pseudo-Backbone-Kontraktions-Heuristik
Zusammenarbeit mit
Changxing Dong, Paul Molitor, Dirk Richter
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
15 / 29
Beschreibung
1
Finde gute Starttouren mit Hilfe bekannter Heuristiken, z.B. der
Helsgaun-Heuristik.
a
Gerold Jäger
b
Pseudo-Backbone-Kontraktions-Heuristik
c
19. Juli 2010
16 / 29
Beschreibung
2
Finde alle gemeinsamen Kanten in diesen Starttouren.
a
c
b
d
Diese Kanten heißen Pseudo-Backbone-Kanten.
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
17 / 29
Beschreibung
3
Kontrahiere alle Kanten, die auf Wegen von PseudoBackbone-Kanten liegen, zu einer einzelnen Kante.
d
4
00000
11111
00000
11111
00000
11111
1111111111
0000000000
0000000000
1111111111
11
00
000
111
0000000000
1111111111
000
111
0000000000
1111111111
000
111
0000000000
1111111111
00
11
000
111
0000000000
1111111111
00
11
000
111
0000000000
1111111111
000
111
00
11
0000000000
1111111111
000
111
00
11
000
111
00
11
000
111
00
11
000
111
00
11
000
111
000
111
000
111
000
111
000
111
000
111
0
1
000
111
0
1
000
111
0
1
000
111
000
111
1111111
000000
000 111
111
000
111
0
000
111111
000000
000
111
000
111
0 111
1
000
111
111
000
000
00
11
00
11
00
11
Konstruiere eine neue Instanz durch Weglassen aller Knoten, die auf
einem Weg von Pseudo-Backbone-Kanten liegen.
ee
5
ee
00000
11111
00000
11111
00000
11111
0000000000
1111111111
1111111111
0000000000
11
00
000
111
0000000000
1111111111
000
111
0000000000
1111111111
000
111
0000000000
1111111111
00
11
000
111
0000000000
1111111111
00
11
000
111
0000000000
1111111111
000
111
00
11
0000000000
1111111111
000
111
00
11
000
111
00
11
000
111
00
11
000
111
00
11
000
111
000
111
000
111
000
111
000
111
000
111
0
1
000
111
0
1
000
111
0
1
000 111
111
000
000000
111111
000
111
000
111
0
000
111
0000001
111111
000
111
000
0 111
1
000
111
111
000
000
111
00
11
00
11
00
11
ef
00000
11111
00000 1
11111
000000000
111111111
0
00
11
111111111
000000000
0
1
00
11
000000000
111111111
00
11
000000000
111111111
00
11
000000000
111111111
00
11
000000000
111111111
00
11
00
11
00
11
000000000
111111111
00
11
00
11
000000000
111111111
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
0
1
00
11
0
1
00
11
0
1
00
11
00000
11111
00
11
111
000
000000
11111
00 00
11
1
00
11
111
000
11
00
11
000
111
000
111
000
111
Fixiere diese Kanten, d.h. zwinge diese Kanten in die finale Tour.
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
18 / 29
Beschreibung
6
Wende die Helsgaun-Heuristik auf die neue Instanz an.
ef
Gerold Jäger
11111
00000
11111 1
00000
111111111
000000000
0
00
11
000000000
111111111
0
1
00
11
000000000
111111111
00
11
000000000
111111111
00
11
000000000
111111111
00
11
000000000
111111111
00
11
00
11
00
11
000000000
111111111
00
11
00
11
000000000
111111111
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
0
1
00
11
0
1
00
11
0
1
00
11
00000
11111
00
11
000
111
000000
11111
00 00
11
1
11
00
000
111
11
11
00
000
111
000
111
000
111
g
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
19 / 29
Beschreibung
7
Transformiere die Tour der neuen Instanz zu einer Tour der originalen
Instanz zurück.
h
g
Hier: Die letzte Tour ist optimal. Vergleiche:
a
Gerold Jäger
b
Pseudo-Backbone-Kontraktions-Heuristik
c
19. Juli 2010
20 / 29
Bemerkungen
Hauptidee: Man vernachlässigt einen Teil des Suchraums, von dem
man glaubt, er sei schon hinreichend untersucht
(Pseudo-Backbone-Kanten).
⇒ Man kann sich auf den wesentlichen Suchraum konzentrieren.
Zwei Vorteile:
Reduktion der Knotenmenge.
Fixierung eines Teils der Kanten.
⇒ Die Helsgaun-Heuristik kann mit größeren Algorithmus-Parametern k,
s, t angewandt werden als für die originale Instanz.
1
2
Die Heuristik funktioniert gut, falls die Starttouren
1
2
gut sind
nicht zu ähnlich sind
(sonst wird der Suchraum zu stark eingeschränkt)
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
21 / 29
Experimentelle Resultate
Wettbewerb: TSP-Homepage
http://www.tsp.gatech.edu/
Viele praxisrelevante Instanzen zum Vergleich exakter Algorithmen
und Heuristiken.
Es existieren 71 ungelöste Beispiel-Instanzen:
VLSI und nationale Instanzen
Für 18 von 71 Instanzen haben wir eine neue Rekordtour gefunden.
10 von 18 Rekordtouren sind noch aktuell.
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
22 / 29
Experimentelle Resultate
Unsere neuen Rekorde
Datum
24.05.2006
22.10.2006
20.03.2008
28.03.2008
01.04.2008
27.05.2008
23.06.2008
24.06.2008
30.06.2008
Gerold Jäger
# Knoten
6,880
19,289
17,845
13,584
19,402
38,478
21,215
28,924
34,656
Datum
14.07.2008
14.07.2008
14.07.2008
19.07.2008
14.08.2008
14.08.2008
10.11.2008
12.12.2008
26.08.2009
Pseudo-Backbone-Kontraktions-Heuristik
# Knoten
28,534
39,603
56,769
104,815
52,057
238,025
29,514
47,608
32,892
19. Juli 2010
23 / 29
Arbeit an der World-TSP-Instanz
Zusammenarbeit mit
Christian Ernst, Changxing Dong, Paul Molitor, Dirk Richter
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
24 / 29
Arbeit an der World-TSP-Instanz
Größte und schwierigste Instanz der TSP-Homepage:
World-TSP mit 1.904.711 Städten.
(Ehrgeiziges und langfristiges) Ziel: Berechnung einer neuen
Rekordtour für das World-TSP.
Aktuelle Rekordtour: Helsgaun (4. Mai 2010).
Tour für das World-TSP
Problem: Das Finden guter Starttouren ist zu schwierig für das
World-TSP.
Idee: Kombiniere Pseudo-Backbone-Kontraktions-Heuristik mit
Partitionierung.
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
25 / 29
Arbeit an der World-TSP-Instanz
1
Berechne gute Touren in überlappenden Fenstern.
Die Größe der Überlappung wird halb so groß wie die Höhe (Breite)
des Fensterrahmens gewählt.
⇒ Jeder Knoten ist in genau 4 Fenstern enthalten –
es sei denn, er liegt nahe am Rand.
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
26 / 29
Arbeit an der World-TSP-Instanz
2
Verwende die Kanten, die in allen Touren von 4 überlappenden
Fenstern enthalten sind, als Pseudo-Backbone-Kanten.
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
27 / 29
Arbeit an der World-TSP-Instanz
3
Wende die Pseudo-Backbone-Kontraktions-Heuristik rekursiv an.
Unsere aktuell beste Tour:
1
2
0.01% größer als die aktuelle Rekordtour
In 13 Stunden gefunden
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
28 / 29
Vielen Dank für Ihre Aufmerksamkeit!
Gerold Jäger
Pseudo-Backbone-Kontraktions-Heuristik
19. Juli 2010
29 / 29
Herunterladen