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