Aktuell Effiziente Algorithmen und Komplexitätstheorie Aktuell Vorlesung Thomas Jansen Raumänderung am 01.06.2006 (Donnerstag) Ingo Wegener im GB V, HS 113 Bitte nicht vergessen! 22.05.2006 1 Approximationsalgorithmen Algorithmus Güte O(1) Laufzeit p(|I |) Name Approximationsalgorithmus 2 TSP approximieren Klasse 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 APX Güte Laufzeit Name 1+ε p(|I |) PTAS PTAS Güte Laufzeit Name 1+ε p(|I |, 1/ε) FPTAS FPTAS 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 APX PTAS FPTAS P 3 4 Metrisches TSP approximieren Beweis von Lemma 142 Begriffe I Multigraph Kanten dürfen mehrfach vorkommen I Eulerkreis enthält jede Kante genau einmal 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 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 Metrisches TSP mit MST und EK approximieren Beispiel Algorithmus 143 1. 2. 3. 4. Berechne Berechne Berechne Berechne 6 Graph G , N = 8, Kantengewicht = Abstände 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: MST 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 Tour aus Eulerkreis optimale Tour 7 Länge ≈ 24,3 Länge ≈ 23,1 8 Noch ein Beispiel Metrisches TSP besser approximieren Wie können wir Güte < 2 hinbekommen? Graph G , N = 17, Kantengewicht = Abstände 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! MST Tour aus Eulerkreis optimale Tour Länge 16 · 1, 25 + 8 · 1, 5 = 32 Knoten ungeraden Grads behandeln genügt Idee Verbinde Knoten ungeraden Grades paarweise möglichst billig Berechne kostenminimales Matching zwischen solchen Knoten. Länge 8 · 1,5 + 7 · 1,5 + 2 · 1,25 = 25 9 Der Algorithmus von Christofides 10 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. 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. Beweis. Laufzeit: Beobachtungen P I deg(v ) gerade v ∈V I also |M| gerade und |M|/2 ∈ N 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 11 12 Beweis von Theorem 145 Über approximatives Lösen des TSP zu zeigen w (Mmin ) ≤ OPT(G )/2 Sei |M| = 2k natürlich 2k ≤ n Anmerkungen: 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 ) 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 klar min{w (M1 ), w (M2 )} ≤ OPT(G )/2 natürlich w (Mmin ) ≤ min{w (M1 ), w (M2 )} 14 13 Euklidisches TSP Beweisideen für Theorem 146 I R2 Eingabe n Punkte x1p , . . . , xn ∈ Distanzen c(xi , xj ) := (xi [1] − xj [1])2 + (xi [2] − xj [2])2 I I Vorbereitung: Diskretisierung und Normierung der Eingabe zentral: Konstruktion zufällig verschobener Quadtree Berechnung: dynamische Programmierung 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 16 Vorbereitung: Diskretisierung und Normierung Zerlegung und Quadtree 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 Wappnen gegen Worst Case Eingaben 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) O(n log L) Knoten Größe O(L2 ), Tiefe O(log L) 18 Portale Definition 147. Seien m, r ∈ N. a, b ∈ {0, 1, 2, . . . , dLe − 1} zufällig wählen I (a, b)-Verschiebung einer Zergliederung: Verschiebe (x, y ) (x + a mod L, y + b mod L). TSP-Punkte nicht verschieben! I I (a, b)-Verschiebung eines Quadtrees aus (a, b)-Verschiebung der Zerglierdung 19 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 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 ) ). 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 ). Beobachtungen I Schritte 1–3 einfach Beweis: später I T = O(#Blätter · Tiefe) = O(n log n) jetzt Algorithmus unter Annahme, das Strukturtheorem korrekt I Konstruktion in Zeit O(n log2 n) möglich I Erfolgswahrscheinlichkeit ≥ 1/2 (Strukturtheorem) 21 Konstruktion eines optimalen (m, r )-leichten TSP-Pfades Ein (m, r )-Multipfad-Problem 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 ⇔ 22 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( ∀ Teilpfade: Kosten minimal unter allen solchen Pfaden 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 Idee Nutze das für die Konstruktion bottom-up. 23 24 Lösung des (m, r )-Multipfad-Problems Für den Beweis des Strukturtheorems bottom-up im Quadtree: Lemma 149 (Patching Lemma) Q ist Blatt ≤ 1 Punkt und O(r ) Portale enthalten Lösen in Zeit O(r ): probiere Punkt in jedem der r Pfade 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. Q0 Q hat Tiefe i alle tieferen 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 } 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. 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/ε) 26 25 Beweis des Patchinglemmas Tourlänge und Schnittpunkte Lemma 150 P1 P3 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 S P5 P2 P4 l vertikal P1 Beweis. P3 S beweist g = 6 reicht aus P2 l horizontal P4 P5 27 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 ≤ √2s 2 + 2 s ≥ 4 ⇒ 2s 2 + 2 ≤ 2s 28 Beweis des Strukturtheorems Nachrechnen der Approximationsgüte 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 ). 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 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) Markov-Ungleichung: Prob Anstieg ≥ 2 · 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 Sprachregelungen und Notation ≤ 1 2 also Prob (Länge opt. (m, r )-leichter TSP-Pfad ≤ (1 + ε)OPT) ≥ 1 2 30 Modifikation der optimalen Tour 2l o. B. d. A. L = mit l ∈ N also alle Zergliederungslinien auf Gitterlinien, auch verschoben 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. Quadrate haben Level nach ihrer Position im Quadtree, Wurzel hat Level 0 Modify(l, i, b) für vertikale Linien l vertikale Gitterlinie i maximales Level von l b vertikale Verschiebung Definition Gitterlinie l hat Level i, wenn Quadratkante von Quadrat mit Level i enthalten Anmerkung Gitterlinien können mehrere Level haben 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 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 εOPT 2 2i L 31 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 Analyse von Modify (Fortsetzung) 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) ≤ E (Kosten von l) X = Prob (Kosten für Modify(l, i, b) fallen an) · Kosten dadurch i≥1 t(π,l) s−3 Kostenzunahme durch Modify(l, i, b) ≤ P cl,j (b) · g · j≥i X 2i X X X cl,j (b) L ≤ 2i · · cl,j (b) · g · j = g · L 2 2j L 2j i≥1 j≥i Diese Kosten rechnen wir l an. j≥1 klar Prob (Kosten fallen an) = Prob (i ist maximales Level von l) = i≥1 j≥i X cl,j (b) X X 2g · t(π, l) = g· · 2i ≤ g · 2cl,j (b) ≤ j 2 s −3 2i L i≤j j≥1 Fehlt noch etwas? Mehrkosten durch Portalbenutzung nicht berücksichtigt 34 33 Mehrkosten durch Portalbenutzung Nachbetrachtung euklidisches TSP 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 also E (Gesamtmehrkosten) ≤ 2g ·t(π,l) s−3 + t(π,l) 2s t(π,l) 2s 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? i=1 m ≥ 2s log L, also E (Mehrkosten durch Portalbenutzung) ≤ I ≤ schnellere PTAS und bessere Implementierungen: gut denkbar kein FPTAS, wenn P6=NP 3g ·t(π,l) s 35 36