Vorlesung Thomas Jansen Ingo Wegener 22.05.2006

Werbung
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
Herunterladen