Effiziente Algorithmen und Komplexitätstheorie Vorlesung Thomas Jansen Ingo Wegener 22.05.2006 1 Aktuell Aktuell Raumänderung am 01.06.2006 (Donnerstag) im GB V, HS 113 Bitte nicht vergessen! 2 Approximationsalgorithmen Algorithmus Güte O(1) Laufzeit p(|I |) Name Approximationsalgorithmus Klasse APX Güte Laufzeit Name 1+ε p(|I |) PTAS PTAS Güte Laufzeit Name 1+ε p(|I |, 1/ε) FPTAS FPTAS APX PTAS FPTAS P 3 TSP approximieren Problem TSP Eingabe N ∈ N, C : {1, . . . , N}2 → N ∪ {∞} Ausgabe Permutation π von {1, . . . , N} mit N−1 P c(π(i), π(i + 1)) + c(π(N), π(1)) minimal i=1 4 TSP approximieren Problem TSP Eingabe N ∈ N, C : {1, . . . , N}2 → N ∪ {∞} Ausgabe Permutation π von {1, . . . , N} mit N−1 P c(π(i), π(i + 1)) + c(π(N), π(1)) minimal i=1 Problem metrisches TSP wie TSP, zusätzlich I symmetrisch: ∀i, j : c(i, j) = c(j, i) I Dreiecksungleichung: ∀i, j, k : c(i, k) ≤ c(i, j) + c(j, k) 4 TSP approximieren Problem TSP Eingabe N ∈ N, C : {1, . . . , N}2 → N ∪ {∞} Ausgabe Permutation π von {1, . . . , N} mit N−1 P c(π(i), π(i + 1)) + c(π(N), π(1)) minimal i=1 Problem metrisches TSP wie TSP, zusätzlich I symmetrisch: ∀i, j : c(i, j) = c(j, i) I Dreiecksungleichung: ∀i, j, k : c(i, k) ≤ c(i, j) + c(j, k) Problem Euklidisches TSP Eingabe x1 , . . . , xN ∈ R2 Ausgabe Permutation π von {1, . . . , N} mit N−1 P c(xπ(i) , xπ(i+1) ) + c(xπ(N) , xπ(1) ) minimal i=1 p dabei c(xi , xj ) := (xi [1] − xj [1])2 + (xi [2] − xj [2])2 4 Metrisches TSP approximieren Begriffe 5 Metrisches TSP approximieren Begriffe I Multigraph 5 Metrisches TSP approximieren Begriffe I Multigraph Kanten dürfen mehrfach vorkommen 5 Metrisches TSP approximieren Begriffe I Multigraph Kanten dürfen mehrfach vorkommen I Eulerkreis 5 Metrisches TSP approximieren Begriffe I Multigraph Kanten dürfen mehrfach vorkommen I Eulerkreis enthält jede Kante genau einmal 5 Metrisches TSP approximieren Begriffe I Multigraph Kanten dürfen mehrfach vorkommen I Eulerkreis enthält jede Kante genau einmal Lemma 142 Ein Multigraph enthält genau dann einen Eulerkreis, wenn er zusammenhängend ist und jeder Knoten geraden Grad hat. 5 Metrisches TSP approximieren Begriffe I Multigraph Kanten dürfen mehrfach vorkommen I Eulerkreis enthält jede Kante genau einmal Lemma 142 Ein Multigraph enthält genau dann einen Eulerkreis, wenn er zusammenhängend ist und jeder Knoten geraden Grad hat. Beweis. Eulerkreis ⇒ zusammenhängend und gerader Grad“ ” 5 Metrisches TSP approximieren Begriffe I Multigraph Kanten dürfen mehrfach vorkommen I Eulerkreis enthält jede Kante genau einmal Lemma 142 Ein Multigraph enthält genau dann einen Eulerkreis, wenn er zusammenhängend ist und jeder Knoten geraden Grad hat. Beweis. Eulerkreis ⇒ zusammenhängend und gerader Grad“ ” Eulerkreis ist Kreis durch ganz G zusammenhängend 5 Metrisches TSP approximieren Begriffe I Multigraph Kanten dürfen mehrfach vorkommen I Eulerkreis enthält jede Kante genau einmal Lemma 142 Ein Multigraph enthält genau dann einen Eulerkreis, wenn er zusammenhängend ist und jeder Knoten geraden Grad hat. Beweis. Eulerkreis ⇒ zusammenhängend und gerader Grad“ ” Eulerkreis ist Kreis durch ganz G zusammenhängend Durchlaufe Eulerkreis und notiere jeden Knoten. je Knoten zwei Kanten (einmal betreten, einmal verlassen) √ also jeder Knoten geraden Grad 5 Beweis von Lemma 142 zusammenhängend und jeder Knoten geraden Grad ⇒ Eulerkreis“ ” 6 Beweis von Lemma 142 zusammenhängend und jeder Knoten geraden Grad ⇒ Eulerkreis“ ” Induktion über |E |: 6 Beweis von Lemma 142 zusammenhängend und jeder Knoten geraden Grad ⇒ Eulerkreis“ ” Induktion über |E |: √ I.-A.: m = 2 (dann auch n = 2) 6 Beweis von Lemma 142 zusammenhängend und jeder Knoten geraden Grad ⇒ Eulerkreis“ ” Induktion über |E |: √ I.-A.: m = 2 (dann auch n = 2) I.-S.: Konstruiere einen einfachen Kreis mit Kantenmenge K in G . 6 Beweis von Lemma 142 zusammenhängend und jeder Knoten geraden Grad ⇒ Eulerkreis“ ” Induktion über |E |: √ I.-A.: m = 2 (dann auch n = 2) I.-S.: Konstruiere einen einfachen Kreis mit Kantenmenge K in G . Voraussetzungen sichern, dass das geht 6 Beweis von Lemma 142 zusammenhängend und jeder Knoten geraden Grad ⇒ Eulerkreis“ ” Induktion über |E |: √ I.-A.: m = 2 (dann auch n = 2) I.-S.: Konstruiere einen einfachen Kreis mit Kantenmenge K in G . Voraussetzungen sichern, dass das geht GK = (V , E \ K ) zerfällt in ZHK C1 , . . . , Ck 6 Beweis von Lemma 142 zusammenhängend und jeder Knoten geraden Grad ⇒ Eulerkreis“ ” Induktion über |E |: √ I.-A.: m = 2 (dann auch n = 2) I.-S.: Konstruiere einen einfachen Kreis mit Kantenmenge K in G . Voraussetzungen sichern, dass das geht GK = (V , E \ K ) zerfällt in ZHK C1 , . . . , Ck jede Ci ist zusammenhängend und enthält nur Knoten geraden Grads 6 Beweis von Lemma 142 zusammenhängend und jeder Knoten geraden Grad ⇒ Eulerkreis“ ” Induktion über |E |: √ I.-A.: m = 2 (dann auch n = 2) I.-S.: Konstruiere einen einfachen Kreis mit Kantenmenge K in G . Voraussetzungen sichern, dass das geht GK = (V , E \ K ) zerfällt in ZHK C1 , . . . , Ck jede Ci ist zusammenhängend und enthält nur Knoten geraden Grads I.-V. ⇒ ∀Ci : ∃Eulerkreis Ei 6 Beweis von Lemma 142 zusammenhängend und jeder Knoten geraden Grad ⇒ Eulerkreis“ ” Induktion über |E |: √ I.-A.: m = 2 (dann auch n = 2) I.-S.: Konstruiere einen einfachen Kreis mit Kantenmenge K in G . Voraussetzungen sichern, dass das geht GK = (V , E \ K ) zerfällt in ZHK C1 , . . . , Ck jede Ci ist zusammenhängend und enthält nur Knoten geraden Grads I.-V. ⇒ ∀Ci : ∃Eulerkreis Ei da G zusammenhängend, hat K Knoten in jedem Ei 6 Beweis von Lemma 142 zusammenhängend und jeder Knoten geraden Grad ⇒ Eulerkreis“ ” Induktion über |E |: √ I.-A.: m = 2 (dann auch n = 2) I.-S.: Konstruiere einen einfachen Kreis mit Kantenmenge K in G . Voraussetzungen sichern, dass das geht GK = (V , E \ K ) zerfällt in ZHK C1 , . . . , Ck jede Ci ist zusammenhängend und enthält nur Knoten geraden Grads I.-V. ⇒ ∀Ci : ∃Eulerkreis Ei da G zusammenhängend, hat K Knoten in jedem Ei Zusammenfügen Eulerkreis für G 6 Metrisches TSP mit MST und EK approximieren Algorithmus 143 1. 2. 3. 4. Berechne Berechne Berechne Berechne einen MST S auf G . einen Multigraphen G 0 durch Verdopplung von S. einen Eulerkreis K auf G 0 . eine Tour T aus K durch Streichen von Knoten. 7 Metrisches TSP mit MST und EK approximieren Algorithmus 143 1. 2. 3. 4. Berechne Berechne Berechne Berechne einen MST S auf G . einen Multigraphen G 0 durch Verdopplung von S. einen Eulerkreis K auf G 0 . eine Tour T aus K durch Streichen von Knoten. Theorem 144 Algorithmus 143 ist ein 2-Approximationsalgorithmus für das metrische TSP mit Laufzeit O(n2 ). 7 Metrisches TSP mit MST und EK approximieren Algorithmus 143 1. 2. 3. 4. Berechne Berechne Berechne Berechne einen MST S auf G . einen Multigraphen G 0 durch Verdopplung von S. einen Eulerkreis K auf G 0 . eine Tour T aus K durch Streichen von Knoten. Theorem 144 Algorithmus 143 ist ein 2-Approximationsalgorithmus für das metrische TSP mit Laufzeit O(n2 ). Beweis: Laufzeit: dominiert durch MST-Berechnung (Algorithmus von Prim) 7 Metrisches TSP mit MST und EK approximieren Algorithmus 143 1. 2. 3. 4. Berechne Berechne Berechne Berechne einen MST S auf G . einen Multigraphen G 0 durch Verdopplung von S. einen Eulerkreis K auf G 0 . eine Tour T aus K durch Streichen von Knoten. Theorem 144 Algorithmus 143 ist ein 2-Approximationsalgorithmus für das metrische TSP mit Laufzeit O(n2 ). Beweis: Laufzeit: dominiert durch MST-Berechnung (Algorithmus von Prim) Güte: OPT(G ) ≥ w (S), da Tour − Kante = Spannbaum 7 Metrisches TSP mit MST und EK approximieren Algorithmus 143 1. 2. 3. 4. Berechne Berechne Berechne Berechne einen MST S auf G . einen Multigraphen G 0 durch Verdopplung von S. einen Eulerkreis K auf G 0 . eine Tour T aus K durch Streichen von Knoten. Theorem 144 Algorithmus 143 ist ein 2-Approximationsalgorithmus für das metrische TSP mit Laufzeit O(n2 ). Beweis: Laufzeit: dominiert durch MST-Berechnung (Algorithmus von Prim) Güte: OPT(G ) ≥ w (S), da Tour − Kante = Spannbaum also w (K ) ≤ 2OPT(G ) 7 Metrisches TSP mit MST und EK approximieren Algorithmus 143 1. 2. 3. 4. Berechne Berechne Berechne Berechne einen MST S auf G . einen Multigraphen G 0 durch Verdopplung von S. einen Eulerkreis K auf G 0 . eine Tour T aus K durch Streichen von Knoten. Theorem 144 Algorithmus 143 ist ein 2-Approximationsalgorithmus für das metrische TSP mit Laufzeit O(n2 ). Beweis: Laufzeit: dominiert durch MST-Berechnung (Algorithmus von Prim) Güte: OPT(G ) ≥ w (S), da Tour − Kante = Spannbaum also w (K ) ≤ 2OPT(G ) klar w (A(G )) = w (T ) ≤ w (K ) wegen Dreiecksungleichung 7 Metrisches TSP mit MST und EK approximieren Algorithmus 143 1. 2. 3. 4. Berechne Berechne Berechne Berechne einen MST S auf G . einen Multigraphen G 0 durch Verdopplung von S. einen Eulerkreis K auf G 0 . eine Tour T aus K durch Streichen von Knoten. Theorem 144 Algorithmus 143 ist ein 2-Approximationsalgorithmus für das metrische TSP mit Laufzeit O(n2 ). Beweis: Laufzeit: dominiert durch MST-Berechnung (Algorithmus von Prim) Güte: OPT(G ) ≥ w (S), da Tour − Kante = Spannbaum also w (K ) ≤ 2OPT(G ) klar w (A(G )) = w (T ) ≤ w (K ) wegen Dreiecksungleichung A(G ) also zusammen OPT(G ) ≤2 7 Beispiel Graph G , N = 8, Kantengewicht = Abstände 8 Beispiel Graph G , N = 8, Kantengewicht = Abstände MST 8 Beispiel Graph G , N = 8, Kantengewicht = Abstände MST Tour aus Eulerkreis 8 Beispiel Graph G , N = 8, Kantengewicht = Abstände MST Tour aus Eulerkreis 8 Beispiel Graph G , N = 8, Kantengewicht = Abstände MST Tour aus Eulerkreis 8 Beispiel Graph G , N = 8, Kantengewicht = Abstände MST Tour aus Eulerkreis 8 Beispiel Graph G , N = 8, Kantengewicht = Abstände MST Tour aus Eulerkreis 8 Beispiel Graph G , N = 8, Kantengewicht = Abstände MST Tour aus Eulerkreis 8 Beispiel Graph G , N = 8, Kantengewicht = Abstände MST Tour aus Eulerkreis 8 Beispiel Graph G , N = 8, Kantengewicht = Abstände MST Tour aus Eulerkreis Länge ≈ 24,3 8 Beispiel Graph G , N = 8, Kantengewicht = Abstände MST Tour aus Eulerkreis optimale Tour Länge ≈ 24,3 Länge ≈ 23,1 8 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis Länge 16 · 1, 25 + 8 · 1, 5 = 32 9 Noch ein Beispiel Graph G , N = 17, Kantengewicht = Abstände MST Tour aus Eulerkreis optimale Tour Länge 16 · 1, 25 + 8 · 1, 5 = 32 Länge 8 · 1,5 + 7 · 1,5 + 2 · 1,25 = 25 9 Metrisches TSP besser approximieren Wie können wir Güte < 2 hinbekommen? 10 Metrisches TSP besser approximieren Wie können wir Güte < 2 hinbekommen? Wo kommt der Faktor 2 her? 10 Metrisches TSP besser approximieren Wie können wir Güte < 2 hinbekommen? Wo kommt der Faktor 2 her? Verdopplung aller Kanten im MST 10 Metrisches TSP besser approximieren Wie können wir Güte < 2 hinbekommen? Wo kommt der Faktor 2 her? Verdopplung aller Kanten im MST Warum machen wir das? 10 Metrisches TSP besser approximieren Wie können wir Güte < 2 hinbekommen? Wo kommt der Faktor 2 her? Verdopplung aller Kanten im MST Warum machen wir das? brauche geraden Grad aller Knoten für EK-Konstruktion 10 Metrisches TSP besser approximieren Wie können wir Güte < 2 hinbekommen? Wo kommt der Faktor 2 her? Verdopplung aller Kanten im MST Warum machen wir das? brauche geraden Grad aller Knoten für EK-Konstruktion Muss man dazu alle Kanten verdoppeln? 10 Metrisches TSP besser approximieren Wie können wir Güte < 2 hinbekommen? Wo kommt der Faktor 2 her? Verdopplung aller Kanten im MST Warum machen wir das? brauche geraden Grad aller Knoten für EK-Konstruktion Muss man dazu alle Kanten verdoppeln? Nein! Knoten ungeraden Grads behandeln genügt 10 Metrisches TSP besser approximieren Wie können wir Güte < 2 hinbekommen? Wo kommt der Faktor 2 her? Verdopplung aller Kanten im MST Warum machen wir das? brauche geraden Grad aller Knoten für EK-Konstruktion Muss man dazu alle Kanten verdoppeln? Nein! Knoten ungeraden Grads behandeln genügt Idee Verbinde Knoten ungeraden Grades paarweise möglichst billig 10 Metrisches TSP besser approximieren Wie können wir Güte < 2 hinbekommen? Wo kommt der Faktor 2 her? Verdopplung aller Kanten im MST Warum machen wir das? brauche geraden Grad aller Knoten für EK-Konstruktion Muss man dazu alle Kanten verdoppeln? Nein! Knoten ungeraden Grads behandeln genügt Idee Verbinde Knoten ungeraden Grades paarweise möglichst billig Berechne kostenminimales Matching zwischen solchen Knoten. 10 Der Algorithmus von Christofides 1. Berechne einen MST S auf G . 2. Berechne M := {v | v hat ungeraden Grad in S} 3. Berechne auf M ein kostenminimales Matching Mmin mit |Mmin | = |M|/2. 4. Berechne Multigraphen G 0 := S ∪ Mmin . 5. Berechne einen Eulerkreis K auf G 0 . 6. Berechne eine Tour T aus K durch Streichen von Knoten. 11 Der Algorithmus von Christofides 1. Berechne einen MST S auf G . 2. Berechne M := {v | v hat ungeraden Grad in S} 3. Berechne auf M ein kostenminimales Matching Mmin mit |Mmin | = |M|/2. 4. Berechne Multigraphen G 0 := S ∪ Mmin . 5. Berechne einen Eulerkreis K auf G 0 . 6. Berechne eine Tour T aus K durch Streichen von Knoten. Beobachtung P I deg(v ) gerade v ∈V 11 Der Algorithmus von Christofides 1. Berechne einen MST S auf G . 2. Berechne M := {v | v hat ungeraden Grad in S} 3. Berechne auf M ein kostenminimales Matching Mmin mit |Mmin | = |M|/2. 4. Berechne Multigraphen G 0 := S ∪ Mmin . 5. Berechne einen Eulerkreis K auf G 0 . 6. Berechne eine Tour T aus K durch Streichen von Knoten. Beobachtungen P I deg(v ) gerade v ∈V I also |M| gerade und |M|/2 ∈ N 11 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) I Berechnung M: O(n) 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) I Berechnung M: O(n) I Berechnung kostenminimales Matching O(n3 ) 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) I Berechnung M: O(n) I Berechnung kostenminimales Matching O(n3 ) I Berechnung G 0 : O(n) 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) I Berechnung M: O(n) I Berechnung kostenminimales Matching O(n3 ) I Berechnung G 0 : O(n) I Berechnung EK: O(n) 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) I Berechnung M: O(n) I Berechnung kostenminimales Matching O(n3 ) I Berechnung G 0 : O(n) I Berechnung EK: O(n) I Berechnung Tour: O(n) 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) I Berechnung M: O(n) I Berechnung kostenminimales Matching O(n3 ) I Berechnung G 0 : O(n) I Berechnung EK: O(n) I Berechnung Tour: O(n) Güte: 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) I Berechnung M: O(n) I Berechnung kostenminimales Matching O(n3 ) I Berechnung G 0 : O(n) I Berechnung EK: O(n) I Berechnung Tour: O(n) Güte: w (A(G )) ≤ w (K ) 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) I Berechnung M: O(n) I Berechnung kostenminimales Matching O(n3 ) I Berechnung G 0 : O(n) I Berechnung EK: O(n) I Berechnung Tour: O(n) Güte: w (A(G )) ≤ w (K ) = w (S) + w (Mmin ) 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) I Berechnung M: O(n) I Berechnung kostenminimales Matching O(n3 ) I Berechnung G 0 : O(n) I Berechnung EK: O(n) I Berechnung Tour: O(n) Güte: w (A(G )) ≤ w (K ) = w (S) + w (Mmin ) ≤ OPT(G ) + w (Mmin ) 12 Analyse des Algorithmus von Christofides Theorem 145 Der Algorithmus von Christofides hat Laufzeit O(n3 ) und ist ein (3/2)-Approximationsalgorithmus für das metrische TSP. Beweis. Laufzeit: I Berechnung MST: O(n2 log n) I Berechnung M: O(n) I Berechnung kostenminimales Matching O(n3 ) I Berechnung G 0 : O(n) I Berechnung EK: O(n) I Berechnung Tour: O(n) Güte: w (A(G )) ≤ w (K ) = w (S) + w (Mmin ) ≤ OPT(G ) + w (Mmin ) zu zeigen w (Mmin ) ≤ OPT(G )/2 12 Beweis von Theorem 145 zu zeigen w (Mmin ) ≤ OPT(G )/2 13 Beweis von Theorem 145 zu zeigen w (Mmin ) ≤ OPT(G )/2 Sei |M| = 2k 13 Beweis von Theorem 145 zu zeigen w (Mmin ) ≤ OPT(G )/2 Sei |M| = 2k natürlich 2k ≤ n 13 Beweis von Theorem 145 zu zeigen w (Mmin ) ≤ OPT(G )/2 Sei |M| = 2k natürlich 2k ≤ n Notation Knoten {v1 , . . . , v2k } = M kommen in Reihenfolge v1 , v2 , . . . , v2k in opt. Tour vor. 13 Beweis von Theorem 145 zu zeigen w (Mmin ) ≤ OPT(G )/2 Sei |M| = 2k natürlich 2k ≤ n Notation Knoten {v1 , . . . , v2k } = M kommen in Reihenfolge v1 , v2 , . . . , v2k in opt. Tour vor. Betrachte Kreis K 0 := v1 , v2 , . . . , v2k , v1 . 13 Beweis von Theorem 145 zu zeigen w (Mmin ) ≤ OPT(G )/2 Sei |M| = 2k natürlich 2k ≤ n Notation Knoten {v1 , . . . , v2k } = M kommen in Reihenfolge v1 , v2 , . . . , v2k in opt. Tour vor. Betrachte Kreis K 0 := v1 , v2 , . . . , v2k , v1 . klar w (K 0 ) ≤ OPT(G ) 13 Beweis von Theorem 145 zu zeigen w (Mmin ) ≤ OPT(G )/2 Sei |M| = 2k natürlich 2k ≤ n Notation Knoten {v1 , . . . , v2k } = M kommen in Reihenfolge v1 , v2 , . . . , v2k in opt. Tour vor. Betrachte Kreis K 0 := v1 , v2 , . . . , v2k , v1 . klar w (K 0 ) ≤ OPT(G ) Beobachtung K 0 enthält zwei Matchings: M1 := (v1 , v2 ), (v3 , v4 ), . . . , (v2k−1 , v2k ) und M2 := (v2 , v3 ), (v4 , v5 ), . . . , (v2k , v1 ) 13 Beweis von Theorem 145 zu zeigen w (Mmin ) ≤ OPT(G )/2 Sei |M| = 2k natürlich 2k ≤ n Notation Knoten {v1 , . . . , v2k } = M kommen in Reihenfolge v1 , v2 , . . . , v2k in opt. Tour vor. Betrachte Kreis K 0 := v1 , v2 , . . . , v2k , v1 . klar w (K 0 ) ≤ OPT(G ) Beobachtung K 0 enthält zwei Matchings: M1 := (v1 , v2 ), (v3 , v4 ), . . . , (v2k−1 , v2k ) und M2 := (v2 , v3 ), (v4 , v5 ), . . . , (v2k , v1 ) klar min{w (M1 ), w (M2 )} ≤ OPT(G )/2 13 Beweis von Theorem 145 zu zeigen w (Mmin ) ≤ OPT(G )/2 Sei |M| = 2k natürlich 2k ≤ n Notation Knoten {v1 , . . . , v2k } = M kommen in Reihenfolge v1 , v2 , . . . , v2k in opt. Tour vor. Betrachte Kreis K 0 := v1 , v2 , . . . , v2k , v1 . klar w (K 0 ) ≤ OPT(G ) Beobachtung K 0 enthält zwei Matchings: M1 := (v1 , v2 ), (v3 , v4 ), . . . , (v2k−1 , v2k ) und M2 := (v2 , v3 ), (v4 , v5 ), . . . , (v2k , v1 ) klar min{w (M1 ), w (M2 )} ≤ OPT(G )/2 natürlich w (Mmin ) ≤ min{w (M1 ), w (M2 )} 13 Über approximatives Lösen des TSP Anmerkungen: 14 Über approximatives Lösen des TSP Anmerkungen: I unsere Beispiele werden durch Christofides nicht besser: jeweils nur zwei Knoten mit ungeradem Grad 14 Über approximatives Lösen des TSP Anmerkungen: I unsere Beispiele werden durch Christofides nicht besser: jeweils nur zwei Knoten mit ungeradem Grad I Beispielgraph: Güte 3/2 für Christofides asymptotisch exakt 14 Über approximatives Lösen des TSP Anmerkungen: I unsere Beispiele werden durch Christofides nicht besser: jeweils nur zwei Knoten mit ungeradem Grad I Beispielgraph: Güte 3/2 für Christofides asymptotisch exakt I bessere Approximation für metrisches TSP nicht bekannt 14 Über approximatives Lösen des TSP Anmerkungen: I unsere Beispiele werden durch Christofides nicht besser: jeweils nur zwei Knoten mit ungeradem Grad I Beispielgraph: Güte 3/2 für Christofides asymptotisch exakt I bessere Approximation für metrisches TSP nicht bekannt I Approximationsalgorithmus mit vermuteter Güte 4/3 bekannt 14 Über approximatives Lösen des TSP Anmerkungen: I unsere Beispiele werden durch Christofides nicht besser: jeweils nur zwei Knoten mit ungeradem Grad I Beispielgraph: Güte 3/2 für Christofides asymptotisch exakt I bessere Approximation für metrisches TSP nicht bekannt I Approximationsalgorithmus mit vermuteter Güte 4/3 bekannt I bekannt Es gibt kein PTAS fürs metrische TSP, wenn P6=NP 14 Über approximatives Lösen des TSP Anmerkungen: I unsere Beispiele werden durch Christofides nicht besser: jeweils nur zwei Knoten mit ungeradem Grad I Beispielgraph: Güte 3/2 für Christofides asymptotisch exakt I bessere Approximation für metrisches TSP nicht bekannt I Approximationsalgorithmus mit vermuteter Güte 4/3 bekannt I bekannt Es gibt kein PTAS fürs metrische TSP, wenn P6=NP I bekannt allgemeines TSP ∈ / APX, wenn P6=NP (siehe Übung) 14 Über approximatives Lösen des TSP Anmerkungen: I unsere Beispiele werden durch Christofides nicht besser: jeweils nur zwei Knoten mit ungeradem Grad I Beispielgraph: Güte 3/2 für Christofides asymptotisch exakt I bessere Approximation für metrisches TSP nicht bekannt I Approximationsalgorithmus mit vermuteter Güte 4/3 bekannt I bekannt Es gibt kein PTAS fürs metrische TSP, wenn P6=NP I bekannt allgemeines TSP ∈ / APX, wenn P6=NP (siehe Übung) I für bessere Approximation weitere Einschränkung erforderlich 14 Euklidisches TSP Eingabe n Punkte x1p , . . . , xn ∈ R 2 Distanzen c(xi , xj ) := (xi [1] − xj [1])2 + (xi [2] − xj [2])2 15 Euklidisches TSP Eingabe n Punkte x1p , . . . , xn ∈ R 2 Distanzen c(xi , xj ) := (xi [1] − xj [1])2 + (xi [2] − xj [2])2 Rechnen mit reellen Zahlen? 15 Euklidisches TSP Eingabe n Punkte x1p , . . . , xn ∈ R 2 Distanzen c(xi , xj ) := (xi [1] − xj [1])2 + (xi [2] − xj [2])2 Rechnen mit reellen Zahlen? Lösungsansätze I I real RAM“: Operationen mit reellen Zahlen ” Koordinaten und Distanzen auf 2 log n Stellen gerundet als Eingabe 15 Euklidisches TSP Eingabe n Punkte x1p , . . . , xn ∈ R 2 Distanzen c(xi , xj ) := (xi [1] − xj [1])2 + (xi [2] − xj [2])2 Rechnen mit reellen Zahlen? Lösungsansätze I I real RAM“: Operationen mit reellen Zahlen ” Koordinaten und Distanzen auf 2 log n Stellen gerundet als Eingabe Theorem 146 Für das euklidische TSP gibt es ein PTAS, das für jedes ε > 0 eine (1 + ε)-Approximation randomisiert in Zeit O n(log n)O(1/ε) berechnet mit Wahrscheinlichkeit mindestens 1/2. 15 Beweisideen für Theorem 146 16 Beweisideen für Theorem 146 I Vorbereitung: Diskretisierung und Normierung der Eingabe 16 Beweisideen für Theorem 146 I I Vorbereitung: Diskretisierung und Normierung der Eingabe zentral: Konstruktion zufällig verschobener Quadtree 16 Beweisideen für Theorem 146 I I Vorbereitung: Diskretisierung und Normierung der Eingabe zentral: Konstruktion zufällig verschobener Quadtree 16 Beweisideen für Theorem 146 I I Vorbereitung: Diskretisierung und Normierung der Eingabe zentral: Konstruktion zufällig verschobener Quadtree 16 Beweisideen für Theorem 146 I I Vorbereitung: Diskretisierung und Normierung der Eingabe zentral: Konstruktion zufällig verschobener Quadtree 16 Beweisideen für Theorem 146 I I I Vorbereitung: Diskretisierung und Normierung der Eingabe zentral: Konstruktion zufällig verschobener Quadtree Berechnung: dynamische Programmierung 16 Vorbereitung: Diskretisierung und Normierung 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 2. Betrachte Gitter mit Gitterabstand (εL)/(8n). 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 2. Betrachte Gitter mit Gitterabstand (εL)/(8n). 3. Verschiebe Punkte auf nächsten Gitterpunkt. 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 2. Betrachte Gitter mit Gitterabstand (εL)/(8n). 3. Verschiebe Punkte auf nächsten Gitterpunkt. 4. Dividiere Distanzen durch (εL)/(64n) 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 2. Betrachte Gitter mit Gitterabstand (εL)/(8n). 3. Verschiebe Punkte auf nächsten Gitterpunkt. 4. Dividiere Distanzen durch (εL)/(64n) Beobachtungen I OPT > L 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 2. Betrachte Gitter mit Gitterabstand (εL)/(8n). 3. Verschiebe Punkte auf nächsten Gitterpunkt. 4. Dividiere Distanzen durch (εL)/(64n) Beobachtungen I I OPT > L Verschiebung ändert Tourkosten um ≤ 2n(εL)/(8n) 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 2. Betrachte Gitter mit Gitterabstand (εL)/(8n). 3. Verschiebe Punkte auf nächsten Gitterpunkt. 4. Dividiere Distanzen durch (εL)/(64n) Beobachtungen I I I OPT > L Verschiebung ändert Tourkosten um ≤ 2n(εL)/(8n) OPT um ≤ 2n(εL)/(8n) < εOPT/4 geändert 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 2. Betrachte Gitter mit Gitterabstand (εL)/(8n). 3. Verschiebe Punkte auf nächsten Gitterpunkt. 4. Dividiere Distanzen durch (εL)/(64n) Beobachtungen I I I I OPT > L Verschiebung ändert Tourkosten um ≤ 2n(εL)/(8n) OPT um ≤ 2n(εL)/(8n) < εOPT/4 geändert nach Division alle Koordinaten ganzzahlig 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 2. Betrachte Gitter mit Gitterabstand (εL)/(8n). 3. Verschiebe Punkte auf nächsten Gitterpunkt. 4. Dividiere Distanzen durch (εL)/(64n) Beobachtungen I I I I I OPT > L Verschiebung ändert Tourkosten um ≤ 2n(εL)/(8n) OPT um ≤ 2n(εL)/(8n) < εOPT/4 geändert nach Division alle Koordinaten ganzzahlig nach Division kleinster positiver Abstand 8 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 2. Betrachte Gitter mit Gitterabstand (εL)/(8n). 3. Verschiebe Punkte auf nächsten Gitterpunkt. 4. Dividiere Distanzen durch (εL)/(64n) Beobachtungen I I I I I I OPT > L Verschiebung ändert Tourkosten um ≤ 2n(εL)/(8n) OPT um ≤ 2n(εL)/(8n) < εOPT/4 geändert nach Division alle Koordinaten ganzzahlig nach Division kleinster positiver Abstand 8 nach Division L = O(n) 17 Vorbereitung: Diskretisierung und Normierung 1. Betrachte kleinstes, achsenparalleles Quadrat um Eingabe Seitenlänge L 2. Betrachte Gitter mit Gitterabstand (εL)/(8n). 3. Verschiebe Punkte auf nächsten Gitterpunkt. 4. Dividiere Distanzen durch (εL)/(64n) Beobachtungen I I I I I I I OPT > L Verschiebung ändert Tourkosten um ≤ 2n(εL)/(8n) OPT um ≤ 2n(εL)/(8n) < εOPT/4 geändert nach Division alle Koordinaten ganzzahlig nach Division kleinster positiver Abstand 8 nach Division L = O(n) (1 + (3/4)ε)-Approximation reicht aus 17 Zerlegung und Quadtree Zergliederung 18 Zerlegung und Quadtree Zergliederung zergliedere bis Größe 1 (≤ 1 Punkt) interpretiere als 4-ärer Baum Größe O(L2 ), Tiefe O(log L) 18 Zerlegung und Quadtree Zergliederung Quadtree zergliedere bis Größe 1 (≤ 1 Punkt) kann weniger Knoten haben interpretiere als 4-ärer Baum O(n) Blätter, Tiefe O(log L) 2 O(n log L) Knoten Größe O(L ), Tiefe O(log L) 18 Wappnen gegen Worst Case Eingaben a, b ∈ {0, 1, 2, . . . , dLe − 1} zufällig wählen 19 Wappnen gegen Worst Case Eingaben a, b ∈ {0, 1, 2, . . . , dLe − 1} zufällig wählen (a, b)-Verschiebung einer Zergliederung: Verschiebe (x, y ) (x + a mod L, y + b mod L). TSP-Punkte nicht verschieben! 19 Wappnen gegen Worst Case Eingaben a, b ∈ {0, 1, 2, . . . , dLe − 1} zufällig wählen (a, b)-Verschiebung einer Zergliederung: Verschiebe (x, y ) (x + a mod L, y + b mod L). TSP-Punkte nicht verschieben! 19 Wappnen gegen Worst Case Eingaben a, b ∈ {0, 1, 2, . . . , dLe − 1} zufällig wählen (a, b)-Verschiebung einer Zergliederung: Verschiebe (x, y ) (x + a mod L, y + b mod L). TSP-Punkte nicht verschieben! 19 Wappnen gegen Worst Case Eingaben a, b ∈ {0, 1, 2, . . . , dLe − 1} zufällig wählen (a, b)-Verschiebung einer Zergliederung: Verschiebe (x, y ) (x + a mod L, y + b mod L). TSP-Punkte nicht verschieben! (a, b)-Verschiebung eines Quadtrees aus (a, b)-Verschiebung der Zerglierdung 19 Portale Definition 147. Seien m, r ∈ N. I Eine m-reguläre Menge von Portalen für eine (a, b)-verschobene Zergliederung ist eine Menge von Punkten, jeweils einen in jeder Ecke eines Quadrats und m weitere äquidistant auf jeder Kante. 20 Portale Definition 147. Seien m, r ∈ N. I I Eine m-reguläre Menge von Portalen für eine (a, b)-verschobene Zergliederung ist eine Menge von Punkten, jeweils einen in jeder Ecke eines Quadrats und m weitere äquidistant auf jeder Kante. Ein TSP-Pfad besucht jeden Eingabepunkt x1 , . . . , xn und einige Portale; Portale dürfen mehrfach benutzt werden. 20 Portale Definition 147. Seien m, r ∈ N. I I I Eine m-reguläre Menge von Portalen für eine (a, b)-verschobene Zergliederung ist eine Menge von Punkten, jeweils einen in jeder Ecke eines Quadrats und m weitere äquidistant auf jeder Kante. Ein TSP-Pfad besucht jeden Eingabepunkt x1 , . . . , xn und einige Portale; Portale dürfen mehrfach benutzt werden. Ein TSP-Pfad heißt (m, r )-leicht für eine (a, b)-verschobene Zergliederung, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. 20 Portale Definition 147. Seien m, r ∈ N. I I I Eine m-reguläre Menge von Portalen für eine (a, b)-verschobene Zergliederung ist eine Menge von Punkten, jeweils einen in jeder Ecke eines Quadrats und m weitere äquidistant auf jeder Kante. Ein TSP-Pfad besucht jeden Eingabepunkt x1 , . . . , xn und einige Portale; Portale dürfen mehrfach benutzt werden. Ein TSP-Pfad heißt (m, r )-leicht für eine (a, b)-verschobene Zergliederung, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. Anmerkungen 20 Portale Definition 147. Seien m, r ∈ N. I I I Eine m-reguläre Menge von Portalen für eine (a, b)-verschobene Zergliederung ist eine Menge von Punkten, jeweils einen in jeder Ecke eines Quadrats und m weitere äquidistant auf jeder Kante. Ein TSP-Pfad besucht jeden Eingabepunkt x1 , . . . , xn und einige Portale; Portale dürfen mehrfach benutzt werden. Ein TSP-Pfad heißt (m, r )-leicht für eine (a, b)-verschobene Zergliederung, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. Anmerkungen I Weg von xi zu xj durch Portal kann länger sein als direkte Verbindung von xi zu xj ; Weg gebogen“ an Portal ” 20 Portale Definition 147. Seien m, r ∈ N. I I I Eine m-reguläre Menge von Portalen für eine (a, b)-verschobene Zergliederung ist eine Menge von Punkten, jeweils einen in jeder Ecke eines Quadrats und m weitere äquidistant auf jeder Kante. Ein TSP-Pfad besucht jeden Eingabepunkt x1 , . . . , xn und einige Portale; Portale dürfen mehrfach benutzt werden. Ein TSP-Pfad heißt (m, r )-leicht für eine (a, b)-verschobene Zergliederung, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. Anmerkungen I Weg von xi zu xj durch Portal kann länger sein als direkte Verbindung von xi zu xj ; Weg gebogen“ an Portal ” I o. B. d. A. kein Punkt auf Kante (sonst Skalieren um Faktor 2, Kanten gerade Koordinaten, Punkte ungerade Koordinaten) 20 Portale Definition 147. Seien m, r ∈ N. I I I Eine m-reguläre Menge von Portalen für eine (a, b)-verschobene Zergliederung ist eine Menge von Punkten, jeweils einen in jeder Ecke eines Quadrats und m weitere äquidistant auf jeder Kante. Ein TSP-Pfad besucht jeden Eingabepunkt x1 , . . . , xn und einige Portale; Portale dürfen mehrfach benutzt werden. Ein TSP-Pfad heißt (m, r )-leicht für eine (a, b)-verschobene Zergliederung, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. Anmerkungen I Weg von xi zu xj durch Portal kann länger sein als direkte Verbindung von xi zu xj ; Weg gebogen“ an Portal ” I o. B. d. A. kein Punkt auf Kante (sonst Skalieren um Faktor 2, Kanten gerade Koordinaten, Punkte ungerade Koordinaten) I vor Ausgabe: gebogene“ Wege begradigen 20 Strukturtheorem Theorem 148 Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. 21 Strukturtheorem Theorem 148 Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. Mit Wahrscheinlichkeit mindestens 1/2 gibt es einen für die (a, b)-Verschiebung der Zergliederung (m, r )-leichten TSP-Pfad mit Länge ≤ (1 + ε)OPT, dabei ist m = O(ε−1 log L) und r = O(ε−1 ). 21 Strukturtheorem Theorem 148 Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. Mit Wahrscheinlichkeit mindestens 1/2 gibt es einen für die (a, b)-Verschiebung der Zergliederung (m, r )-leichten TSP-Pfad mit Länge ≤ (1 + ε)OPT, dabei ist m = O(ε−1 log L) und r = O(ε−1 ). Beweis: später 21 Strukturtheorem Theorem 148 Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. Mit Wahrscheinlichkeit mindestens 1/2 gibt es einen für die (a, b)-Verschiebung der Zergliederung (m, r )-leichten TSP-Pfad mit Länge ≤ (1 + ε)OPT, dabei ist m = O(ε−1 log L) und r = O(ε−1 ). Beweis: später jetzt Algorithmus unter Annahme, das Strukturtheorem korrekt 21 Algorithmus von Arora 1. Diskretisiere und normiere die Eingabe. 2. Wähle a, b ∈ {0, . . . , L} gemäß Gleichverteilung. 3. Konstruiere die (a, b)-Verschiebung des zugehörigen Quadtress mit Größe T . 4. Berechne mit dynamischer Programmierung für ein m = O(ε−1 log n) und ein r = O(ε−1 ) einen optimalen (m, r )-leichten TSP-Pfad dazu in Zeit O(T · mO(r ) ). 22 Algorithmus von Arora 1. Diskretisiere und normiere die Eingabe. 2. Wähle a, b ∈ {0, . . . , L} gemäß Gleichverteilung. 3. Konstruiere die (a, b)-Verschiebung des zugehörigen Quadtress mit Größe T . 4. Berechne mit dynamischer Programmierung für ein m = O(ε−1 log n) und ein r = O(ε−1 ) einen optimalen (m, r )-leichten TSP-Pfad dazu in Zeit O(T · mO(r ) ). Beobachtung I Schritte 1–3 einfach 22 Algorithmus von Arora 1. Diskretisiere und normiere die Eingabe. 2. Wähle a, b ∈ {0, . . . , L} gemäß Gleichverteilung. 3. Konstruiere die (a, b)-Verschiebung des zugehörigen Quadtress mit Größe T . 4. Berechne mit dynamischer Programmierung für ein m = O(ε−1 log n) und ein r = O(ε−1 ) einen optimalen (m, r )-leichten TSP-Pfad dazu in Zeit O(T · mO(r ) ). Beobachtungen I Schritte 1–3 einfach I T = O(#Blätter · Tiefe) = O(n log n) 22 Algorithmus von Arora 1. Diskretisiere und normiere die Eingabe. 2. Wähle a, b ∈ {0, . . . , L} gemäß Gleichverteilung. 3. Konstruiere die (a, b)-Verschiebung des zugehörigen Quadtress mit Größe T . 4. Berechne mit dynamischer Programmierung für ein m = O(ε−1 log n) und ein r = O(ε−1 ) einen optimalen (m, r )-leichten TSP-Pfad dazu in Zeit O(T · mO(r ) ). Beobachtungen I Schritte 1–3 einfach I T = O(#Blätter · Tiefe) = O(n log n) I Konstruktion in Zeit O(n log2 n) möglich 22 Algorithmus von Arora 1. Diskretisiere und normiere die Eingabe. 2. Wähle a, b ∈ {0, . . . , L} gemäß Gleichverteilung. 3. Konstruiere die (a, b)-Verschiebung des zugehörigen Quadtress mit Größe T . 4. Berechne mit dynamischer Programmierung für ein m = O(ε−1 log n) und ein r = O(ε−1 ) einen optimalen (m, r )-leichten TSP-Pfad dazu in Zeit O(T · mO(r ) ). Beobachtungen I Schritte 1–3 einfach I T = O(#Blätter · Tiefe) = O(n log n) I Konstruktion in Zeit O(n log2 n) möglich I Erfolgswahrscheinlichkeit ≥ 1/2 (Strukturtheorem) 22 Konstruktion eines optimalen (m, r )-leichten TSP-Pfades 23 Konstruktion eines optimalen (m, r )-leichten TSP-Pfades Beobachtung Sei Q ein Quadrat in der (a, b)-Verschiebung des Quadtree. Optimaler (m, r )-leichter TSP-Pfad P kreuze die Kanten von Q 2p ≤ 4r mal und zwar an den Portalen a1 , a2 , . . . , a2p in dieser Reihenfolge. 23 Konstruktion eines optimalen (m, r )-leichten TSP-Pfades Beobachtung Sei Q ein Quadrat in der (a, b)-Verschiebung des Quadtree. Optimaler (m, r )-leichter TSP-Pfad P kreuze die Kanten von Q 2p ≤ 4r mal und zwar an den Portalen a1 , a2 , . . . , a2p in dieser Reihenfolge. Dann zerfällt P in Q in eine Folge von p Teilpfaden, wobei der i-te Teilpfad I die Portale a2i−1 und a2i verbindet, I die p Teilpfade gemeinsam alle Punkte in Q besuchen und I die p Teilpfade gemeinsam (m, r )-leicht sind. 23 Konstruktion eines optimalen (m, r )-leichten TSP-Pfades Beobachtung Sei Q ein Quadrat in der (a, b)-Verschiebung des Quadtree. Optimaler (m, r )-leichter TSP-Pfad P kreuze die Kanten von Q 2p ≤ 4r mal und zwar an den Portalen a1 , a2 , . . . , a2p in dieser Reihenfolge. Dann zerfällt P in Q in eine Folge von p Teilpfaden, wobei der i-te Teilpfad I die Portale a2i−1 und a2i verbindet, I die p Teilpfade gemeinsam alle Punkte in Q besuchen und I die p Teilpfade gemeinsam (m, r )-leicht sind. Kosten(P) minimal ⇔ ∀ Teilpfade: Kosten minimal unter allen solchen Pfaden 23 Konstruktion eines optimalen (m, r )-leichten TSP-Pfades Beobachtung Sei Q ein Quadrat in der (a, b)-Verschiebung des Quadtree. Optimaler (m, r )-leichter TSP-Pfad P kreuze die Kanten von Q 2p ≤ 4r mal und zwar an den Portalen a1 , a2 , . . . , a2p in dieser Reihenfolge. Dann zerfällt P in Q in eine Folge von p Teilpfaden, wobei der i-te Teilpfad I die Portale a2i−1 und a2i verbindet, I die p Teilpfade gemeinsam alle Punkte in Q besuchen und I die p Teilpfade gemeinsam (m, r )-leicht sind. Kosten(P) minimal ⇔ ∀ Teilpfade: Kosten minimal unter allen solchen Pfaden Idee Nutze das für die Konstruktion bottom-up. 23 Ein (m, r )-Multipfad-Problem Eingabe (1) nicht-leeres Quadrat Q in der (a, b)-Verschiebung des Quadtrees (2) Multi-Menge von ≤ r Portalen für jede Kante von Q mit ingesamt 2p ≤ 4r Portalen (3) Paarung aller Portale {a1 , a2 }, {a3 , a4 }, . . . , {a2p−1 , a2p }. Ausgabe kostenminimale Folge von p Pfade, so dass (1) die Folge (m, r )-leicht ist, (2) der i-te Pfade a2i−1 und a2i verbindet und (3) zusammen jeder Punkt in Q besucht wird 24 Ein (m, r )-Multipfad-Problem Eingabe (1) nicht-leeres Quadrat Q in der (a, b)-Verschiebung des Quadtrees (2) Multi-Menge von ≤ r Portalen für jede Kante von Q mit ingesamt 2p ≤ 4r Portalen (3) Paarung aller Portale {a1 , a2 }, {a3 , a4 }, . . . , {a2p−1 , a2p }. Ausgabe kostenminimale Folge von p Pfade, so dass (1) die Folge (m, r )-leicht ist, (2) der i-te Pfade a2i−1 und a2i verbindet und (3) zusammen jeder Punkt in Q besucht wird Wir werden alle (m, r )-Multipfad-Probleme bottom-up lösen. 24 Ein (m, r )-Multipfad-Problem Eingabe (1) nicht-leeres Quadrat Q in der (a, b)-Verschiebung des Quadtrees (2) Multi-Menge von ≤ r Portalen für jede Kante von Q mit ingesamt 2p ≤ 4r Portalen (3) Paarung aller Portale {a1 , a2 }, {a3 , a4 }, . . . , {a2p−1 , a2p }. Ausgabe kostenminimale Folge von p Pfade, so dass (1) die Folge (m, r )-leicht ist, (2) der i-te Pfade a2i−1 und a2i verbindet und (3) zusammen jeder Punkt in Q besucht wird Wir werden alle (m, r )-Multipfad-Probleme bottom-up lösen. Anzahl = O( ) 24 Ein (m, r )-Multipfad-Problem Eingabe (1) nicht-leeres Quadrat Q in der (a, b)-Verschiebung des Quadtrees (2) Multi-Menge von ≤ r Portalen für jede Kante von Q mit ingesamt 2p ≤ 4r Portalen (3) Paarung aller Portale {a1 , a2 }, {a3 , a4 }, . . . , {a2p−1 , a2p }. Ausgabe kostenminimale Folge von p Pfade, so dass (1) die Folge (m, r )-leicht ist, (2) der i-te Pfade a2i−1 und a2i verbindet und (3) zusammen jeder Punkt in Q besucht wird Wir werden alle (m, r )-Multipfad-Probleme bottom-up lösen. Anzahl = O( T |{z} ) Anzahl Quadrate 24 Ein (m, r )-Multipfad-Problem Eingabe (1) nicht-leeres Quadrat Q in der (a, b)-Verschiebung des Quadtrees (2) Multi-Menge von ≤ r Portalen für jede Kante von Q mit ingesamt 2p ≤ 4r Portalen (3) Paarung aller Portale {a1 , a2 }, {a3 , a4 }, . . . , {a2p−1 , a2p }. Ausgabe kostenminimale Folge von p Pfade, so dass (1) die Folge (m, r )-leicht ist, (2) der i-te Pfade a2i−1 und a2i verbindet und (3) zusammen jeder Punkt in Q besucht wird Wir werden alle (m, r )-Multipfad-Probleme bottom-up lösen. Anzahl = O( T |{z} Anzahl Quadrate · (m + 4)4r | {z } ) #Möglichkeiten Portale 24 Ein (m, r )-Multipfad-Problem Eingabe (1) nicht-leeres Quadrat Q in der (a, b)-Verschiebung des Quadtrees (2) Multi-Menge von ≤ r Portalen für jede Kante von Q mit ingesamt 2p ≤ 4r Portalen (3) Paarung aller Portale {a1 , a2 }, {a3 , a4 }, . . . , {a2p−1 , a2p }. Ausgabe kostenminimale Folge von p Pfade, so dass (1) die Folge (m, r )-leicht ist, (2) der i-te Pfade a2i−1 und a2i verbindet und (3) zusammen jeder Punkt in Q besucht wird Wir werden alle (m, r )-Multipfad-Probleme bottom-up lösen. Anzahl = O( T |{z} Anzahl Quadrate · (m + 4)4r | {z } #Möglichkeiten Portale · (4r )! | {z } ) #Paarungen 24 Ein (m, r )-Multipfad-Problem Eingabe (1) nicht-leeres Quadrat Q in der (a, b)-Verschiebung des Quadtrees (2) Multi-Menge von ≤ r Portalen für jede Kante von Q mit ingesamt 2p ≤ 4r Portalen (3) Paarung aller Portale {a1 , a2 }, {a3 , a4 }, . . . , {a2p−1 , a2p }. Ausgabe kostenminimale Folge von p Pfade, so dass (1) die Folge (m, r )-leicht ist, (2) der i-te Pfade a2i−1 und a2i verbindet und (3) zusammen jeder Punkt in Q besucht wird Wir werden alle (m, r )-Multipfad-Probleme bottom-up lösen. Anzahl = O( T |{z} Anzahl Quadrate · (m + 4)4r | {z } #Möglichkeiten Portale · (4r )! | {z } ) #Paarungen 24 Ein (m, r )-Multipfad-Problem Eingabe (1) nicht-leeres Quadrat Q in der (a, b)-Verschiebung des Quadtrees (2) Multi-Menge von ≤ r Portalen für jede Kante von Q mit ingesamt 2p ≤ 4r Portalen (3) Paarung aller Portale {a1 , a2 }, {a3 , a4 }, . . . , {a2p−1 , a2p }. Ausgabe kostenminimale Folge von p Pfade, so dass (1) die Folge (m, r )-leicht ist, (2) der i-te Pfade a2i−1 und a2i verbindet und (3) zusammen jeder Punkt in Q besucht wird Wir werden alle (m, r )-Multipfad-Probleme bottom-up lösen. Anzahl = O( T |{z} Anzahl Quadrate · (m + 4)4r | {z } #Möglichkeiten Portale · (4r )! | {z } ) #Paarungen Beobachtung Problem für Q = Wurzel des Quadtrees und p = 0 ist Gesamtlösung 24 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten Lösen in Zeit O(r ): probiere Punkt in jedem der r Pfade 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten Lösen in Zeit O(r ): probiere Punkt in jedem der r Pfade Q hat Tiefe i 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten Lösen in Zeit O(r ): probiere Punkt in jedem der r Pfade Q hat Tiefe i alle tieferen Q 0 gelöst 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten Lösen in Zeit O(r ): probiere Punkt in jedem der r Pfade Q hat Tiefe i alle tieferen Q 0 gelöst Betrachte Nachfolger Q1 , Q2 , Q3 , Q4 von Q im Baum. 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten Lösen in Zeit O(r ): probiere Punkt in jedem der r Pfade Q hat Tiefe i alle tieferen Q 0 gelöst Betrachte Nachfolger Q1 , Q2 , Q3 , Q4 von Q im Baum. Betrachte alle Möglichkeiten, wie ein (m, r )-leichter Multipfad die Kanten von Q1 , . . . , Q4 kreuzen kann 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten Lösen in Zeit O(r ): probiere Punkt in jedem der r Pfade Q hat Tiefe i alle tieferen Q 0 gelöst Betrachte Nachfolger Q1 , Q2 , Q3 , Q4 von Q im Baum. Betrachte alle Möglichkeiten, wie ein (m, r )-leichter Multipfad die Kanten von Q1 , . . . , Q4 kreuzen kann, also I Multimengen von ≤ r Portalen auf inneren Kanten der Nachfolger (#Möglichkeiten = ((m + 4)r )4 ) 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten Lösen in Zeit O(r ): probiere Punkt in jedem der r Pfade Q hat Tiefe i alle tieferen Q 0 gelöst Betrachte Nachfolger Q1 , Q2 , Q3 , Q4 von Q im Baum. Betrachte alle Möglichkeiten, wie ein (m, r )-leichter Multipfad die Kanten von Q1 , . . . , Q4 kreuzen kann, also I Multimengen von ≤ r Portalen auf inneren Kanten der Nachfolger (#Möglichkeiten = ((m + 4)r )4 ) und I Reihenfolgen, in der die Portale benutzt werden (#Möglichkeiten = (4r )4r ·(4r )!). | {z } Zuordnung der Portale zu Pfaden 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten Lösen in Zeit O(r ): probiere Punkt in jedem der r Pfade Q hat Tiefe i alle tieferen Q 0 gelöst Betrachte Nachfolger Q1 , Q2 , Q3 , Q4 von Q im Baum. Betrachte alle Möglichkeiten, wie ein (m, r )-leichter Multipfad die Kanten von Q1 , . . . , Q4 kreuzen kann, also I Multimengen von ≤ r Portalen auf inneren Kanten der Nachfolger (#Möglichkeiten = ((m + 4)r )4 ) und I Reihenfolgen, in der die Portale benutzt werden (#Möglichkeiten = (4r )4r ·(4r )!). | {z } Zuordnung der Portale zu Pfaden Addieren der Kosten der optimal gelösten Teilprobleme optimale Lösung 25 Lösung des (m, r )-Multipfad-Problems bottom-up im Quadtree: Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten Lösen in Zeit O(r ): probiere Punkt in jedem der r Pfade Q hat Tiefe i alle tieferen Q 0 gelöst Betrachte Nachfolger Q1 , Q2 , Q3 , Q4 von Q im Baum. Betrachte alle Möglichkeiten, wie ein (m, r )-leichter Multipfad die Kanten von Q1 , . . . , Q4 kreuzen kann, also I Multimengen von ≤ r Portalen auf inneren Kanten der Nachfolger (#Möglichkeiten = ((m + 4)r )4 ) und I Reihenfolgen, in der die Portale benutzt werden (#Möglichkeiten = (4r )4r ·(4r )!). | {z } Zuordnung der Portale zu Pfaden Addieren der Kosten der optimal gelösten Teilprobleme optimale Lösung Laufzeit O T · (m + 4)8r · (4r )4r · ((4r )!)2 = O n(log n)O(1/ε) 25 Für den Beweis des Strukturtheorems 26 Für den Beweis des Strukturtheorems Lemma 149 (Patching Lemma) Es gibt eine Konstante g > 0, so dass Folgendes richtig ist. Betrachte einen Geradenabschnitt S mit Länge s und einen geschlossenen Pfad π, der S mindestens dreimal schneidet. Es gibt Geradenabschnitte in S mit Gesamtlänge ≤ g · s, die man zu π hinzufügen kann, so dass ein geschlossener Pfad π 0 entsteht, der S höchstens zweimal schneidet. 26 Für den Beweis des Strukturtheorems Lemma 149 (Patching Lemma) Es gibt eine Konstante g > 0, so dass Folgendes richtig ist. Betrachte einen Geradenabschnitt S mit Länge s und einen geschlossenen Pfad π, der S mindestens dreimal schneidet. Es gibt Geradenabschnitte in S mit Gesamtlänge ≤ g · s, die man zu π hinzufügen kann, so dass ein geschlossener Pfad π 0 entsteht, der S höchstens zweimal schneidet. Beweisideen: Seien M1 , . . . , Mt die Schnittpunkte von π und S (t ≥ 3). 26 Für den Beweis des Strukturtheorems Lemma 149 (Patching Lemma) Es gibt eine Konstante g > 0, so dass Folgendes richtig ist. Betrachte einen Geradenabschnitt S mit Länge s und einen geschlossenen Pfad π, der S mindestens dreimal schneidet. Es gibt Geradenabschnitte in S mit Gesamtlänge ≤ g · s, die man zu π hinzufügen kann, so dass ein geschlossener Pfad π 0 entsteht, der S höchstens zweimal schneidet. Beweisideen: Seien M1 , . . . , Mt die Schnittpunkte von π und S (t ≥ 3). π zerfällt an Schnittpunkten in P1 , P2 , . . . , Pt . 26 Für den Beweis des Strukturtheorems Lemma 149 (Patching Lemma) Es gibt eine Konstante g > 0, so dass Folgendes richtig ist. Betrachte einen Geradenabschnitt S mit Länge s und einen geschlossenen Pfad π, der S mindestens dreimal schneidet. Es gibt Geradenabschnitte in S mit Gesamtlänge ≤ g · s, die man zu π hinzufügen kann, so dass ein geschlossener Pfad π 0 entsteht, der S höchstens zweimal schneidet. Beweisideen: Seien M1 , . . . , Mt die Schnittpunkte von π und S (t ≥ 3). π zerfällt an Schnittpunkten in P1 , P2 , . . . , Pt . Füge an jeder Seite von S eine Tour durch Schnittpunkte und ein Matching der Schnittpunkte hinzu. 26 Für den Beweis des Strukturtheorems Lemma 149 (Patching Lemma) Es gibt eine Konstante g > 0, so dass Folgendes richtig ist. Betrachte einen Geradenabschnitt S mit Länge s und einen geschlossenen Pfad π, der S mindestens dreimal schneidet. Es gibt Geradenabschnitte in S mit Gesamtlänge ≤ g · s, die man zu π hinzufügen kann, so dass ein geschlossener Pfad π 0 entsteht, der S höchstens zweimal schneidet. Beweisideen: Seien M1 , . . . , Mt die Schnittpunkte von π und S (t ≥ 3). π zerfällt an Schnittpunkten in P1 , P2 , . . . , Pt . Füge an jeder Seite von S eine Tour durch Schnittpunkte und ein Matching der Schnittpunkte hinzu. Resultat hat Eulerkreis, der S höchstens zweimal schneidet. 26 Beweis des Patchinglemmas P1 P3 S P5 P2 P4 27 Beweis des Patchinglemmas P1 P3 S P5 P2 P1 P4 P3 S P2 P4 P5 27 Beweis des Patchinglemmas P1 P3 S P5 P2 P1 P4 P3 S beweist g = 6 reicht aus P2 P4 P5 27 Tourlänge und Schnittpunkte Lemma 150 Betrachte Einheitsgitter über umschließendem Rechteck, minimaler positiver Abstand zwischen Punkten ist 4. Sei π eine Tour mit Länge T , sei l eine Gitterlinie, sei t(π, l) Anzahl der Schnittpunkte von π und l. X X t(π, l) + t(π, i) ≤ 2T l vertikal l horizontal 28 Tourlänge und Schnittpunkte Lemma 150 Betrachte Einheitsgitter über umschließendem Rechteck, minimaler positiver Abstand zwischen Punkten ist 4. Sei π eine Tour mit Länge T , sei l eine Gitterlinie, sei t(π, l) Anzahl der Schnittpunkte von π und l. X X t(π, l) + t(π, i) ≤ 2T l vertikal l horizontal Beweis. Betrachte Kante aus π mit Länge s und ihre Projektionen mit Längen u und v . xj s xi u v 28 Tourlänge und Schnittpunkte Lemma 150 Betrachte Einheitsgitter über umschließendem Rechteck, minimaler positiver Abstand zwischen Punkten ist 4. Sei π eine Tour mit Länge T , sei l eine Gitterlinie, sei t(π, l) Anzahl der Schnittpunkte von π und l. X X t(π, l) + t(π, i) ≤ 2T l vertikal l horizontal Beweis. Betrachte Kante aus π mit Länge s und ihre Projektionen mit Längen u und v . xj Beitrag von s ≤ (u + 1) + (v + 1) s xi u v 28 Tourlänge und Schnittpunkte Lemma 150 Betrachte Einheitsgitter über umschließendem Rechteck, minimaler positiver Abstand zwischen Punkten ist 4. Sei π eine Tour mit Länge T , sei l eine Gitterlinie, sei t(π, l) Anzahl der Schnittpunkte von π und l. X X t(π, l) + t(π, i) ≤ 2T l vertikal l horizontal Beweis. Betrachte Kante aus π mit Länge s und ihre Projektionen mit Längen u und v . xj Beitrag von s ≤ (u + 1) + (v + 1) s 2 = u2 + v 2 s u xi v 28 Tourlänge und Schnittpunkte Lemma 150 Betrachte Einheitsgitter über umschließendem Rechteck, minimaler positiver Abstand zwischen Punkten ist 4. Sei π eine Tour mit Länge T , sei l eine Gitterlinie, sei t(π, l) Anzahl der Schnittpunkte von π und l. X X t(π, l) + t(π, i) ≤ 2T l vertikal l horizontal Beweis. Betrachte Kante aus π mit Länge s und ihre Projektionen mit Längen u und v . xj Beitrag von s ≤ (u + 1) + (v + 1) s 2 = u2 + v 2 s u u + v ≤ p2(u 2 + v 2 ) xi v 28 Tourlänge und Schnittpunkte Lemma 150 Betrachte Einheitsgitter über umschließendem Rechteck, minimaler positiver Abstand zwischen Punkten ist 4. Sei π eine Tour mit Länge T , sei l eine Gitterlinie, sei t(π, l) Anzahl der Schnittpunkte von π und l. X X t(π, l) + t(π, i) ≤ 2T l vertikal l horizontal Beweis. Betrachte Kante aus π mit Länge s und ihre Projektionen mit Längen u und v . xj Beitrag von s ≤ (u + 1) + (v + 1) s 2 = u2 + v 2 s u u + v ≤ p2(u 2 + v 2 ) p also Beitrag ≤ u + v + 2 ≤ 2(u 2 + v 2 ) + 2 xi √ v 2 ≤ 2s + 2 28 Tourlänge und Schnittpunkte Lemma 150 Betrachte Einheitsgitter über umschließendem Rechteck, minimaler positiver Abstand zwischen Punkten ist 4. Sei π eine Tour mit Länge T , sei l eine Gitterlinie, sei t(π, l) Anzahl der Schnittpunkte von π und l. X X t(π, l) + t(π, i) ≤ 2T l vertikal l horizontal Beweis. Betrachte Kante aus π mit Länge s und ihre Projektionen mit Längen u und v . xj Beitrag von s ≤ (u + 1) + (v + 1) s 2 = u2 + v 2 s u u + v ≤ p2(u 2 + v 2 ) p also Beitrag ≤ u + v + 2 ≤ 2(u 2 + v 2 ) + 2 xi √ v 2 ≤ √2s + 2 s ≥ 4 ⇒ 2s 2 + 2 ≤ 2s 28 Beweis des Strukturtheorems Strukturtheorem: Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. Mit Wahrscheinlichkeit mindestens 1/2 gibt es einen für die (a, b)-Verschiebung der Zergliederung (m, r )-leichten TSP-Pfad mit Länge ≤ (1 + ε)OPT, dabei ist m = O(ε−1 log L) und r = O(ε−1 ). 29 Beweis des Strukturtheorems Strukturtheorem: Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. Mit Wahrscheinlichkeit mindestens 1/2 gibt es einen für die (a, b)-Verschiebung der Zergliederung (m, r )-leichten TSP-Pfad mit Länge ≤ (1 + ε)OPT, dabei ist m = O(ε−1 log L) und r = O(ε−1 ). Beweis: s := 12g /ε (g aus Patching-Lemma), r := s + 4, m ≥ 2s log L 29 Beweis des Strukturtheorems Strukturtheorem: Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. Mit Wahrscheinlichkeit mindestens 1/2 gibt es einen für die (a, b)-Verschiebung der Zergliederung (m, r )-leichten TSP-Pfad mit Länge ≤ (1 + ε)OPT, dabei ist m = O(ε−1 log L) und r = O(ε−1 ). Beweis: s := 12g /ε (g aus Patching-Lemma), r := s + 4, m ≥ 2s log L Verschiebung (a, b) zufällig gewählt, π optimale Tour 29 Beweis des Strukturtheorems Strukturtheorem: Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. Mit Wahrscheinlichkeit mindestens 1/2 gibt es einen für die (a, b)-Verschiebung der Zergliederung (m, r )-leichten TSP-Pfad mit Länge ≤ (1 + ε)OPT, dabei ist m = O(ε−1 log L) und r = O(ε−1 ). Beweis: s := 12g /ε (g aus Patching-Lemma), r := s + 4, m ≥ 2s log L Verschiebung (a, b) zufällig gewählt, π optimale Tour Beweisidee: (1) π determ. (m, r )-leichter TSP-Pfad 29 Beweis des Strukturtheorems Strukturtheorem: Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. Mit Wahrscheinlichkeit mindestens 1/2 gibt es einen für die (a, b)-Verschiebung der Zergliederung (m, r )-leichten TSP-Pfad mit Länge ≤ (1 + ε)OPT, dabei ist m = O(ε−1 log L) und r = O(ε−1 ). Beweis: s := 12g /ε (g aus Patching-Lemma), r := s + 4, m ≥ 2s log L Verschiebung (a, b) zufällig gewählt, π optimale Tour determ. Beweisidee: (1) π (m, r )-leichter TSP-Pfad (2) für Analyse gedanklich Einheitsgitter betrachten 29 Beweis des Strukturtheorems Strukturtheorem: Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. Mit Wahrscheinlichkeit mindestens 1/2 gibt es einen für die (a, b)-Verschiebung der Zergliederung (m, r )-leichten TSP-Pfad mit Länge ≤ (1 + ε)OPT, dabei ist m = O(ε−1 log L) und r = O(ε−1 ). Beweis: s := 12g /ε (g aus Patching-Lemma), r := s + 4, m ≥ 2s log L Verschiebung (a, b) zufällig gewählt, π optimale Tour determ. Beweisidee: (1) π (m, r )-leichter TSP-Pfad (2) für Analyse gedanklich Einheitsgitter betrachten (3) Mehrkosten der Tour auf Gitterlinien umlegen 29 Beweis des Strukturtheorems Strukturtheorem: Sei ε > 0 konstant. Sei der kleinste positive Abstand zwischen Punkten der TSP-Eingabe 8, sei L die Seitenlänge des kleinsten einschließenden Quadrats. Seien a, b ∈ {0, . . . , L} uniform zufällig gewählt. Mit Wahrscheinlichkeit mindestens 1/2 gibt es einen für die (a, b)-Verschiebung der Zergliederung (m, r )-leichten TSP-Pfad mit Länge ≤ (1 + ε)OPT, dabei ist m = O(ε−1 log L) und r = O(ε−1 ). Beweis: s := 12g /ε (g aus Patching-Lemma), r := s + 4, m ≥ 2s log L Verschiebung (a, b) zufällig gewählt, π optimale Tour Beweisidee: (1) (2) (3) (4) determ. π (m, r )-leichter TSP-Pfad für Analyse gedanklich Einheitsgitter betrachten Mehrkosten der Tour auf Gitterlinien umlegen erwarteten Anstieg je Gitterlinie nach oben beschränken 29 Nachrechnen der Approximationsgüte 30 Nachrechnen der Approximationsgüte Wir werden zeigen E (Kosten für l) ≤ 3gt(π,l) s 30 Nachrechnen der Approximationsgüte Wir werden zeigen E (Kosten für l) ≤ 3gt(π,l) s also E (Anstieg) ≤ X 3g · t(π, l) + s l vertikal X l horizontal 3g · t(π, l) s 30 Nachrechnen der Approximationsgüte Wir werden zeigen E (Kosten für l) ≤ 3gt(π,l) s also E (Anstieg) ≤ X 3g · t(π, l) + s l vertikal Lemma 150 ≤ X l horizontal 3g · t(π, l) s 6g · OPT s 30 Nachrechnen der Approximationsgüte Wir werden zeigen E (Kosten für l) ≤ 3gt(π,l) s also E (Anstieg) ≤ X 3g · t(π, l) + s l vertikal Lemma 150 ≤ 6g · OPT s s=12g /ε = X l horizontal 3g · t(π, l) s εOPT 2 30 Nachrechnen der Approximationsgüte Wir werden zeigen E (Kosten für l) ≤ 3gt(π,l) s also E (Anstieg) ≤ X 3g · t(π, l) + s l vertikal Lemma 150 ≤ 6g · OPT s s=12g /ε = Markov-Ungleichung: Prob Anstieg ≥ 2 · X l horizontal 3g · t(π, l) s εOPT 2 εOPT 2 ≤ 1 2 30 Nachrechnen der Approximationsgüte Wir werden zeigen E (Kosten für l) ≤ 3gt(π,l) s also E (Anstieg) ≤ X 3g · t(π, l) + s l vertikal Lemma 150 ≤ 6g · OPT s s=12g /ε = Markov-Ungleichung: Prob Anstieg ≥ 2 · X l horizontal 3g · t(π, l) s εOPT 2 εOPT 2 ≤ 1 2 also Prob (Länge opt. (m, r )-leichter TSP-Pfad ≤ (1 + ε)OPT) ≥ 1 2 30 Sprachregelungen und Notation 31 Sprachregelungen und Notation o. B. d. A. L = 2l mit l ∈ N 31 Sprachregelungen und Notation o. B. d. A. L = 2l mit l ∈ N also alle Zergliederungslinien auf Gitterlinien, auch verschoben 31 Sprachregelungen und Notation o. B. d. A. L = 2l mit l ∈ N also alle Zergliederungslinien auf Gitterlinien, auch verschoben Quadrate haben Level nach ihrer Position im Quadtree, Wurzel hat Level 0 31 Sprachregelungen und Notation o. B. d. A. L = 2l mit l ∈ N also alle Zergliederungslinien auf Gitterlinien, auch verschoben Quadrate haben Level nach ihrer Position im Quadtree, Wurzel hat Level 0 Definition Gitterlinie l hat Level i, wenn Quadratkante von Quadrat mit Level i enthalten 31 Sprachregelungen und Notation o. B. d. A. L = 2l mit l ∈ N also alle Zergliederungslinien auf Gitterlinien, auch verschoben Quadrate haben Level nach ihrer Position im Quadtree, Wurzel hat Level 0 Definition Gitterlinie l hat Level i, wenn Quadratkante von Quadrat mit Level i enthalten Anmerkung Gitterlinien können mehrere Level haben 31 Sprachregelungen und Notation o. B. d. A. L = 2l mit l ∈ N also alle Zergliederungslinien auf Gitterlinien, auch verschoben Quadrate haben Level nach ihrer Position im Quadtree, Wurzel hat Level 0 Definition Gitterlinie l hat Level i, wenn Quadratkante von Quadrat mit Level i enthalten Anmerkung Gitterlinien können mehrere Level haben Es gibt 2i vertikale und 2i horizontale Linien mit Level i. 31 Sprachregelungen und Notation o. B. d. A. L = 2l mit l ∈ N also alle Zergliederungslinien auf Gitterlinien, auch verschoben Quadrate haben Level nach ihrer Position im Quadtree, Wurzel hat Level 0 Definition Gitterlinie l hat Level i, wenn Quadratkante von Quadrat mit Level i enthalten Anmerkung Gitterlinien können mehrere Level haben Es gibt 2i vertikale und 2i horizontale Linien mit Level i. Koordinaten vertikaler Linien: a + p · 2Li , p ∈ {0, 1, . . . , 2i − 1} Koordinaten horizontaler Linien: a + p · 2Li , p ∈ {0, 1, . . . , 2i − 1} 31 Sprachregelungen und Notation o. B. d. A. L = 2l mit l ∈ N also alle Zergliederungslinien auf Gitterlinien, auch verschoben Quadrate haben Level nach ihrer Position im Quadtree, Wurzel hat Level 0 Definition Gitterlinie l hat Level i, wenn Quadratkante von Quadrat mit Level i enthalten Anmerkung Gitterlinien können mehrere Level haben Es gibt 2i vertikale und 2i horizontale Linien mit Level i. Koordinaten vertikaler Linien: a + p · 2Li , p ∈ {0, 1, . . . , 2i − 1} Koordinaten horizontaler Linien: a + p · 2Li , p ∈ {0, 1, . . . , 2i − 1} Definition maximales Level von Linie l ist max{i | l hat Level i} 31 Sprachregelungen und Notation o. B. d. A. L = 2l mit l ∈ N also alle Zergliederungslinien auf Gitterlinien, auch verschoben Quadrate haben Level nach ihrer Position im Quadtree, Wurzel hat Level 0 Definition Gitterlinie l hat Level i, wenn Quadratkante von Quadrat mit Level i enthalten Anmerkung Gitterlinien können mehrere Level haben Es gibt 2i vertikale und 2i horizontale Linien mit Level i. Koordinaten vertikaler Linien: a + p · 2Li , p ∈ {0, 1, . . . , 2i − 1} Koordinaten horizontaler Linien: a + p · 2Li , p ∈ {0, 1, . . . , 2i − 1} Definition maximales Level von Linie l ist max{i | l hat Level i} klar Prob (horizontales l hat Level i) = i Prob (vertikales l hat Level i) = 2L 2i L 31 Modifikation der optimalen Tour Erinnerung: Ein TSP-Pfad heißt (m, r )-leicht, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. 32 Modifikation der optimalen Tour Erinnerung: Ein TSP-Pfad heißt (m, r )-leicht, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. Modify(l, i, b) für vertikale Linien l vertikale Gitterlinie i maximales Level von l b vertikale Verschiebung 32 Modifikation der optimalen Tour Erinnerung: Ein TSP-Pfad heißt (m, r )-leicht, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. Modify(l, i, b) für vertikale Linien l vertikale Gitterlinie i maximales Level von l b vertikale Verschiebung Für alle j = log L, (log L) − 1, . . . , i: Für alle p = 0, 1, . . . , 2j − 1: Falls π und l zwischen b + p · 2Lj mod L und und b + (p + 1) · 2Lj mod L mehr als s Schnitte haben Verkleinere Anzahl Schnitte mit Patching-Lemma auf 4 32 Modifikation der optimalen Tour Erinnerung: Ein TSP-Pfad heißt (m, r )-leicht, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. Modify(l, i, b) für vertikale Linien l vertikale Gitterlinie i maximales Level von l b vertikale Verschiebung Für alle j = log L, (log L) − 1, . . . , i: Für alle p = 0, 1, . . . , 2j − 1: Falls π und l zwischen b + p · 2Lj mod L und und b + (p + 1) · 2Lj mod L mehr als s Schnitte haben Verkleinere Anzahl Schnitte mit Patching-Lemma auf 4 Anmerkung I für horizontale Gitterlinien analog 32 Modifikation der optimalen Tour Erinnerung: Ein TSP-Pfad heißt (m, r )-leicht, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. Modify(l, i, b) für vertikale Linien l vertikale Gitterlinie i maximales Level von l b vertikale Verschiebung Für alle j = log L, (log L) − 1, . . . , i: Für alle p = 0, 1, . . . , 2j − 1: Falls π und l zwischen b + p · 2Lj mod L und und b + (p + 1) · 2Lj mod L mehr als s Schnitte haben Verkleinere Anzahl Schnitte mit Patching-Lemma auf 4 Anmerkungen I für horizontale Gitterlinien analog I Schnittzahl nachher 4 (nicht 2!) wegen geteilten“ Quadraten ” 32 Modifikation der optimalen Tour Erinnerung: Ein TSP-Pfad heißt (m, r )-leicht, wenn jede Kante jedes Quadrats höchstens r Mal gekreuzt wird und dies ausschließlich an Portalen. Modify(l, i, b) für vertikale Linien l vertikale Gitterlinie i maximales Level von l b vertikale Verschiebung Für alle j = log L, (log L) − 1, . . . , i: Für alle p = 0, 1, . . . , 2j − 1: Falls π und l zwischen b + p · 2Lj mod L und und b + (p + 1) · 2Lj mod L mehr als s Schnitte haben Verkleinere Anzahl Schnitte mit Patching-Lemma auf 4 Anmerkungen I für horizontale Gitterlinien analog I Schnittzahl nachher 4 (nicht 2!) wegen geteilten“ Quadraten ” I Reihenfolge von log L absteigend) wesentlich 32 Analyse von Modify 33 Analyse von Modify cl,j (b) := #l-Abschnitte mit Patching-Lemma-Anwendung bei j 33 Analyse von Modify cl,j (b) := #l-Abschnitte mit Patching-Lemma-Anwendung bei j Beobachtung Patching-Lemma-Anwendung ersetzt ≥ s + 1 Schnitte mit ≤ 4 33 Analyse von Modify cl,j (b) := #l-Abschnitte mit Patching-Lemma-Anwendung bei j Beobachtung Patching-Lemma-Anwendung ersetzt ≥ s + 1 Schnitte mit ≤ 4 klar initial t(π, l) Schnitte 33 Analyse von Modify cl,j (b) := #l-Abschnitte mit Patching-Lemma-Anwendung bei j Beobachtung Patching-Lemma-Anwendung ersetzt ≥ s + 1 Schnitte mit ≤ 4 klar initial t(π, l) Schnitte also cl,j (b) ≤ t(π,l) s−3 33 Analyse von Modify cl,j (b) := #l-Abschnitte mit Patching-Lemma-Anwendung bei j Beobachtung Patching-Lemma-Anwendung ersetzt ≥ s + 1 Schnitte mit ≤ 4 klar initial t(π, l) Schnitte also cl,j (b) ≤ t(π,l) s−3 Kostenzunahme durch Modify(l, i, b) ≤ P j≥i cl,j (b) · g · L 2j 33 Analyse von Modify cl,j (b) := #l-Abschnitte mit Patching-Lemma-Anwendung bei j Beobachtung Patching-Lemma-Anwendung ersetzt ≥ s + 1 Schnitte mit ≤ 4 klar initial t(π, l) Schnitte also cl,j (b) ≤ t(π,l) s−3 Kostenzunahme durch Modify(l, i, b) ≤ P j≥i cl,j (b) · g · L 2j Diese Kosten rechnen wir l an. 33 Analyse von Modify cl,j (b) := #l-Abschnitte mit Patching-Lemma-Anwendung bei j Beobachtung Patching-Lemma-Anwendung ersetzt ≥ s + 1 Schnitte mit ≤ 4 klar initial t(π, l) Schnitte also cl,j (b) ≤ t(π,l) s−3 Kostenzunahme durch Modify(l, i, b) ≤ P j≥i cl,j (b) · g · L 2j Diese Kosten rechnen wir l an. klar Prob (Kosten fallen an) = Prob (i ist maximales Level von l) 33 Analyse von Modify cl,j (b) := #l-Abschnitte mit Patching-Lemma-Anwendung bei j Beobachtung Patching-Lemma-Anwendung ersetzt ≥ s + 1 Schnitte mit ≤ 4 klar initial t(π, l) Schnitte also cl,j (b) ≤ t(π,l) s−3 Kostenzunahme durch Modify(l, i, b) ≤ P j≥i cl,j (b) · g · L 2j Diese Kosten rechnen wir l an. klar Prob (Kosten fallen an) = Prob (i ist maximales Level von l) = 2i L 33 Analyse von Modify (Fortsetzung) E (Kosten von l) X = Prob (Kosten für Modify(l, i, b) fallen an) · Kosten dadurch i≥1 34 Analyse von Modify (Fortsetzung) E (Kosten von l) X = Prob (Kosten für Modify(l, i, b) fallen an) · Kosten dadurch i≥1 ≤ X 2i X L · cl,j (b) · g · j L 2 i≥1 j≥i 34 Analyse von Modify (Fortsetzung) E (Kosten von l) X = Prob (Kosten für Modify(l, i, b) fallen an) · Kosten dadurch i≥1 ≤ X 2i X X X cl,j (b) L 2i · · cl,j (b) · g · j = g · L 2 2j i≥1 j≥i i≥1 j≥i 34 Analyse von Modify (Fortsetzung) E (Kosten von l) X = Prob (Kosten für Modify(l, i, b) fallen an) · Kosten dadurch i≥1 ≤ X 2i X X X cl,j (b) L 2i · · cl,j (b) · g · j = g · L 2 2j i≥1 i≥1 j≥i j≥i X cl,j (b) X = g· · 2i 2j j≥1 i≤j 34 Analyse von Modify (Fortsetzung) E (Kosten von l) X = Prob (Kosten für Modify(l, i, b) fallen an) · Kosten dadurch i≥1 ≤ X 2i X X X cl,j (b) L 2i · · cl,j (b) · g · j = g · L 2 2j i≥1 i≥1 j≥i j≥i X cl,j (b) X X = g· · 2i ≤ g · 2cl,j (b) j 2 j≥1 i≤j j≥1 34 Analyse von Modify (Fortsetzung) E (Kosten von l) X = Prob (Kosten für Modify(l, i, b) fallen an) · Kosten dadurch i≥1 ≤ X 2i X X X cl,j (b) L 2i · · cl,j (b) · g · j = g · L 2 2j i≥1 i≥1 j≥i j≥i X cl,j (b) X X 2g · t(π, l) = g· · 2i ≤ g · 2cl,j (b) ≤ j 2 s −3 j≥1 i≤j j≥1 34 Analyse von Modify (Fortsetzung) E (Kosten von l) X = Prob (Kosten für Modify(l, i, b) fallen an) · Kosten dadurch i≥1 ≤ X 2i X X X cl,j (b) L 2i · · cl,j (b) · g · j = g · L 2 2j i≥1 i≥1 j≥i j≥i X cl,j (b) X X 2g · t(π, l) = g· · 2i ≤ g · 2cl,j (b) ≤ j 2 s −3 j≥1 i≤j j≥1 Fehlt noch etwas? 34 Analyse von Modify (Fortsetzung) E (Kosten von l) X = Prob (Kosten für Modify(l, i, b) fallen an) · Kosten dadurch i≥1 ≤ X 2i X X X cl,j (b) L 2i · · cl,j (b) · g · j = g · L 2 2j i≥1 i≥1 j≥i j≥i X cl,j (b) X X 2g · t(π, l) = g· · 2i ≤ g · 2cl,j (b) ≤ j 2 s −3 j≥1 i≤j j≥1 Fehlt noch etwas? Mehrkosten durch Portalbenutzung nicht berücksichtigt 34 Mehrkosten durch Portalbenutzung 35 Mehrkosten durch Portalbenutzung 35 Mehrkosten durch Portalbenutzung Beobachtung Umweg zum nächstgelegenen Portal ≤ L 2i m 35 Mehrkosten durch Portalbenutzung Beobachtung Umweg zum nächstgelegenen Portal ≤ L 2i m also E (Mehrkosten durch Portalbenutzung) log PL 2i t(π,l) log L L ≤ L · t(π, l) · 2i m = m i=1 35 Mehrkosten durch Portalbenutzung Beobachtung Umweg zum nächstgelegenen Portal ≤ L 2i m also E (Mehrkosten durch Portalbenutzung) log PL 2i t(π,l) log L L ≤ L · t(π, l) · 2i m = m i=1 m ≥ 2s log L, also E (Mehrkosten durch Portalbenutzung) ≤ t(π,l) 2s 35 Mehrkosten durch Portalbenutzung Beobachtung Umweg zum nächstgelegenen Portal ≤ L 2i m also E (Mehrkosten durch Portalbenutzung) log PL 2i t(π,l) log L L ≤ L · t(π, l) · 2i m = m i=1 m ≥ 2s log L, also E (Mehrkosten durch Portalbenutzung) ≤ also E (Gesamtmehrkosten) ≤ 2g ·t(π,l) s−3 + t(π,l) 2s t(π,l) 2s ≤ 3g ·t(π,l) s 35 Nachbetrachtung euklidisches TSP 36 Nachbetrachtung euklidisches TSP I haben PTAS für euklidisches TSP mit Laufzeit O(n(log n)O(1/ε) ) 36 Nachbetrachtung euklidisches TSP I haben PTAS für euklidisches TSP mit Laufzeit O(n(log n)O(1/ε) ) I nicht übermäßig praktikabel 36 Nachbetrachtung euklidisches TSP I haben PTAS für euklidisches TSP mit Laufzeit O(n(log n)O(1/ε) ) I nicht übermäßig praktikabel I Verbesserung auf O(n log n + n2poly(1/ε) ) bekannt 36 Nachbetrachtung euklidisches TSP I haben PTAS für euklidisches TSP mit Laufzeit O(n(log n)O(1/ε) ) I nicht übermäßig praktikabel I Verbesserung auf O(n log n + n2poly(1/ε) ) bekannt I auch nicht übermäßig praktikabel 36 Nachbetrachtung euklidisches TSP I haben PTAS für euklidisches TSP mit Laufzeit O(n(log n)O(1/ε) ) I nicht übermäßig praktikabel I Verbesserung auf O(n log n + n2poly(1/ε) ) bekannt I auch nicht übermäßig praktikabel Geht es noch schneller? 36 Nachbetrachtung euklidisches TSP I haben PTAS für euklidisches TSP mit Laufzeit O(n(log n)O(1/ε) ) I nicht übermäßig praktikabel I Verbesserung auf O(n log n + n2poly(1/ε) ) bekannt I auch nicht übermäßig praktikabel Geht es noch schneller? schnellere PTAS und bessere Implementierungen: gut denkbar 36 Nachbetrachtung euklidisches TSP I haben PTAS für euklidisches TSP mit Laufzeit O(n(log n)O(1/ε) ) I nicht übermäßig praktikabel I Verbesserung auf O(n log n + n2poly(1/ε) ) bekannt I auch nicht übermäßig praktikabel Geht es noch schneller? schnellere PTAS und bessere Implementierungen: gut denkbar kein FPTAS, wenn P6=NP 36