Polynomial Time Approximation Schemes for Euclidean Traveling Salesman Problems Benjamin Thome Gliederung Einleitung Definitionen ETSP in R2 Der Algorithmus in R2 ETSP in Rd Idee Algorithmus für Rd PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 2 von 25 Einleitung Traveling Salesman Problem (TSP): Gegeben n Knoten und für jedes Knotenpaar {i, j} Distanz di,j. Gesucht geschl. Weg, der jeden Knoten genau einmal durchläuft und die geringsten Kosten verursacht. PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 3 von 25 Einleitung Beispiele: Rundreise eines Vertreters ET: Kürzester Weg des Roboters zum Bohren von Löchern in Platinen PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 4 von 25 Einleitung Genaue Optimierung ist NP-hard (Karp 1972, Papadimitriou 1977) Heute PTAS-Algorithmus aus Paper: R2 Laufzeit beträgt O(n(logn)(O(c))) Rd Laufzeit beträgt O(n(logn)(O(sqrt(d)*c)^d-1)) PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 5 von 25 Einleitung Polynomial Time Approximation Scheme (PTAS): polynomial-time Algorithmus, der für jedes feste c > 1, das Problem innerhalb des Faktors OPT*(1 + 1/c) annähern kann. PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 6 von 25 Definitionen Für p ≥ 1 ist die Distanz zwischen zwei Punkten (x1,…,xd) und (y1,…,yd) ∈ Rd in der l p-Norm definiert als ∑di=1 (|xi – yi|p)1/p. Für p =2 heißt die Norm Euklidische Norm. Bsp. In R2: P=(7,1), Q=(2,-2) => d (P,Q) = sqrt((7-2)2 + (1+2)2) = 6 PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 7 von 25 Definitionen Bounding box: kleinstes (achsenparallele) Quadrat, das alle Knoten des TSP enthält. L := Länge der Seiten. Dissection: Rekursive Partitionierung der BB Quadtree OPT: Kosten der optimalen salesman tour PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 8 von 25 Definitionen m, r ∈ Z+. m-reguläre Menge von Portalen für verschobene Zerlegung ist Menge von Punkten auf den Kanten der Quadrate darin, ein Portal auf jeder seiner 4 Ecken und m andere auf jeder Kante. PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 9 von 25 Definitionen Ein salesman path ist ein Weg in R2, der alle Input-Knoten und einige Untermengen von Portalen besucht. (m, r)-light i. B. auf die verschobene Zerlegung, wenn jede Kante von jedem Quadrat höchstens r-mal (immer bei Portal) kreuzt. PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 10 von 25 ETSP in R2 Patching-Lemma: Es gibt eine Konstante g > 0, so dass gilt: S Streckensegment mit Länge s, P ein geschl. Weg, der S mind. 3-mal kreuzt. => es ex. Streckensegment auf S, dessen Länge höchstens g ⋅ s beträgt und das Hinzufügen zu P liefert einen geschl. Weg P’, der S höchstens 2-mal kreuzt. PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 11 von 25 ETSP in R2 Lemma: Falls die dmin zwischen zwei Knoten mindestens 4 beträgt gilt: l: vertikal ∑ t(p, l) + l: horizontal ∑ t(p, l) ≤ 2T (T := Länge von P, l Gitterlinie der BB) PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 12 von 25 ETSP in R2 Structure Theorem für Euklidische TSP in R2: Sei c > 0 const, die dmin (≠0) zw. 2 Knoten in TSP = 8 und L Größe der BB. Die Verschiebungen 0 ≤ a, b ≤ L seien zufällig gewählt. Dann gilt Wahrsch. ≥ ½: Es ex. (m, r)-light salesman path mit Kosten von ≤ (1 + 1/c)*OPT, wobei m = O(c logL) und r = O(c). PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 13 von 25 Der Algorithmus in R2 Perturbation: Aufbereitung des TSP Konstruktion eines verschobenen Quadtrees (und Derandomization) Dynamische Programmierung (Finde einen optimalen (m, r)-light salesman path zu dem verschobenen Quadtree) Laufzeit: (n(logn)(O(c))) PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 14 von 25 Der Algorithmus in R2 Perturbation: allen Knoten ganzzahlige Koordinaten zuweisen alle Distanzen (≠ 0) zwischen zwei Knoten sind mindestens 8 Einheiten Höchste Distanz zwischen zwei Knoten ist O(n) => Gitternetz der Maschengröße L/8cn über BB gelegt, jedem Knoten wird nächste Gitterpunkt zugewiesen. Dann alle Distanzen dividieren mit L/64nc PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 15 von 25 Der Algorithmus in R2 Verschobener Quadtree: zufällig Verschiebung (a,b) („Randamization“) gewählt (a, b ∈ [0,L) ). Dissection der BB verschieben und Koordinaten mod L reduziert. zugehöriger Quadtree erstellen. „Derandomization“ (alle Paare L2 (a,b) durchprobieren, Laufzeit!!!). PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 16 von 25 Der Algorithmus in R2 Dynamische Programmierung Idee: S Quadrat des versch. QT und optimaler salesman path kreuzt die Grenzlinien von S 2p ≤ 4r mal. a1,…, a2p dazu verwendeten Portale. Dann ist der Teil des Weges innerhalb von S eine Abfolge von p Wegen mit für i = 1,…, p verbindet der i-te Weg a2i-1 und a2i Weg besucht alle Knoten innerhalb von S Alle p Wege zusammen sind (m,r)-light PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 17 von 25 Der Algorithmus in R2 Dynamische Programmierung Da der salesman path optimal ist, p Wege die billigste Variante, die i) – iii) erfüllt. => (m,r) multipath problem mit Input: nichtleeres Quadrat im verschobenen Quadtree Menge von ≤ r Portalen von jeder der 4 Kanten dieses Quadrates, so dass die Summe der Inhalte dieser Mengen 2p ≤ 4r ist Paarungen {a1,a2}, …, {a2p-1,a2p} zwischen je zwei Portalen aus b) ZIEL: Finde min cost collection der p Wege in den Quadraten, die (m,r)-light ist (Programmierung) PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 18 von 25 ETSP in Rd Patching Lemma: salesman path schneidet (d-1)-dimensionalen Würfel (ohne Knoten darin) k-mal, so kann #Schnitte ≤ 2 reduziert werden. (Erweiterung des sp mit Segmenten im Würfel, deren Länge O(k(1-/(d-1)))*W) beträgt (W := Länge Würfelseite PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 19 von 25 ETSP in Rd Structure Theorem für Euklidische TSP in Rd: c > 0 const, dmin (≠0) zw. 2 Knoten =8, L Größe BB. Die Verschiebungen 0 ≤ a1, a2, a3, …, ad < L zufällig gewählt. Dann gilt mit Wahrscheinlichkeit ≥ ½: Die Zerlegung mit Verschiebung (a1, a2, …, ad) hat einen zugehörigen (1+1/c)-angenäherten (m, r)-light salesman path. (m = O(sqrt(d)*c logL)d-1, r = O((sqrt(d)*c)(d-1)). PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 20 von 25 Der Algorithmus in Rd Perturbation Konstruktion eines verschobenen Quadtrees Dynamische Programmierung PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 21 von 25 Der Algorithmus in Rd Perturbation: allen Knoten ganzzahlige Koordinaten zuweisen alle Distanzen (≠ 0) zwischen zwei Knoten sind mindestens 8 Einheiten Höchste Distanz zwischen zwei Knoten ist O(n) => Gitternetz der Maschengröße L/(8cn*sqrt(d)) über BB gelegt, jedem Knoten wird nächste Gitterpunkt zugewiesen. Dann alle Distanzen dividieren mit L/(64cn*sqrt(d)) PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 22 von 25 Der Algorithmus in Rd Verschobener Quadtree: zufällig Verschiebung (a1,a2, …,ad) Dissection der BB zugehöriger Quadtree (=2d-ary tree) erstellen „Derandomization“ PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 23 von 25 Der Algorithmus in Rd Dynamische Programmierung Grundsätzliche gleich zu R2 Die 2d-ary Trees haben O(2dnlogn) Gebiete Laufzeit: O(n(logn)(O(sqrt(d)*c)^(d-1)) PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 24 von 25 ENDE Danke für die Aufmerksamkeit PTAS for Euclidean TSP – Benjamin Thome – 16. Juli 2007 – Folie 25 von 25