Vortrag am 27. April 2006 Betreuer: Dr. Gerold Jäger Prof. Dr. Paul Molitor Lehrstuhl für Datenstrukturen und eziente Algorithmen Martin-Luther-Universität Halle-Wittenberg http://www.informatik.uni-halle.de/
Inhaltsverzeichnis Einführung 1 Einführung Motivation TSP,ATSP,HCP STSP wichtige Begrie 2 Klassisches Verfahren von Lin-Kernighan 1973 Verbesserungen 3 Held-Karp-Approximation α und βwerte 4 SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP
Motivation Einführung Motivation TSP,ATSP,HCP STSP wichtige Begrie Kürzeste Tour durch 15112 Städte Leiterplatte mit 2392 Bohrungen Applegate, Bixby, Chvátal, Cook 2001 Padberg und Rinaldi 1987
Heuristik von Helsgaun für das TSP Motivation TSP,ATSP,HCP STSP wichtige Begrie führende TSP-Heuristik (derzeit gröÿte TSP-Probleme gelöst) exakte Verfahren (B&B): wenig Knoten (< 1000), langsam Heuristiken: viele Knoten (500 000), schneller Aufgabe: Heuristik verbessern (insbes. durch "Toleranzen")
Ausgangspunkt Einführung Motivation TSP,ATSP,HCP STSP wichtige Begrie TSP geg: C R n,n... Kostenmatrix. Kante (i, j) hat Kosten c ij ges: Tour T = (i 1,..., i n ) mit i j i k und i j {1, 2,... n}, so dass c(t ) = c ik i k+1 + c ini 1 minimal symmetrisch (STSP) : i, j : c ij = c ji andernfalls ATSP metrisch : i, j, k : c ik c ij + c jk (Dreiecksungleichung) euklidisch : c ij geometrischer Abstand euklidisch metrisch und symmetrisch HCP - Hamilton Cycle Problem Existiert im ungerichteten Graphen G = (V, E) eine Tour T? Rösselsprungproblem
g : ATSP STSP Motivation TSP,ATSP,HCP STSP wichtige Begrie Transformation nach Jonker & Volgenant Setze D = (d ij ) R 2n,2n, M = max(c ij ) + 1 { cij i j i, j {1,..., n} : d n+i,j := d j,n+i := M i = j Alle anderen d ij := M Nachteil: Problemgröÿe verdoppelt Anzahl der Matrixelemente vervierfacht! ezientes Verfahren für STSP löst auch ATSP ezient
ATSP-Beispiel P Einführung Motivation TSP,ATSP,HCP STSP wichtige Begrie STSP(P)
h : HCP STSP Einführung Motivation TSP,ATSP,HCP STSP wichtige Begrie Transformation (Helsgaun) Setze D = (d ij ) R n,n mit { 0 (i, j) E(G) i, j : d ij := 1 sonst G hamiltonsch c(stsp(d)) = 0 HCP NP-vollständig für TSP, ATSP, HCP genügt es STSP zu lösen (unser Ziel)
Dilemma: STSP NP-vollständig Motivation TSP,ATSP,HCP STSP wichtige Begrie Berechnung optimaler Tour zu aufwendig approximative / heuristische Verfahren
Motivation TSP,ATSP,HCP STSP wichtige Begrie Toleranzen im vollständigen Graphen G = (V, E) Menge aller optimalen Touren unter Kosten c T c := {T opt T opt ist Tour, c(t opt ) = min c(t )} T ist Tour Beobachtungen für x E: c(x) hinreichend klein c(x) noch kleiner c(x) hinreichend groÿ c(x) noch gröÿer T opt T c : x T opt x T c T opt T c : x / T opt x / T c
Motivation TSP,ATSP,HCP STSP wichtige Begrie Toleranzen im vollständigen Graphen G = (V, E) Manipulation der Kostenfunktion c Seien x, y E. { c(y) + α falls x = y c α,x (y) := c(y) sonst obere Toleranz o T und untere Toleranz u T Seien T T c optimale Tour, x T und y / T. o T (x) := sup{α R T T c+α,x } u T (y) := sup{α R T T c α,y }
Motivation TSP,ATSP,HCP STSP wichtige Begrie Eigenschaften (vgl. Molitor, Jäger, Goldengorin) Unabhängigkeit der Toleranzen von einer speziellen Lösung Seien x, y E und T 1, T 2 T c mit x T 1 und y / T 2... o T1 (x) = o(x) = sup{α R x T c+α,x } u T2 (y) = u(y) = sup{α R y T c α,y } Folgerungen: Toleranzen einer optimalen Tour charakt. Gesamtproblem nur eine Lösung aus T c nötig zur Berechnung
Resultat Einführung Motivation TSP,ATSP,HCP STSP wichtige Begrie Verbieten und Erzwingen von Kanten (Nebenbedingungen) Seien in, out E mit in out =. D out in := {T T ist Tour, in T, out T = } T c out in := {T opt T opt D out in, c(t opt ) = min c(t )} T D out in Berechnung von Toleranzen für ein TSP Seien T T c, x T, y / T, T 1 T c x und T 2 T c y. o(x) = c(t 1 ) c(t ) u(y) = c(t 2 ) c(t )
Toleranzen Beispiel Motivation TSP,ATSP,HCP STSP wichtige Begrie T opt = (a, b, c, d) o(a, b) = o(d, c) = c(a, c, b, d) c(t opt ) = 17 10 = 7 o(b, c) = o(a, d) = c(a, c, d, b) c(t opt ) = 15 10 = 5 u(a, c) = u(b, d) = c(a, c, d, b) c(t opt ) = 5
k-optimalität Einführung Motivation TSP,ATSP,HCP STSP wichtige Begrie k-swap / k-opt Austausch von k Kanten aus einer Tour, so dass eine neue Tour entsteht. k-optimale Tour Eine Tour heiÿt k-optimal, wenn es keinen r-swap mit 2 r k gibt, der die Tour verbessert
k-optimalität Einführung Motivation TSP,ATSP,HCP STSP wichtige Begrie Beobachtung: desto gröÿer k, desto "optimaler" die Tour Implementierung O(n k ) Praxis: k 5
Lin-Kernighan-Heuristk 1973 Verbesserungen Basis für Helsgauns Erweiterungen Approximation von k-optimalen Touren Backtracking basierend auf k-swaps, k {2, 3} k dynamisch gesteuert viele weitere Kriterien zur Einschränkung des Suchraums
Lin-Kernighan-Heuristk 1973 Verbesserungen Verbesserungen von Lin und Kerninghan Suche weiter einschränken zuvor entnommene Kante nicht hinzunehmen zuvor hinzugenommene Kante nicht entnehmen Suche nach Verbesserungen abbrechen, falls gefundene Tour schon früher einmal gefunden spart sinnlose Suchzeit für Tour, die schon einmal nicht verbessert werden konnte betrachte nur Kanten zu 5 nächstgelegenen Nachbarn 1... 1 Meine Aufgabe: Ersetzen mit anderen (toleranten) Kanten
Verbesserungen nach Keld Helsgaun Held-Karp-Approximation α und βwerte erste Idee von Helsgaun Sofortige Anwendung verbessernder k-swaps (ohne "Sammeln") Helsgaun: Einschränkung auf 5 nächsten Nachbarn ungeeignet Abhilfe: Idee der Prioritäten Statt Kanten 5 nächster Nachbarn verwende Kanten höchster Priorität.
Untere Schranken Einführung Held-Karp-Approximation α und βwerte MST Aufspannender Baum mit minimalen Kosten minimaler 1-Baum Sei G = (V, E) ein Graph mit Kostenmatrix C, v 1 V und M ein MST für den Graphen G\v 1, dann ist M ergänzt um zwei kürzeste Kanten von v 1 ein minimaler 1-Baum. Vorsicht... 1-Baum ist kein Baum! MST und minimaler 1-Baum liefern untere Schranken für STSP (in polynomieller Zeit berechenbar).
1-Baum Veranschaulichung Held-Karp-Approximation α und βwerte Beobachtung: MST und 1-Baum viele Kanten mit optimaler Tour gemeinsam
Held-Karp-Approximation Held-Karp-Approximation α und βwerte 1-Baum verbessern via Transformation der Kostenmatrix Addition von x ändert optimale Tour nicht (aber min. 1-Baum) Allgemein: φ : C D mit d ij = c ij + π i + π j setze π := (π 1,..., π n ) und ω(π) := c(t π ) 2 π i (Rücktr.) T π min. 1-Baum für D, ω(π) untere Schranke für STSP ω(π) max mittels Subgradientenverfahren (Numerik)
α-werte Einführung Held-Karp-Approximation α und βwerte Sei T min. 1-Baum und T ij min. 1-Baum mit (i, j) T ij. α-werte Setze α(i, j) := c(t ij ) c(t ). Kostenänderung min. 1-Baums bei Aufnahme von (i, j) Lemma α(i, j) 0 (i, j) T T ij = T α(i, j) = 0 α-werte in O(n 2 ) berechenbar Beobachtung: α-werte sind erweiterte untere Toleranzen!
Held-Karp-Approximation α und βwerte Zusammenfassung: Helsgaun-Heuristik mache n Versuche (Trials) generiere "Greedy"-Anfangstour Anwendung k-swaps, k {1,..., 5} dynamisch Approximation k-optimaler Tour verbessere α-werte der Tourkanten
SNN vs α-werte (SLKH) SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP SNN: Nächster Nachbar (analog Lin und Kerninghan) ca. 70 % der symmetrischen TSPLIB-Beispiele getestet Cluster Uni-Halle: VLSI-Beispiele (noch in Arbeit)
SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP
SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP
SRX-Toleranzen, X 2 SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP G = (V, E) tol SRX relaxierte Toleranzen Seien a, b V, Sort c (E(a)) = [k 1, k 2,..., k n ] mit c(k i ) c(k i+1 ). tol SRX (a, b) = (x 1) c(a, b) X c(k i ) i=2 tol SR2 beliebt für Branching bei Branch&Bound-Algorithmen (TSP, Steiner Bäume uvm.) k i, k j E(a) : k i SRX k j k i SNN k j c(k i ) c(k j ) Sort SNN (E(a)) = [k 1, k 2,... ] = Sort SRX (E(a))
SMTE-Toleranz Einführung SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP Seien a, b V. Erweiterung der relaxierten Toleranz... SMTE-Toleranz (TSP-Applet von Prof. Sibeyn) Sort c (E(a)) = [k 1, k 2,..., k n ] mit c(k i ) c(k i+1 ), Sort c (E(b)) = [l 1, l 2,..., l n ] mit c(l i ) c(l i+1 ). c(k 3 ) c(k 1 ) falls c(a, b) = c(k 1 ) tol SMTE (a, b) = c(k 3 ) c(k 2 ) falls c(a, b) = c(k 2 ) + c(k 2 ) c(a, b) sonst c(l 3 ) c(l 1 ) falls c(b, a) = c(l 1 ) c(l 3 ) c(l 2 ) falls c(b, a) = c(l 2 ) c(l 2 ) c(b, a) sonst
SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP
SMTESOX-Toleranz SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP Subgradienten Optimierung für SMTE Verallgemeinerung auf X Kanten
SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP SMTESOX-Toleranzen: Bestimmung optimales X
SMTESO2-Toleranz im Vergleich SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP
SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP SSP3AX-Toleranzen, X {1,..., n 2} Toleranz bezüglich X billigster (alternativer) Wege metrisch: Kante + billigster Weg bilden 3-Eck gut geeignet für "Drilling"-Probleme (*.tsp aus TSPLIB) SSP3AX-Toleranzen Seien a, b V, Sort SSP3 (V \ {a, b}) = [v 1, v 2,..., v n 2 ] mit c(a, v i ) + c(v i, b) c(a, v i+1 ) + c(v i+1, b). tol SSP3AX (a, b) = X [c(a, v i ) + c(v i, b)] X c(a, b) i=1
SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP SSP3AX-Toleranzen: Bestimmung optimales X
SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP SSP3AX-Toleranzen für "Drilling"-Probleme
SSP3A6-Toleranz im Vergleich SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP
D2OPT-Toleranzen: Idee SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP eingeschränkte 2-Swap-Nachbarschaft 2OPT (T, k) = Touren, die aus T durch Anwendung eines 2-Swaps durch Kante k entstehen D2OPTI-Toleranz Gegeben eine Tour T (z.b. durch Tourle) und Kante k E. tol D2OPT (T, k) := sup{α G 2OPT (T, k), c α,k (G) c α,k (T )} Toleranz bzgl. T und bestem 2-Swap durch k
D2OPT-Toleranzen: Berechnung SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP Berechnung der D2OPTI-Toleranz Tol D2OPTI (T, k) = max{c(alt11) + c(alt22) c(1, 6), c(alt12) + c(alt21) c(3, 4)} c(k)
D2OPT-Toleranzen: Verbesserungen SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP Problem 1: starke Tendenz zu lokalen Minima Problem 2: Updates aufwendig, O(rn) je r-swap Knoten später aktualisieren (D2OPT*XPD, dirty nodes). Erst aktualisieren, wenn mehr als X% Knoten "schmutzig". billige Kanten bevorzugen d.h. Mischen mit Kosten der Kante (zusätzliche Multiplikationen!)
SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP Einuss schmutziger Knoten mit SNN Anfangstour (andere analog)
SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP Bestimmung optimaler Mischungsfaktor (in Arbeit)
SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP D2OPT-Toleranzen geeignet für rl*.tsp aus TSPLIB
D2OPTMTENN-Toleranz im Vergleich SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP
SLAP-Toleranz Einführung SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP Toleranz zum linearen Zuordnungsproblem Implementierung von Dr. Jäger, Danke :-) Problem 1: O(n 2 ) Speicherverbrauch nur mittelgroÿe Probleme (bis ca. 5000 Knoten) Problem 2: Toleranz für asymmetrische Probleme schlecht für symmetrische Probleme
SLAP-Toleranz im Vergleich SNN,SRX, SMTE und SMTESOX SSP3AX D2OPT SLAP
Doppelbrücken-Technik nach Johnson und McGeoch Helsgaun: jeder Trial neue Anfangstour Verlust von k-optimalität Verallgemeinerung von Doppelbrücken zu r-swap-kicks,r > k weniger Swaps bis zur k-optimalität
k-swap-kicks im Vergleich (VLSI-Beispiele)
Backbone-Techniken nach Zhang und Looks Backbone-Kante Kante k heiÿt Backbone-Kante gdw. k T c Pseudo-Backbone-Kante Sei M eine Menge lokal optimaler Touren (Initialisierungsphase). Kante k heiÿt Pseudo-Backbone-Kante für M, falls k M Verwende die 5 Pseudo-Backbone-wahrscheinlichsten Kanten Verbesserung der bisher bekannten oberen Schranke des Problems xsc mit 6880 Knoten um 2 Kosteneinheiten
Backbone-Approximation im Vergleich (VLSI-Beispiele)
Backbone-Approximation im Vergleich (VLSI-Beispiele)
Backbone basierte Toleranzen Approximation der Toleranzen bezüglich optimaler Touren verwende statt optimale Touren beste entsprechende Touren aus Initialisierungsphase
Backbone-Toleranzen im Vergleich (VLSI-Beispiele)
Ausblick schnellere D2OPT-Updates: O(r) statt O(rn) weitere Mischungen untersuchen (SLHK + SMTESO2 +... ) Ausnutzen oberer Toleranz vom min. 1-Baum SLAP-Modikationen (kleine Kreise verbieten) DTP3: SSP3 mit alternativen Wegen über gefundene Touren SSP*AX-Toleranzen... bereits in Diplomarbeit beschrieben
Backbone-Techniken im Vergleich (VLSI-Beispiele)