Kap. 4: Das Handlungsreisendenproblem (TSP) VO Algorithm Engineering Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 7./8. VO 24./26. April 2007
Literatur Mutzel: Skript zu Branch & Cut (s. vorige VO) TSP-Web Site: www.tsp.gatech.edu Bei Interesse: M. Jünger, G. Reinelt und G. Rinaldi: The Traveling Salesman Problem, 1995, Elsevier Science in the collection "Network Models, Handbook on Operations Research and Management Science" (Eds. M. Ball, T. Magnanti, C. Monma, G. Nemhauser), vol. 7, 225-230. NEUES BUCH: D. Applegate, R.E. Bixby, V. Chvátal und W.J. Cook: The Traveling Salesman Problem: A Computational Study, Princeton University Press 2007, 606 pp. Nachschlagewerk bei Interesse: M. Jünger und D. Naddef (Eds.): Computational Combinatorial Optimization, Optimal or Provably Near-Optimal Solutions, LNCS 2241, Springer, 2001, i.e. 157-223 2
Überblick 4.1 Einführung Einführung in TSP 4.2 ILP-Formulierung für TSP 4.3 Branch-and-Cut Algorithmus Separierung der Subtour Bedingungen Zusätzliche Ungleichungen Branch& Cut Spaltengenerierung 4.4 Engineering Lin-Kernighan (s. 3. Mai) 3
4.1 Einführung: Das Travelling Salesman Problem Das Handlungsreisendenproblem, TSP Gegeben: Vollständiger ungerichteter Graph G=(V,E) mit Kantenkosten c e Gesucht: Tour T (Kreis, der jeden Knoten genau einmal enthält) mit minimalen Kosten c(t)= c e 4
Buch von F. Voigt, Ilmenau 1831 Der Handlungsreisende, wie er sein soll und was er zu thun hat, um Aufträge zu erhalten und eines glücklichen Erfolgs in seinen Geschäften gewiß zu sein. Von einem alten Commis=Voyageur. 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. 5
Anwendungen des TSP Tourenplanung (Pharma-Referenten, AGFA, Schulbusrouting, Postal routing Vehicle Routing (Speditionen) Sammeltaxis (statt Bus auf dem Land) VLSI-Design (Bohrprobleme) Bioinformatik (Genome Sequencing) Teleskop Kristallographie Datenclustering 6
Bohrmaschine für Leiterplatten 7
Bohrköpfe 8
Bohrproblem: TSP mit 33810 Städten 9
Das Travelling Salesman Problem Ann.: Rechner schafft 40 Mio. Touren pro Sekunde Anzahl der verschiedenen Touren: ( V -1)! / 2 n 10 17 19 20 25 60 #Tour 181440 ca. 10 13 ca. 10 15 ca. 10 17 ca. 10 23 ca. 10 80 Zeit 0.0045 Sek. 3 Tage 2,5 Jahre 48 Jahre 10 8 Jahre 10 64 Jahre Anzahl der Atome im Weltall: ca. 10 80 10
Meilensteine für TSP Lösungen Jahr 1954 1971 1977 1980 1987 1987 1987 1994 1998 2001 2004 Weltmeister Dantzig,Fulkerson,Johnson Held, Karp 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 Applegate, Bixby, Chvátal, Cook, Helsgaun Städte 49 64 120 318 532 666 2392 7397 13509 15112 24978 aktuelle Challenge: Worldtour 1.904.711 Städte 11
15112 Städte TSP 22,6 CPU Jahre auf 110 Prozessoren 12
24978 Städte TSP Optimallösung 8 Jahre 13
Lösung mittels Branch & Cut 14
World Tour: 1.904.711 Städte Tour der Länge 7,516,353,779 (Keld Helsgaun, 2003) Garantie: Tourlänge 0.076% nahe an OPT(Concorde TSP code) aktuelle Challenge 15
4.2 ILP-Formulierung für TSP Binär-Variable: x uv =1, wenn Kante uv in Tour T, und x uv =0 sonst Beispiel: 0 1 2 1 0 1 3 0 1 0 0 0 1 4 0 5 0 0 1 12 13 14 15 16 23 24 25 26 34 35 36 45 46 56 0 1 0 1 0 1 10 0 0 0 0 0 1 1 1 6 <1,3,2,4,6,5> 16
ILP-Formulierung für TSP Geg.: vollständiger Graph G=(V,E) mit c e für alle Kanten e Grad-Gl. Subtour-Ungl. Problem: Ganzzahlige Optimierung ist NP-schwer Löst eine Relaxierung des Problems 17
4.3 Branch & Cut für TSP LP-Relaxierung: Entferne Ganzzahligkeitsbedingungen minimiere so dass e E x e c x e δ ( v) e 0 x x e e e 1 ganzzahlig = 2 für für für alle alle alle e E e E v V x e e δ ( W ) 2 für alle φ W V Subtour-Relaxierung: man relaxiert Ganzzahligkeit 18
Branch & Cut für TSP Auch die Subtour-Relaxierung hat bereits exponentiell viele ( Θ(2 n 1 ))Ungleichungen hoffnungslos? Lösung: Schnittebenenverfahren Können wir die Subtour-Relaxierung beim TSP lösen? 19
Satz von Grötschel, Lovasz, Schrijver Ein Optimierungsproblem ist in polynomieller Zeit lösbar genau dann wenn das zugehörige Separationsproblem in polynomieller Zeit lösbar ist. Frage: Können wir Separationsproblem für die Subtour-Ungleichungen des TSP lösen? 20
Definition Separationsproblem 21
Separierung TSP Subtour Bedingungen x e e δ ( W ) 2 für alle φ W V 1 0 1 2 0 0 3 0 1 0 1 0 1 4 1 5 0 0 1 0 Min Cut = 0 Verletzte Subtour-Ungleichung gefunden 6 e δ ( W ) xe = 0 für W = {1,3,5} 22
Separierung TSP Subtour Bedingungen x ij i W, j V W 2 für alle φ W V 1/2 1 2 0 1/2 1 5 1/2 1/2 3 0 0 0 0 1/2 1/2 Min Cut = 2 4 6 1 1 0 bessere Relaxierungen durch Hinzunahme weiterer Ungl. Subtour-Relaxierung gelöst aber nicht TSP Es existiert keine verletzte Subtour-Ungleichung 23
Satz von Grötschel, Lovasz, Schrijver Ein Optimierungsproblem ist in polynomieller Zeit lösbar genau dann wenn das zugehörige Separationsproblem in polynomieller Zeit lösbar ist. Frage: Können wir Separationsproblem für die Subtour-Ungleichungen des TSP lösen? Lösung des kleinsten Schnittproblems 24
Bekannte Ungleichungen beim TSP Grad Gleichungen Subtour Bedingungen 2-Matching Ungleichungen Blossom Ungleichungen Comb Ungleichungen Cliquenbaum Ungleichungen Hypergraph Ungleichungen Separierungsproblem polynomiell Separierungsproblem offen Wie kommt man auf diese Ungleichungen: Polyedertheorie oder: Rechnen und dann Studium von nicht-zulässigen Lösungen 25
Branch & Cut für TSP Vollständige lineare Beschreibungen sind sehr gross Städte Touren Gleichungen Ungleichungen 3 1 3 0 4 3 4 3 5 12 5 20 6 60 6 100 7 360 7 3.437 8 2.520 8 194.187 9 20.160 9 42.104.442 10 181.440 10 51.043.900.866 Praxis: ILP Formulierungen 26
Branch-and-Cut Verfahren Verbindung von Schnittebenenverfahren mit Branch-and-Bound Versuche, jeweils die Teilprobleme (LP-Relaxierungen) mittels Schnittebenenverfahren zu lösen Falls die Lösung nicht ganzzahlig ist, dann wähle nicht-ganzzahlige Variable und generiere zwei neue Teilprobleme: P1 mit zusätzlichen Restriktionen x e =0 P2 mit zusätzlichen Restriktionen x e =1 27
Branch & Cut (Grundidee) Identifiziere die zulässigen Lösungen mit 0/1- Vektoren Beschreibe die konvexe Hülle dieser Vektoren möglichst gut durch lineare Ungleichungen 28
Branch & Cut (Grundidee) Menge der zulässigen Lösungen 29
Branch & Cut (Grundidee) Konvexe Hülle über diese Menge 30
Branch & Cut (Grundidee) Zielfunktion Die Beschreibung der konvexen Hülle durch lineare Un-/gleichungen ist i.a. nicht bekannt. 32
Branch & Cut (Grundidee) Lösung: stattdessen Relaxierung der ILP-Formulierung 33
Branch & Cut (Grundidee) Lösungspunkt über die LP-Relaxierung ist aber nicht zulässig für unser Originalproblem 35
Branch & Cut (Grundidee) Identifiziere die zulässigen Lösungen mit 0/1- Vektoren Beschreibe die konvexe Hülle dieser Vektoren möglichst gut durch lineare Ungleichungen Finde möglichst gute Algorithmen, die für einen gegebenen Punkt von diesem verletzte Ungleichungen finden bzw. feststellen, dass keine solchen existieren. Separierung 36
Branch & Cut (Grundidee) Schnittebene für Separierung 38
Branch & Cut (Grundidee) 39
Branch & Cut (Grundidee) neuer Lösungspunkt der LP-Relaxierung 41
Branch & Cut (Grundidee) Hinzufügen einer Schnittebene: schneidet den Punkt weg 43
Branch & Cut (Grundidee) Schnittebenenverfahren (Cutting Plane Method) neuer Lösungspunkt der LP-Relaxierung zulässig und damit optimal 45
Und wenn man gar keine Schnittebenen mehr findet? Branch jetzt: Branch-and-Cut Verfahren noch einmal allgemein 46
Branch & Cut (Grundidee) Separierungsproblem Löse Relaxierungen mit Schnittebenenverfahren. Cut Verzweige, wenn keine Schnittebenen gefunden werden, aber die Lösung nicht ganzzahlig ist. Branch Finde gute zulässige Lösungen basierend auf fraktionellen Lösungen. Exploit Schneide nichtprofitable Teilbäume weg. Bound 47
Branch & Cut (Grundidee) Bound Cut Branch
Eine typische B&C Berechnung Maximierungsproblem obere Schranke untere Schranke = zulässige Lösung wird besser 49
Alternative Relaxierung 2. Relaxierung: Entferne Subtour-Ungleichungen minimiere so dass e E x e c e δ ( v) x e 0 e x x e e = 2 1 ganzzahlig für alle für alle für alle e E e E v V 2-Matching Relaxierung 50
Branch & Cut für TSP Erhaltene Lösung: 0 1 2 1 0 0 3 0 1 0 1 0 1 4 1 5 0 0 1 0 Problem: Lösung ist nicht zusammenhängend 6 Aber: gibt untere Schranke 51
Bekannte Ungleichungen beim TSP Grad Gleichungen Subtour Bedingungen 2-Matching Ungleichungen Blossom Ungleichungen Comb Ungleichungen Cliquenbaum Ungleichungen Hypergraph Ungleichungen Separierungsproblem polynomiell Separierungsproblem offen Wie kommt man auf diese Ungleichungen: Polyedertheorie oder: Rechnen und dann Studium von nicht-zulässigen Lösungen 52
Comb-Ungleichungen Seien W, T 1,,T k V, wobei W der Griff (handle) und T i die Zinken (teeth) sind. Es muss gelten: T 1 W T 3 T 2 53
Comb-Ungleichungen Seien W, T 1,,T k V, wobei W der Griff (handle) und T i die Zinken (teeth) sind. Es muss gelten: 2-Matching Ungleichungen, wenn für alle i gilt: T i =2 54
2-Matching Ungleichungen Seien W, T 1,,T k V, wobei W der Griff (handle) und T i die Zinken (teeth) sind. Es muss gelten: Der Name kommt daher, weil die Ungleichungen das 2-Matching Polytop {x A n x=2,0 x 1, x ganzzahlig} (mit A n Inzidenzmatrix) zusammen mit A n x=2 und 0 x 1 vollständig beschreiben (Edmonds, 1965). 55
Die 2-Matching Ungleichungen sind gültig für alle 0/1- Vektoren, die charakteristische Vektoren von Touren sind. Beweis: Es gilt: 2-Matching Ungleichungen T 3 T 1 W T 2 56
2-Matching Ungleichungen Die 2-Matching Ungleichungen sind gültig für alle 0/1- Vektoren, die charakteristische Vektoren von Touren sind. l.s. ganzzahlig r.s. ganzzahlig weil k ungerade 57
Beispiel: Bayern 29 Städte in Bayern TSPLIB/bayg29.tspx 58
9 Coburg 12 Hof 3 Aschaffenburg 26 Schweinfurt 29 Würzburg 5 Bamberg 6 Bayreuth 28 Weiden 21 Nürnberg 1 Amberg 2 Ansbach 8 Cham 24 Regensburg 20 Nördlingen 13 Ingolstadt 10 Donauwörth 4 Augsburg 10 Landshut 27 Straubing 23 Passau 19 München 15 Landsberg 18 Memmingen 25 Rosenheim 14 Kempten 17 Lindau 11 Garmisch-Partenkirchen 22 Oberstdorf 7 Berchtesgaden 59
9 Coburg 12 Hof 3 Aschaffenburg 26 Schweinfurt 29 Würzburg 5 Bamberg 6 Bayreuth 28 Weiden 21 Nürnberg 1 Amberg 2 Ansbach 8 Cham e e x e =1 x e =0.5 20 Nördlingen 13 Ingolstadt 10 Donauwörth 24 Regensburg 10 Landshut 27 Straubing 23 Passau 4 Augsburg 19 München 15 Landsberg 18 Memmingen 25 Rosenheim 14 Kempten 17 Lindau 11 Garmisch-Partenkirchen 22 Oberstdorf 7 Berchtesgaden 60
3 Aschaffenburg 26 Schweinfurt 29 Würzburg 5 Bamberg 12 Hof 9 Coburg 6 Bayreuth 28 Weiden 21 Nürnberg 1 Amberg 2 Ansbach 8 Cham 2 verletzte Subtour- Ungleichungen und 2 verletze 2-Matching Ungleichungen e e x e =1 x e =0.5 20 Nördlingen 13 Ingolstadt 10 Donauwörth 24 Regensburg 10 Landshut 27 Straubing 23 Passau 4 Augsburg 19 München 15 Landsberg 18 Memmingen 25 Rosenheim 14 Kempten 17 Lindau 11 Garmisch-Partenkirchen 22 Oberstdorf 7 Berchtesgaden 61
9 Coburg 12 Hof 3 Aschaffenburg 26 Schweinfurt 29 Würzburg 5 Bamberg 6 Bayreuth 28 Weiden 21 Nürnberg 1 Amberg 2 Ansbach 8 Cham e e x e =1 x e =0.5 20 Nördlingen 13 Ingolstadt 10 Donauwörth 24 Regensburg 10 Landshut 27 Straubing 23 Passau 4 Augsburg 19 München 15 Landsberg 18 Memmingen 25 Rosenheim 14 Kempten 17 Lindau 11 Garmisch-Partenkirchen 22 Oberstdorf 7 Berchtesgaden 62
9 Coburg 12 Hof 3 Aschaffenburg 26 Schweinfurt 29 Würzburg 5 Bamberg 6 Bayreuth 28 Weiden 21 Nürnberg 1 Amberg 2 Ansbach 8 Cham e e x e =1 x e =0.5 20 Nördlingen 13 Ingolstadt 10 Donauwörth 24 Regensburg 10 Landshut 27 Straubing 23 Passau 4 Augsburg 19 München 15 Landsberg 18 Memmingen 25 Rosenheim 14 Kempten 17 Lindau 11 Garmisch-Partenkirchen 22 Oberstdorf 7 Berchtesgaden 63
9 Coburg 12 Hof 3 Aschaffenburg 26 Schweinfurt 29 Würzburg 5 Bamberg 6 Bayreuth 28 Weiden 21 Nürnberg 1 Amberg 2 Ansbach 8 Cham e e x e =1 x e =0.5 20 Nördlingen 13 Ingolstadt 10 Donauwörth 24 Regensburg 10 Landshut 27 Straubing 23 Passau 4 Augsburg 19 München 15 Landsberg 18 Memmingen 25 Rosenheim 14 Kempten 17 Lindau 11 Garmisch-Partenkirchen 22 Oberstdorf 7 Berchtesgaden 64
Spaltengenerierung für TSP Idee: 1. Starte nicht mit allen Variablen, sondern nur mit einer Teilmenge E E (dies entspricht einer Teilmenge der Spalten des ILPs). 2. Bewährt hat sich Sparse Graph Reserve Graph ganz G. 3. z.b. als Sparse Graph den 5-Nächsten Nachbar Graphen, als Reserve Graph den 10-Nächsten Nachbarn 4. Löse die LP-Relaxierung LPRel bzgl. E 5. Nun muss man testen, ob diese Lösung auch eine gültige Lösung der LP-Relaxierung bzgl. E ist.
Spaltengenerierung für TSP Idee: 1. Starte nicht mit allen Variablen, sondern nur mit einer Teilmenge E E (dies entspricht einer Teilmenge der Spalten des ILPs). 2. Löse die LP-Relaxierung LPRel bzgl. E 3. Nun muss man testen, ob diese Lösung auch eine gültige Lösung der LP-Relaxierung bzgl. E ist. 4. Falls dies nicht der Fall ist, müssen zusätzliche Spalten hinzugefügt werden Re-Optimierung über dem neuen E gehe zu 3. 5. Sonst: Falls die Lösung von LPRel ganzzahlig ist Optimallösung gefunden Branch&Cut&Price 6. Sonst: Branching
Pricing-Problem Geg. ist eine Lösung x* von LPRel bzgl. E E. Ist diese optimal auch bzgl. E? Eine neue Spalte t E\E kann den Lösungswert nur dann verbessern, wenn die reduzierten Kosten der dazugehörigen Variablen kleiner als 0 sind. Reduzierte Kosten für neue Variable t: c t - π A t, wobei A t die Spalte t der Matrix bezeichnet c t der dazugehörige Kostenkoeffizient, und π der Lösungsvektor der dualen Variablen Suche also eine Spalte t, für die der Wert c t - π A t < 0. Bei TSP: probiere zunächst alle Kanten aus Reserve Graph, wenn nicht erfolgreich, dann alle restlichen Kanten aus G.
Pricing-Problem Bemerkung: Für alle Spalten, die bereits in E enthalten sind gilt: die reduzierten Kosten von Lösung x* sind 0, sie werden also nicht wieder ausgewählt.
Experimentelle Resultate für TSP mittels Branch & Cut Jünger, Reinelt, Rinaldi: The Traveling Salesman Problem, TR 1994, IASI CNR Rom www.gatech.edu Concorde, 2003 Problem BC- Knoten Subtour- Relaxierung Anzahl Cuts Zeit (s) BC- NEU Zeit NEU pr107 1 100% 111 10 1 0,37 pr226 1 100% 296 87 1 1,06 lin318 5 99,7% 1124 344 1 2,78 rat575 111 99,3% 24185 7666 17 70,30 nrw1379 615 98,5% 226518 155221 7 108,12 pr2392 3 98,8% 11301 7056 1 35,04 und jetzt: auf zur neuen Challenge:
World Tour: 1.904.711 Städte Tour der Länge 7,516,353,779 (Keld Helsgaun, 2003) Garantie: Tourlänge 0.076% nahe an OPT(Concorde TSP code) mittels Variante von Lin-Kernighan s. nächste VO aktuelle Challenge 70