Vorlesung - TU Dortmund, Informatik 2

Werbung
Max Cut
Min Cut
Fast Min Cut
Fakultät für Informatik
Lehrstuhl 2
Vorlesung
Effiziente Algorithmen
und Komplexitätstheorie
Sommersemester 2008
Ingo Wegener
Ingo Wegener
02. Juni 2008
1
Max Cut
Min Cut
Fast Min Cut
Schnittprobleme
Erinnerung
• Q-S-Schnitte in Netzwerken
• Max Flow = Min Cut
Eingabe
zulässige Lösung
Bewertung
gewichteter, ungerichteter Graph G = (V, E)
Kantengewichte w(e) ∈ N
(ungewichteter Graph =
b alle Kantengewichte = 1)
Schnitt V1 , V2
mit V1 ∪· V2 = V
P
w(e)
w(V1 , V2 ) =
e∈{{u,v}|u∈V1 ,v∈V2 }
Min Cut
Ziel finde Schnitt mit minimalem Wert
mit V1 6= ∅ und V2 6= ∅
Max Cut
Ziel findet Schnitt mit maximalem Wert
Ingo Wegener
02. Juni 2008
2
Max Cut
Min Cut
Fast Min Cut
Über Max Cut
klar
Max Cut ∈ N PO
bekannt
• zugehöriges Entscheidungsproblem NP-vollständig
(Karp 1972)
• Max Cut hat eine 1,14-Approximation
(Goemans und Williamson 1994)
• Max Cut hat keine 1,06-Approximation, wenn P 6= NP
(Håstad 1996)
hier und heute
Ingo Wegener
sehr einfacher randomisierter Algorithmus
schnell, sehr leicht zu implementieren
erwartete Approximationsgüte ≤ 2
02. Juni 2008
3
Max Cut
Min Cut
Fast Min Cut
Ein randomisierter Max-Cut-Algorithmus
Algorithmus 11.1
1.
2.
3.
4.
V1 := V2 := ∅
Für v ∈ V
Mit W’keit 1/2 setze V1 := V1 ∪ {v}
sonst setze V2 := V2 ∪ {v}
Ausgabe V1 , V2
Theorem 11.2
Algorithmus 11.1 berechnet für einen ungewichteten Graphen
G = (V, E) in Zeit O(|V |) einen Schnitt, der im Erwartungswert
|E| /2 Kanten schneidet und erwartete Güte ≤ 2 hat.
Ingo Wegener
02. Juni 2008
4
Max Cut
Min Cut
Fast Min Cut
Zum Beweis von Theorem 11.2
√
Beobachtung
Laufzeit O(|V |)
Beobachtung
erwartete Güte ≤ 2
folgt aus E (#geschnittene Kanten) = |E| /2
weil OPT ≤ |E|
E (#geschnittene Kanten) = E (w(V1 , V2 )) = |E| /2
noch offen
Definiere
√
Indikatorvariablen
Xe für e ∈ E
(
1 falls |e ∩ V1 | = |e ∩ V2 | = 1
mit Xe :=
0 sonst
Beobachtung
w(v1 , V2 ) =
P
Xe
e∈E
Ingo Wegener
02. Juni 2008
5
Max Cut
Min Cut
Fast Min Cut
Analyse von Algorithmus 11.1
Wir haben
Indikatorvariablen
Xe für e ∈ E
(
1 falls |e ∩ V1 | = |e ∩ V2 | = 1
mit Xe :=
0 sonst
P
Xe
und damit w(V1 , V2 ) =
e∈E
E (w(V1 , V2 )) = E
=
X
X
Xe
e∈E
!
E (Xe )
e∈E
=
X
Prob (Xe = 1)
e∈E
= |E| · Prob (Xe = 1)
Ingo Wegener
= |E| · Prob (|e ∩ V1 | = |e ∩ V2 | = 1)
02. Juni 2008
6
Max Cut
Min Cut
Fast Min Cut
Erwartete Anzahl geschnittener Kanten
Wir haben
E (w(V1 , V2 ))
= |E| · Prob (|e ∩ V1 | = |e ∩ V2 | = 1)
= |E| · Prob (((u ∈ V1 ) ∧ (v ∈ V2 )) ∨ ((u ∈ V2 ) ∧ (v ∈ V1 )))
= |E| · (Prob ((u ∈ V1 ) ∧ (v ∈ V2 )) + Prob ((u ∈ V2 ) ∧ (v ∈ V1 )))
= |E| · (Prob (u ∈ V1 ) · Prob (v ∈ V2 ) + Prob (u ∈ V2 ) · Prob (v ∈ V1 ))
1 1
|E|
1 1 1 1
· + ·
+
= |E| ·
=
= |E| ·
2 2 2 2
4 4
2
Ingo Wegener
02. Juni 2008
7
Max Cut
Min Cut
Fast Min Cut
Min Cut
bei Min Cut
Voraussetzung
im Unterschied zu Max Cut
Minimierung von w(V1 , V2 )
V1 6= ∅ und V2 6= ∅
G zusammenhängend
sonst Lösung mit w(V1 , V2 ) = 0 optimal
und in Linearzeit deterministisch berechenbar
Erinnerung Berechnung minimaler Q-S-Schnitt ∈ P
|V |
mögliche Wahlen für Q, S
klar
2
also
Min Cut ∈ PO
hier und jetzt
Ingo Wegener
einfache randomisierte Algorithmen
mit W’keit sehr dicht an 1 minimaler Schnitt
sehr schnell
02. Juni 2008
8
Max Cut
Min Cut
Fast Min Cut
Zentrale Methode Kontraktion(u, v) mit u 6= v ∈ V
Kontraktion(u, v)
1. V := (V \ {u, v}) ∪· {z}; E := E \ {{u, v}}
2. Für alle x ∈ V mit {{u, x}, {v, x}} ∩ E 6= ∅
3.
If |{{u, x}, {v, x}} ∩ E| = 2 Then
E := (E \ {{u, x}, {v, x}}) ∪· {{x, z}}
w({x, z}) := w({u, x}) + w({v, x})
4.
If {u, x} ∈ E Then
E := (E \ {{u, x}}) ∪· {{x, z}}; w({x, z}) := w({u, x})
5.
If {v, x} ∈ E Then
E := (E \ {{v, x}}) ∪· {{x, z}}; w({x, z}) := w({v, x})
Kontraktion(b, c)
4
4
a
a
d
d
3
b
6
2
5
9
c
z
5
02. Juni 2008
9
Max Cut
Min Cut
Fast Min Cut
Min Cut durch Kontraktion
Idee
1.
2.
3.
4.
5.
Repeat
Wähle u 6= v ∈ V geeignet.
Kontraktion(u, v)
Until |V | = 2
Gib den durch die beiden Knoten definierten Schnitt aus.
klar
Implementierung von geeignet“ entscheidend
”
Ziel
keine Kante zwischen min. Schnitt V1 , V2 kontrahieren
Heuristik
klar
Ingo Wegener
Kanten mit großem Gewicht kontrahieren
groß“ ist kontextabhängig
”
02. Juni 2008
10
Max Cut
Min Cut
Fast Min Cut
Ein einfacher Min-Cut-Algorithmus
Algorithmus 11.3 (Randomisierte Kontraktion)
1.
2.
3.
4.
5.
Repeat
P
w(e′ ).
Wähle e = {u, v} mit W’keit w(e)/
e′ ∈E
Kontraktion(u, v)
Until |V | = 2
Gib den durch die beiden Knoten definierten Schnitt aus.
Lemma 11.4
Algorithmus 11.3 hat Laufzeit O |V |2 auf einem Graphen
G = (V, E) .
Ingo Wegener
02. Juni 2008
11
Max Cut
Min Cut
Fast Min Cut
Laufzeit des Algorithmus Randomisierte Kontraktion
Beobachtung
• initial zusammenhängend
• also Wahl von e = {u, v} möglich
• Zusammenhang bleibt bei Kontraktion erhalten
• also Wahl von e = {u, v} immer möglich
• also korrekt
√
Beobachtung
• initial Summe der Kantengewichte in Zeit O(|E|) = O |V |2
• |V | − 2 Aufrufe von Kontraktion
• je Aufruf Zeit O(|V |), da nur Nachbarn zu durchlaufen sind
• also Gesamtzeit O |V |2
Ingo Wegener
02. Juni 2008
12
Max Cut
Min Cut
Fast Min Cut
Min Cut: Struktureinsichten
Notation
w(E ′ ) =
P
w(e)
e∈E ′
minCut(G) = min{w(V1 , V2 ) | V1 , V2 Schnitt für G}
Lemma 11.5
Für alle zusammenhängenden, gewichteten, ungerichteten Graphen
G = (V, E) gelten die folgenden Aussagen.
1
Ein Schnitt V1 , V2 ist genau dann Ausgabe von
Algorithmus 11.3, wenn nie eine Kante zwischen V1 und V2
kontrahiert wurde.
2
w(E) ≥ minCut(G) · |V | /2
3
Ingo Wegener
∀e = {u, v} ∈ E : minCut(G) ≤ minCut(Kontraktion(u, v))
02. Juni 2008
13
Max Cut
Min Cut
Fast Min Cut
Beweis von Lemma 11.5 – Teil 1
zu zeigen
Schnitt V1 , V2 ist Ausgabe von Algorithmus 11.3
⇔ keine Kante zwischen V1 und V2 wird kontrahiert
Betrachte
V1 , V2 mit V1 ∪· V2 = V
Beobachtung
Kante zwischen V1 und V2 kontrahiert
⇒ u ∈ V1 und v ∈ V2 werden verschmolzen
⇒ V1 , V2 nicht Ausgabe von Algorithmus 11.3
Beobachtung
keine Kante zwischen V1 und V2 kontrahiert
⇒ V1 und V2 am Ende getrennt
⇒ Ausgabe V1 , V2
√
Ingo Wegener
02. Juni 2008
14
Max Cut
Min Cut
Fast Min Cut
Beweis von Lemma 11.5 – Teil 2
zu zeigen
w(E) ≥ minCut(G) · |V | /2
Definiere
für dw (v) :=
P
e={v,·}∈E
Beobachtung
w(e) für v ∈ V
min{dw (v) | v ∈ V } ≥ minCut(G)
denn falls ∃v ∈ V : dw (v) < minCut(G)
dann w(V1 , V2 ) < minCut(G) mit V1 := {v}, V2 := V \ V1
Beobachtung
P
dw (v) = 2w(E)
v∈V
also
Ingo Wegener
w(E) =
1
2
P
v∈V
dw (v) ≥
1
2
· |V | · minCut(G)
√
02. Juni 2008
15
Max Cut
Min Cut
Fast Min Cut
Beweis von Lemma 11.5 – Teil 3
zu zeigen
∀e = {u, v} ∈ E : minCut(G) ≤ minCut(Kontraktion(u, v))
Beobachtung
also
Optimum kann höchstens schlechter werden
entspricht
Ingo Wegener
durch Kontraktion können Schnitt verloren gehen
aber keine hinzukommen
minCut(G) ≤ minCut(Kontraktion(u, v))
02. Juni 2008
16
Max Cut
Min Cut
Fast Min Cut
Über Randomisierte Kontraktion“
”
Theorem 11.6
Für einen zusammenhängenden, gewichteten ungerichteten
Graphen G = (V, E) sei V1 , V2 ein minimaler
Schnitt.
2
Algorithmus 11.3 berechnet in Zeit O |V | mit
Wahrscheinlichkeit mindestens 2/ |V |2 den Schnitt V1 , V2 .
Beweis.
schon gesehen
Definiere
Betrachte
Ingo Wegener
√
Laufzeit (Lemma 11.4)
Gi+1 = (Vi+1 , Ei+1 ) Ergebnis von i-ter Kontraktion
Folge G = G1 , G2 , G3 , . . . , G|V |−1
mit ni := |Vi | = |V | − i + 1 (n := |V | = n1 )
02. Juni 2008
17
Max Cut
Min Cut
Fast Min Cut
Über die Kontraktion passender Kanten
Notation
E ′ = {{u, v} | u ∈ V1 , v ∈ V2 }
Definiere
Ereignis Ai : in den ersten i − 1 Kontraktionen
keine Kante aus E ′ betroffen
damit
Prob (Algorithmus 11.3 berechnen V1 , V2 )
=
n−2
Y
i=1
Prob i-te Kontraktion betrifft keine Kante aus E ′ | Ai
Beobachtung
Ai ⇒ minCut(G) = minCut(Gi )
Beobachtung
minCut(G) = minCut(Gi )
⇒ w(Ei ) ≥ minCut(G) · |Vi | /2
(Lemma 11.5)
Ingo Wegener
02. Juni 2008
18
Max Cut
Min Cut
Fast Min Cut
Kontraktion von Kanten aus E ′
Wir brauchen
Prob (i-te Kontraktion betrifft keine Kante aus E ′ | Ai )
Beobachtung
Gegenwahrscheinlichkeit leichter zu berechnen
Prob i-Kontraktion betrifft Kante aus E ′ | Ai
X
=
Prob (i-te Kontraktion betrifft e | Ai )
e∈E ′
=
X w(e)
w(E ′ )
minCut(G)
=
=
w(Ei )
w(Ei )
w(Ei )
′
e∈E
≤
Ingo Wegener
minCut(G)
2
2
=
=
minCut(G) · |Vi | /2
|V | − i + 1
n−i+1
02. Juni 2008
19
Max Cut
Min Cut
Fast Min Cut
Beweis von Theorem 11.6
Wir haben
Prob (Algorithmus 11.3 berechnen V1 , V2 )
n−2
Q
=
Prob (i-te Kontr. betrifft nicht E ′ | Ai )
i=1
und Prob (i-Kontraktion betrifft E ′ | Ai ) =
2
n−i+1
also
Prob (Algorithmus 11.3 berechnen V1 , V2 )
n−2
Y
Prob i-te Kontraktion betrifft keine Kante aus E ′ | Ai
=
=
i=1
n−2
Y
i=1
=
n
Y
i−2
i=3
Ingo Wegener
2
1−
n−i+1
i
=
=
n−2
Y
i=1
n−i−1
n−i+1
(n − 2)!
2
2
=
≥ 2
(n!)/2
n(n − 1)
n
02. Juni 2008
20
Max Cut
Min Cut
Fast Min Cut
Algorithmus Randomisierte Kontraktion“ im Rückblick
”
Wir haben
1,0
Laufzeit O |V |2 (prima)
und Erfolgswahrscheinlichkeit ≥ 2/n2 (Mist!)
0,8
0,6
0,4
0,2
Also Randomisierte Kontraktion nutzlos?
Erinnerung
Ingo Wegener
Probability Amplification
02. Juni 2008
21
Max Cut
Min Cut
Fast Min Cut
Probability Amplification
Lemma 11.7
Gibt man für einen Graphen G = (V, E) einen Schnitt mit
kleinstem Wert unter r Ausgaben von unabhängigen
Wiederholungen von Algorithmus 11.3 aus, so ist der ausgegebene
Schnitt
mindestens
r
mit Wahrscheinlichkeit
2
−(2r)/|V
|2 minimal.
1 − 1 − 2/ |V |
≥1−e
Beweis.
Theorem 11.6
(n = |V |)
also
also
also
Ingo Wegener
je Durchlauf Prob (min. Schnitt) ≥ 2/n2
je Durchlauf Prob (kein min. Schnitt) ≤ 1 − 2/n2
Prob (in r Durchläufen nie min. Schnitt) ≤ 1 − 2/n2
r
Prob (min. Schnitt in r Durchläufen) ≥ 1 − 1 − 2/n2
r
02. Juni 2008
22
Max Cut
Min Cut
Fast Min Cut
Beweis von Lemma 11.7
Wir haben
r
Prob (min. Schnitt in r Durchläufen) ≥ 1 − 1 − 2/n2
4
3
2
1
−1
1 − 2/n2 ≤ e−2/n
Ingo Wegener
1
2
⇔
1 − 2/n2
r
≤ e−2r/n
2
02. Juni 2008
23
Max Cut
Min Cut
Fast Min Cut
Nützliche Randomisierte Kontraktion
Korollar 11.8
Durch unabhängige Wiederholungen von Algorithmus 11.3 findet
man für einen Graphen G = (V, E) mit |V | = n und jede
Konstante c > 0 in Zeit O(n4 log n) einen minimalen Schnitt mit
Wahrscheinlichkeit mindestens 1 − 1/n2c .
Beweis.
klar mit Lemma 11.7
Wähle r := cn2 ln n
damit
außerdem
Beobachtung
Beobachtung
Ingo Wegener
2
ln n)/n2
= 1 − 1/n2c
Gesamtlaufzeit O n2 · cn2 ln n = O n4 log n
Erfolgsw’keit ≥ 1 − e−(2cn
schon mit c = 1/2 Erfolgsw’keit völlig ausreichend
Laufzeit O n4 log n nicht überzeugend
02. Juni 2008
24
Max Cut
Min Cut
Fast Min Cut
Laufzeit n4 log n im Rückblick
Wieso brauchen wir so lange?
Zwei Faktoren
1 Laufzeit Θ(n2 ) für Randomisierte Kontraktion
2 Θ(n2 log n) Wiederholungen
Beobachtung
Θ(n2 ) für Schnitt im Graphen prima
Wie können wir die Anzahl der Wiederholungen senken?
Wie können wir die Erfolgsw’keit je Durchgang verbessern?
Lemma 11.9
Bricht man Algorithmus 11.3 auf einem Graphen G = (V, E) mit
|V | = n ab, wenn |V | = t gilt (mit t ∈ {2, 3, . . . , n}), so ist mit
Wahrscheinlichkeit mindestens t · (t − 1)/(n · (n − 1)) noch keine
Kante eines festen minimalen Schnitts V1 , V2 kontrahiert.
Ingo Wegener
02. Juni 2008
25
Max Cut
Min Cut
Fast Min Cut
Beweis von Lemma 11.9
Beweis.
analog zum Beweis von Theorem 11.6
Prob (Schnitt V1 , V2 noch möglich)
n−t
Y n−i−1
2
1−
≥
=
n−i+1
n−i+1
n−t
Y
i=1
=
1,0
0,8
0,6
0,4
0,2
=
i=1
(n − 2) · (n − 3) · · · (t + 1) · t · (t − 1)
n · (n − 1) · (n − 2) · (n − 3) · · · (t + 2) · (t + 1)
t · (t − 1)
n · (n − 1)
02. Juni 2008
26
Max Cut
Min Cut
Fast Min Cut
Struktureinsicht und Verbesserungsidee
Beobachtung
• anfangs Wahl einfach, Prob (wähle günstig) groß
• am Ende Wahl schwierig, Prob (wälhe günstig) klein
Ideen
• reduziere Knotenanzahl rekursiv um konstanten Faktor
• berechne auf jeder Rekursionsebene zwei Schnitte
•
Anzahl Versuche wächst exponentiell mit Rekursionstiefe
• löse sehr kleine Schnittprobleme optimal
Dauern exponentiell viele Versuche nicht zu lange?
Vergrößert das die Erfolgswahrscheinlichkeit signifikant?
Ingo Wegener
02. Juni 2008
27
Max Cut
Min Cut
Fast Min Cut
Algorithmus Fast Cut
Algorithmus 11.10
Eingabe zusammenhängender gewichteter Graph G = (V, E)
Ausgabe Schnitt V1 , V2
1. If |V | ≤ 6 Then
Berechne minimalen Schnitt V1 , V2 .
Ausgabe V1 , V2
2. Else
m
l
|V |
√
2
3.
t := 1 +
4.
H := RandomisierteKontraktion(G)
bis t Knoten übrig sind.
H ′ := RandomisierteKontraktion(G)
bis t Knoten übrig sind.
(V1 , V2 ) := FastCut(H)
(V1′ , V2′ ) := FastCut(H ′ )
Vergleiche (V1 , V2 ) und (V1′ , V2′ ), gib kleineren Schritt aus.
5.
6.
7.
8.
28
Max Cut
Min Cut
Fast Min Cut
Über die Wahl des Rekursionsendes
Wieso Ende der Rekursion gerade bei |V | ≤ 6?
12
10
8
6
4
2
29
Max Cut
Min Cut
Fast Min Cut
Laufzeit von Fast Cut
Lemma 11.11
Algorithmus 11.10 hat
auf einem Graphen G = (V, E) mit |V | = n
Laufzeit O n2 log n .
Beweis.
Definiere
Erinnerung
also
T (n) = Laufzeit von Algo. 11.10 auf G mit n Knoten
Laufzeit von Algo 11.3 (Zeilen 4, 5) O n2
Notationsvereinfachung ≤ n2 /2
T (n) = 2 · T
l
1+
√n
2
m
+ n2 für n > 6
T (n) = O(1) für n ≤ 6
Notationsvereinfachung
Ingo Wegener
T (n) = 1 für n ≤ 6
02. Juni 2008
30
Max Cut
Min Cut
Fast Min Cut
Analyse der Rekursion
Betrachte
damit
auftretende Knotenanzahlen
l
m
l
n0
n0 := n, n1 := 1 + √
,
n
:=
1+
2
2
m
l
r−1
mit nr ≤ 6
nr := 1 + n√
2
m
, ...,
2
T (n) = T (n0 ) = 2T
(n12) + n0
2
= 2 2T (n2 ) + n1 + n0 = 4T (n2 ) + 2n21 + n20
= 8T (n3 ) + 4n22 + 2n21 + n20
r−1
r−1
P i 2
P i 2
= 2r T (nr ) +
2 ni = 2r +
2 ni
i=0
Wie entwickelt sich 2i n2i ?
Beobachtung
also
n1
√
2
l
i=0
2i+1 /2i = 2
klar
n
m2
1+ √i
n2i+1
2
=
2
2
ni
n
i
√
= 12 + ni2 + n12
i
≥
>
”2
“
n
1+ √i
2
n2i
=
√
(n2i /2)+ 2ni +1
n2i
1
2
2i+1 n2i+1 / 2i n2i > 2 · (1/2) = 1
02. Juni 2008
31
Max Cut
Min Cut
Fast Min Cut
Laufzeitanalyse von Fast Cut
Wir haben
T (n) = 2r +
r−1
P
2i n2i
i=0 l
n0 := n, ni+1 := 1 +
2i+1 n2i
2i n2i
>1
also
2i n2i maximal für i = r
also
T (n) = 2r +
r−1
P
i=0
ni
√
2
m
2i n2i
≤ 2r + r · 2r n2r ≤ 2r + r · 2r · 36 = O(r · 2r )
noch offen
Plan
Ingo Wegener
Rekursionstiefe r
Rekursionstiefe anhand von ni bestimmen
02. Juni 2008
32
Max Cut
Min Cut
Fast Min Cut
Eine Abschätzung für ni
m
l
ni
n0 := n, ni+1 := 1 + √
2
√
Notation q := 1/ 2
Behauptung n · q i + 2/(1 − q) ≥ ni
Beweis mit vollständiger Induktion über i
Induktionsanfang i = 0
Wir haben
Beobachtung n · q 0 +
Induktionsschritt
2
1−q
=n+
2
1−q
> n = n0
√
2
2
2
2
i
n·q
+
=q· n·q +
−
+
1−q
1 − q 1 − q q − q2
2
2
2
i
+
= q· n·q +
≥ q · ni +
1−q q
q
i+1
= 2 + ni · q ≥ ⌈1 + ni · q⌉ = ni+1
Ingo Wegener
√
02. Juni 2008
33
Max Cut
Min Cut
Fast Min Cut
Bestimmung der Rekursionstiefe
Wir haben
Wir suchen
⇔
⇔
⇔
⇔
also
n · qi +
n · qi
2
ni ≤ n · q i + 1−q
√
mit q = 1/ 2
kleinstes i mit ni < 7
2
1−q
<7
2
< 7 − 1−q
log(n) + i log(q) < log 7 −
< log 7 −
− 2i
2
1−q 2
1−q
− log n
2
> 2 log(n) + 2 log 7 − 1−q
i
r ≤ 2 log(n) + 6
T (n) = O(r · 2r )
T (n) = O n2 log n
Erinnerung
also
Ingo Wegener
02. Juni 2008
34
Max Cut
Min Cut
Fast Min Cut
Erfolgswahrscheinlichkeit von Fast Cut
Lemma 11.12
Algorithmus 11.10 berechnet auf einem Graphen G = (V, E) mit
|V | = n einen minimalen Schnitt mit Wahrscheinlichkeit
Ω(1/ log n).
Beweis.
klar für n ≤ 6 Erfolgsw’keit 1
Definiere Ereignisse
• A(s) in H keine Kante zwischen V1 , V2 kontrahiert (s ist
Knotenanzahl in G)
• A′ (s) in H ′ keine Kante zwischen V1 , V2 kontrahiert (s ist
Knotenanzahl in G)
• B(s) Fast Cut(H) liefert V1 , V2 unter der Annahme, dass
das möglich ist (s ist Knotenanzahl in H)
• B ′ (s) Fast Cut(H ′ ) liefert V1 , V2 unter der Annahme, dass
das möglich ist (s ist Knotenanzahl in H ′ )
02. Juni 2008
35
Max Cut
Min Cut
Fast Min Cut
Beweis von Lemma 11.12
Wir suchen
untere Schranke für
′
′
Prob (B(n))
m ((A(n) ∧ B(t)) ∨ (A (n) ∧ B (t)))
l = Prob
mit t = 1 +
n
√
2
Beobachtungen
• A(n) und A′ (n) unabhängig
• B(t) und B ′ (t) unabhängig
• A(n) und A′ (n) gleichartig
Prob (A(n)) = Prob (A′ (n))
′
• B(n) und B (n) gleichartig
Prob (B(n)) = Prob (B ′ (n))
• (A(n), B(n)) und (A′ (n), B ′ (n)) unabhängig
damit
Ingo Wegener
Prob (B(n)) = Prob ((A(n) ∧ B(t)) ∨ (A′ (n) ∧ B ′ (t)))
etwas vereinfachen
02. Juni 2008
36
Max Cut
Min Cut
Fast Min Cut
Analyse der Erfolgswahrscheinlichkeit von Fast Cut
Mit unseren Beobachtungen folgt
Prob (B(n)) = Prob (A(n) ∧ B(t)) ∨ A′ (n) ∧ B ′ (t)
= 1 − Prob A(n) ∧ B(t) ∧ A′ (n) ∧ B ′ (t)
2
= 1 − Prob A(n) ∧ B(t)
= 1 − (1 − Prob (A(n) ∧ B(t)))2
= 1 − (1 − Prob (A(n)) · Prob (B(t)))2
jetzt
Ingo Wegener
Prob (A(n)) und Prob (B(t)) getrennt abschätzen
02. Juni 2008
37
Max Cut
Min Cut
Fast Min Cut
Abschätzen der beiden Algorithmenteile
Wir haben Prob (B(n)) = 1 − (1 − Prob (A(n)) · Prob (B(t)))2
Erinnerung
damit
also
Prob (A(n)) ≥
aus Lemma 11.9
Prob (A(n)) ≥
1+ √n
2
m “l
m ”
· 1+ √n −1
2
n·(n−1)
1
2
für alle n
2
Prob (B(n)) ≥ 1 − 1 − Prob(B(t))
2
Erinnerung
Ingo Wegener
l
Knotenanzahlen n0 , n1 , . . . , nr
02. Juni 2008
38
Max Cut
Min Cut
Fast Min Cut
Noch eine Analyse einer Rekursion
Wir haben
Prob (B(n)) ≥ 1 − 1 −
Prob(B(t))
2
Definiere p(i) := Prob (B(nr−i ))
Beobachtung p(0) = Prob (B(nr )) = 1
2
= p(i) −
damit p(i + 1) ≥ 1 − 1 − p(i)
2
Betrachte
f (x) = x −
2
p(i)2
4
x2
4
0,8
0,6
streng monoton wachsend
in [0; 1]
0,4
0,2
1
2
3
4
39
Max Cut
Min Cut
Fast Min Cut
Analyse von p(i)
2
p(i + 1) ≥ p(i) − p(i)
4
p(0) = 1
f (x) = x − x2 /4 streng monoton wachsend in [0; 1]
Wir haben
p(i) ≥
Behauptung
⇒ p(i + 1) ≥
f streng monoton wachsend in [0; 1]
1
d
also
p(i) ≥
also
genügt zu zeigen
p(i) ≥ d1 ⇒ f (1/d) ≥
Ingo Wegener
1
d+1
p(i + 1) ≥ f (p(i))
Beobachtung
Erinnerng
1
d
⇒ p(i + 1) ≥ f (1/d)
1
d+1
02. Juni 2008
40
Max Cut
Min Cut
Fast Min Cut
Nachrechnen der Behauptung
Wir behaupten
p(i) ≥
1
d
⇒ p(i + 1) ≥
1
d+1
Es genügt zu zeigen p(i) ≥ d1 ⇒ f (1/d) ≥
1
f d1 ≥ d+1
1
1
1
⇔
d − 4d2 ≥ d+1
d+1
⇔ d + 1 − 4d ≥ d
⇔
1 ≥ d+1
4
⇔
d ≥ 13
1
⇔
d ≤ 3
Erinnerung p(i) ≥ 1/d vorausgesetzt
klar
p(i) ≤ 1 weil p(i) Wahrscheinlichkeit
also
1
d
Ingo Wegener
≤ 1, erst recht
1
d
1
d+1
√
≤3
02. Juni 2008
41
Max Cut
Min Cut
Fast Min Cut
Abschätzung von p(i)
Wir haben
p(0) = 1
p(i) ≥
1
i+1
also
p(i) ≥
also
p(i) = Ω(1/i)
durch Einsetzen
1
d
⇒ p(i + 1) ≥
(induktiv)
Prob (B(nr−r )) = Prob (B(n0 )) = Prob (B(n))
= p(r) = Ω 1r
Erinnerung
r = O(log n)
zusammen
Erfolgswahrscheinlichkeit Ω
Ingo Wegener
1
d+1
1
log n
02. Juni 2008
42
Max Cut
Min Cut
Fast Min Cut
Mit Probability Amplification
Theorem 11.13
Unabhängige Wiederholungen von Algorithmus 11.10 (Fast Cut)
finden für Graphen G = (V,
E) mit |V | = n und jede Konstante
c > 0 in Zeit O n2 log3 n einen minimalen Schnitt mit W’keit
mindestens 1 − 1/nc und für jede Konstante ε > 0 in Zeit
O n2 log2 n einen minimalen Schnitt mit W’keit mindestens 1 − ε.
Bew: Erinnerung für Fast Cut gilt ∃k1 : T ≤ k1 · n2 log n (Lemma 11.11)
∃k2 : Prob (Erfolg) ≥ k2 / ln n (Lemma 11.12)
Wähle Anzahl unabhängiger
Wiederholungen
2
w := (c/k2 ) ln n
√
Beobachtung Gesamtrechenzeit O n2 log3 n
√
w
≥ 1 − e−c ln n = 1 − n1c
Erfolgsw’keit ≥ 1 − 1 − lnkn
analog zweite Aussage mit w := ⌈(1/k2 ) ln(1/ε) ln n⌉
02. Juni 2008
43
Herunterladen