kompakt - TU Dortmund, Informatik 2

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