Schnittebenenverfahren für das symmetrische TSP Sebastian Peetz Mathematisches Institut Universität Bayreuth 19. Januar 2007 / Blockseminar Ganzzahlige Optimierung, Bayreuth
Gliederung 1 Das symmetrische TSP Einführung in das TSP Das symmetrische TSP als Lineares Programm 2 Allgemeines Schnittebeneverfahren
Gliederung 1 Das symmetrische TSP Einführung in das TSP Das symmetrische TSP als Lineares Programm 2 Allgemeines Schnittebeneverfahren
Einführung in das TSP Das Travelling Salesman Problem (TSP) Das Problem des Handlungsreisenden: Kürzeste Tour durch vorgegebene Städte Jede Stadt genau einmal besuchen Zuletzt Ankunft am Startpunkt Gesucht: Kürzester Hamiltonkreis
Einführung in das TSP Verschiedene TSPs Das symmetrische (euklidische) TSP: Graph G = (V, E) mit Knoten V und ungerichteten Kanten E Es gilt die -Ungleichung für die Gewichte der Kanten Oft versehen mit der Euklidischen Norm Das Chinese Postman Problem: Gesucht: Kürzester geschlossener Weg in G, der alle Kanten enthält Lösbar in polynomieller Zeit
Einführung in das TSP Lösungsansätze zum TSP [tsplength] Berechnung der Lösung des kürzesten Wegs: (1) Setze L := c min und U := c max als Schranken (2) Solange L < U : Setze b = L+U 2 Falls Hamilton-Tour der Länge b existiert setze U = b, sonst L = b + 1
Einführung in das TSP Lösungsansätze zum TSP [tsptour] Berechnung der TSP-Tour: (1) Setze U auf den kürzesten Weg aus tsplength (2) Für alle u = 1, 2,..., n und v = 1, 2,..., n : Setze s uv = c uv und c uv = c max n + 1 Falls keine Hamilton-Tour der Länge U existiert setze c uv = s uv
Das symmetrische TSP als Lineares Programm TSP in der ILP-Formulierung Das symmetrische TSP kann folgendermaßen als ganzzahliges lineares Programm dargestellt werden: TSP-ILP min c uv x uv (1) uv E x(δ(v)) = 2, u V (2) x(c) C 1, C E n, C < n (3) x uv {0, 1}, u, v V (4)
Allgemeines Schnittebeneverfahren Problem Lösung eines lineraren Problems der Form: min { c T x x P } (5) mit dem Polyeder P := {x Ax b, x ganzzahlig} (6) Problem: Ganzzahlige Lösung kann nicht in polynomialer Laufzeit gefunden werden!
Allgemeines Schnittebeneverfahren LP-Relaxierung Lösungansatz: Lösung x des linearen Programs mit x > 0 LP-Relaxierung Bei nichtganzzahligem x schneide Teil des Polyeders ab Schnittebene grenzt Lösung des linearen Programs ein und erzeugt neue Lösung x, die möglicherweise ganzzahlig ist Iteratives Verfahren, solange Schnittebenen gefunden werden Problem: Finden von Schnittebenen
Allgemeines Schnittebeneverfahren Beispiel
Allgemeines Schnittebeneverfahren Beispiel 3 Städte Abschneiden aller unzulässigen Lösungen x 1 + x 2 + x 3 2 Schnittebene grenzt mögliche Lösungen ein Optimale Lösung (1, 1, 1)
Allgemeines Schnittebeneverfahren Algorithmus Schnittebenenverfahren 1 Wähle Anfangs-Polytop Q QT n z.b. mit x(δ(v)) = 2 2 Wiederhole folgende Schritte 1 Löse das lin. Programm min { c T x x Q } um x zu erhalten 2 Falls x eine TSP-Tour darstellt Optimale Lösung 3 Sonst finde Ungleichung a T x α die Q n T erfüllt, aber nicht x, d.h. a T x > α 4 Falls keine solche Ungleichung gefunden werden kann STOP 5 Füge die neue Ungleichung dem lin. Programm hinzu
Allgemeines Schnittebeneverfahren Ziel Ziel ist es, eine ganzzahlige Lösung durch Hinzunahme einzelner Ungleichungen zu finden Problem 1 Welche Ungleichungen kann man finden? 2 Nicht immer kann ganzzahlige Lösung gefunden werden! Ausweg durch Facetten von QT n und Branch & Bound
Facetten von Q n T Man benötigt Ungleichungen, die Q n T eingrenzen. Facetten von Q n T Grad-Gleichungen Subtour-Eliminations-Bedingungen 2-matching-Bedingungen Kamm-Ungleichungen etc. möglichst viele, da QT n sehr viele Facetten besitzt.
Facetten von Q n T Anzahl der Facetten Bei n = 7 = 3.437 Facetten Bei n = 8 = 194.187 Facetten Anzahl der Subtour-Eliminations-Bed. Bei n = 7 = 56 Ungleichungen Bei n = 8 = 119 Ungleichungen Bei n = 15 = 16.368 Ungleichungen
Kamm-Ungleichungen Um eine große Anzahl von Ungleichungen für die Facetten von Q n T zu bekommen, sind weitere Bedingungen wie die Kamm-Ungleichungen notwendig. Dafuer müssen für Knotenmengen W i V für i = 0, 1,..., k folgende Bedingungen gelten: Bedingungen W 0 W i 1 für i = 0, 1,..., k (7) W i W 0 1 für i = 0, 1,..., k (8) Wi W j = 0 für 1 i < j k (9) k ungerade. (10)
Kamm-Ungleichungen Diese Eigenschaften kann man wie einen Kamm mit Griff W 0 und Zähnen W i für i = 1,..., k anordnen. Für solche Objekte kann man nun die Kamm-Ungleichungen wie folgt definieren: Kamm-Ungleichung a c x := k x(w i ) W 0 + i=0 k ( W i 1) i=1 1 2 k (11) Die Rechte Seite der Ungleichung wird dabei als Größe s(c) des Kammes bezeichnet.
Kamm-Ungleichungen Kamm-Ungleichungen definieren Facetten des Polyeder Q n T Sehr gut geeignet für das Schnittebenenverfahren Darstellung anderer Ungleichungen möglich, z.b. Subtour-Eliminations-Bedingungen (k = 1, W 0 = 1) 2-matching-Bedingungen ((7), (8) Gleichungen) Große Anzahl von Ungleichungen für das Schnittebenenverfahren
Beispiel Gegeben sei Kamm mit n = 8 dem Griff W 0 = {1, 2, 3, 4} sowie den Zähnen W 1 = {1, 2, 5, 6}, W 2 = {3, 7} und W 3 = {4, 8} Man erhält damit die Ungleichung 2x 12 + x 13 + x 14 + x 15 + x 16 + x 23 + x 24 + x 25 + x 26 + x 34 + x 37 + x 48 + x 56 7 (12)
Beispiel Mit Hilfe der Grad-Gleichungen 8 j=2 x 1j = 2 x 12 + 8 j=3 x 2j = 2 x 12 aus der Gleichung eliminieren x 34 + x 37 + x 48 + x 56 3 + x 17 + x 18 + x 27 + x 28 (13) Falls also x 34 = x 37 = x 48 = x 56 = 1 gilt auch x 17 + x 18 + x 27 + x 28 1 TSP-Tour enthält e {[1, 7], [1, 8], [2, 7], [2, 8]}
Theorem Theorem Jede Kamm-Ungleichung definiert eine Facette von Q n T. D.h. sei n 6 und W 0, W 1,..., W k V mit (i) W 0 W i 1 und W i W 0 1 für i = 0, 1,..., k und (ii) W i W j = für 1 i < j k erfüllen, wobei k 3 eine ungerage ganze Zahl ist. Dann gilt, die Kamm-Ungleichung k x(w i ) W 0 + i=0 k ( W i 1) i=1 1 2 k (14) ist eine Facette von Q n T.
Beweis Beweisskizze Facetteneigenschaft bewiesen fuer 2-matching-Kamm, d.h. Kamm mit 3 Knoten im Griff und je 2 Knoten in den 3 zugehörigen Zähnen Lifting Theorem: Bei hinzufuegen von 2 neuen Zähnen erhält man Facette von Q l+4 T Iterativ erzeugt man Kamm-Ungleichung, die Facette von Q l+4i T ist für i-ten Interationsschritt
Beweis Beweisskizze Lifting Theorem: Hinzufügen eines neuen Knotens zu einer Menge W 3 erzeugt wieder eine Facette Lifting Theorem: Falls mind. 2 Knoten einzelnd in einer Knotenmenge vorkommen, oder bei einem einzelnen 2 nicht zur Menge gehörige, so kann man der Menge einen weiteren Knoten hinzufügen um eine Facette zu erhalten Man fügt alle benötigten Knoten dem Griff hinzu
Beweis Beweisskizze Man erhält Ungleichung für Facette von Q p T mit p = W 0 k + 2k und k 2-elementigen Zähnen i=1 W i Gleiches Verfahren kann man für die einzelnen Knoten in den Zähnen anwenden Man fügt folglich alle benötigten Knoten den Zähnen hinzu
Beweis Beweisskizze Fehlen noch Knoten in {Zähne Griff} Lifting Theorem: Bei einem Knoten in exakt 2 Knotenmengen kann man beiden Mengen weitere Knoten hinzufügen und erhält wieder eine Facette Ergänze die noch fehlenden Knoten Man kann so jede beliebige Kamm-Ungleichung erzeugen und erhält somit die gesuchte Facette von Q n T
Erreichen der Ganzzahligkeitdurch Branch&Bound Um die Probleme mit der nicht ganzzahligen Lösung aus dem Schnittebenenverfahren zu beseitigen kombiniert man das Schnittebeneverfahren mit dem allgemein gängigen Branch & Bound Allgorithmus für lineare Programme. Idee Geg: Nicht-ganzzahlige Lösung x aus dem Schnittebenenverfahren Aufteilen in zwei separate lineare Programme durch erzwungene Ganzzahligkeit in einer Komponente Lösung der 2 neuen ILP wieder mit Schnittebenenverfahren
Ende Vielen Dank für die Aufmerksamkeit.