Randomisierte Algorithmen Wir brauchen diskrete Wahrscheinlichkeitsräume und nicht-negative Zufallsvariablen. Effiziente Algorithmen und Komplexitätstheorie Wahrscheinlichkeitsraum (Ω, F, Prob) mit Vorlesung Ingo Wegener I Menge Ω, I F ⊆ P(Ω), I Prob : F → [0; 1], so dass Vertretung Thomas Jansen I ∅, Ω ∈ F, I ∀A ∈ P(Ω) : A ∈ F ⇒ A ∈ F, S ∀(An ) ∈ F N : An ∈ F und I 08.05.2006 n∈N I Prob (Ω) = 1, I ∀(An ) ∈ F N paarw. disj. : Prob S n∈N An = P Prob (An ). n∈N 1 Elementare Eigenschaften und Begriffe I I I I I Unabhängigkeit Ereignisse A1 , . . . , Ak heißen unabhängig wenn ! l l Q T Aij = Prob Aij ∀1 ≤ i1 < i2 < · · · < il ≤ k : Prob Prob (∅) = 0 Prob A = 1 − Prob (A) Prob (A ∪ B) = Prob (A) + Prob (B) − Prob (A ∩ B) Zufallsvariable X : Ω → R P Erwartungswert E (X ) = x · Prob (X = x) j=1 I j=1 ZV 1} :nE (X ) = Prob (X = 1) Xn ∈ {0, P P E (Ai ) E Ai = i=1 ZV X ≥ 0, a ∈ R+ . Prob (X ≥ a) ≤ ! Aj = k Q j=1 Prob (Aj ) reicht nicht aus j=1 Beispiel: A1 = ∅ Vorsicht Unabhängigkeit 6= paarweise Unabhängigkeit Beispiel: Wurf von zwei Münzen I A1 := 1. Münze Kopf I A2 := 2. Münze Kopf I A3 := beide Münzen gleich Prob (A1 ) = 12 Prob (A2 ) = 12 Prob (A3 ) = 12 1 Prob (A1 ∩ A2 ) = 4 Prob (A1 ∩ A3 ) = 14 Prob (A2 ∩ A3 ) = 1 Prob (A1 ∩ A2 ∩ A3 ) = 4 i=1 Markov-Ungleichung k T Vorsicht Prob x I 2 E(X ) a Beweis. ( 1 falls X ≥ a klar X ≥ a · Y 0 sonst also E (X ) ≥ E (a · Y ) = a · E (Y ) = aProb (Y = 1) = aProb (X ≥ a) ) zusammen Prob (X ≥ a) ≤ E(X a Y := 3 1 4 4 Bedingte Ereignisse MinCut kennen wir schon von Flüssen her. . . Für Ereignis B mit Prob (B) > 0 ist für jedes Ereignis A Prob (A | B) := Prob(A∩B) Prob(B) die bedingte Wahrscheinlichkeit von A unter B. Problem MinCut Eingabe Elementare Eigenschaften Ausgabe Prob (A1 ∪ A2 | B) = Prob (A1 | B) + Prob (A2 | B) − Prob (A1 ∩ A2 | B) I I Prob (A ∩ B) = Prob (A | B) · Prob (B) I für unabhängige Ereignisse A, B: Prob (A | B) = Prob (A) I Normierung auf neuen W’keitsraum“ ” bedingter Erwartungswert E (A | B) I ungerichteter, gewichteter Graph G = (V , E , w ) mit w : E → N ˙ 2 = V , V1 6= ∅, V2 6= ∅ Partition V1 ∪V P mit mincut(G ) = w (e) minimal {u, v } ∈ E mit u ∈ V1 und v ∈ V2 Notation für E 0 ⊆ E ist w (E 0 ) = P w (e) e∈E 0 elementare Operation Kontraktion Idee Kontraktion verschmilzt zwei Knoten und erhält dabei Kanten so weit wie möglich 6 5 Kontraktion Algorithmus Kontraktion Kontraktion(u, v ) mit u 6= v ∈ V : I Verschmilz u und v zu neuem Knoten z. (Merken!) I Entferne Kante zwischen u und v (falls existent). I Betrachte alle Nachbarn x ∈ V von u und v : I I I 1. Fall: x Nachbar von u und v Entferne {x, u} und {x, v }. Füge {x, z} mit w ({x, z}) := w ({x, u}) + w ({x, v }) hinzu. 2. Fall: x Nachbar von u, aber nicht von v Entferne {x, u}. Füge {x, z} mit w ({x, z}) := w ({x, u} hinzu. 3. Fall: x Nachbar von v , aber nicht von u Entferne {x, v }. Füge {x, z} mit w ({x, z}) := w ({x, v } hinzu. Kontraktion(b, c) 4 a d 3 b Eingabe zusammenhängender, gewichteter Graph G = (V , E ) mit |V | > 2 ˙ 2=V Ausgabe Partition V1 ∪V 6 2 a 4 1. Wiederhole 2. Wähle Kante e = {u, v } ∈ E geeignet. 3. Kontraktion(u, v ) 4. Bis |V | = 2 5. Die beiden verbliebenen Metaknoten definieren die Partition. d klar 5 9 c z 5 7 I bei jeweils passender Wahl von e MinCut I Wunsch: einfach und effizient wählen 8 Algorithmus Randomisierte Kontraktion 1. Wiederhole 2. Wähle Kante e = {u, v } ∈ E mit W’keit Zur Analyse von Randomisierter Kontraktion Lemma 105 Pw (e) w (e ) . Für G = (V , E ) mit |V | = n gelten folgende Aussagen: ˙ 2 = V ist genau dann Resultat von Randomisierter 1. V1 ∪V Kontraktion, wenn nie eine Kante zwischen V1 und V2 kontrahiert wird. 0 e 0 ∈E 3. Kontraktion(u, v ) 4. Bis |V | = 2 5. Die beiden verbliebenen Metaknoten definieren die Partition. 2. mincut(G ) = W ⇒ w (E ) ≥ W · (n/2) 3. ∀e ∈ E : mincut(G ) ≤ mincut(Kontraktion(e)) Theorem 104 Algorithmus Randomisierte Kontraktion hat Laufzeit O(n2 ). Beweis. √ 1. trivial P 2. Annahme: ∃v : dw (v ) := w (e) < W Beweis. I I I I I P initiale Berechnung von w (e 0 ) in Zeit O(e) = O(n2 ). n − 2 Kontraktionen Zeit für eine Kontraktion: O(n) Auswahl einer Kante in Zeit O(n) Gesamtzeit O(n2 ) e={v ,·} V1 := {v }, V2 := V \ {v } hat Wert dw (v ) < W Widerspruch also ∀v ∈ V : dw (v ) ≥ W √ P P dw (v ) ≥ 12 · n · W w (E ) = w (e) = 12 · e∈E v ∈V 9 Beweis von Lemma 105 (Fortsetzung) Analyse von Randomisierter Kontraktion Lemma 105 Theorem 106 Für G = (V , E ) mit |V | = n gelten folgende Aussagen: ˙ 2 = V ist genau dann Resultat von Randomisierter 1. V1 ∪V Kontraktion, wenn nie eine Kante zwischen V1 und V2 kontrahiert wird. ˙ 2 = V ein minimaler Cut. Sei G = (V , E ) Graph mit |V | = n, V1 ∪V Prob (Randomisierte Kontraktion liefert V1 , V2 ) ≥ n22 Beweis. In jeder Runde wird genau eine Kante kontrahiert. Es gibt n − 2 Runden. Vor der i-ten Kontraktion gibt es ni := n − i + 1 Knoten im Graphen Gi . Der Algorithmus liefert V1 , V2 genau dann, wenn keine Kante zwischen V1 und V2 kontrahiert wird. Seien E 0 diese Kanten. Ei bezeichnet das Ereignis, dass in den ersten i − 1 Kontraktionen keine Kante aus E 0 kontrahiert wird. Beobachtung Ei ⇒ mincut(Gi ) = mincut(G ) 2. mincut(G ) = W ⇒ w (E ) ≥ W · (n/2) 3. ∀e ∈ E : mincut(G ) ≤ mincut(Kontraktion(e)) Beweis. √ 1. 10 √ 2. 3. Kontraktion(e) ist erster Schritt zu einem Cut. Wert jedes Cuts ist obere Schranke für mincut(G ) 11 12 Beweis von Theorem 106 (Fortsetzung) Beweis von Theorem 106 (Fortsetzung (2)) E0 Ei : in den ersten i Kontraktionen keine Kante aus kontrahiert Prob (Randomisierte Kontraktion liefert V1 , V2 ) = n−2 Q Prob (i-te Kontraktion kontrahiert keine Kante aus E 0 |Ei ) nur noch etwas rechnen. . . gesamt i=1 Ei ⇒ W (e) ≥ W · ni 2 Prob (Randomisierte Kontraktion liefert V1 , V2 ) n−2 n−2 n Y Y Y 2 2 i −2 ≥ 1− = 1− = ni n−i +1 i w (E 0 ) also Prob kontrahiere e ∈ E 0 in i-ter Kontraktion|Ei ≤ W · n2i W 2 gesamt = ni = W· 2 ni Prob (Randomisierte Kontraktion liefert V1 , V2 ) n−2 Y = Prob in i-ter Kontraktion keine Kante aus E 0 kontrahiert|Ei ≥ i=1 n−2 Y i=1 i=1 = i=1 i=3 (n − 2)! 2 2 = ≥ 2 (n!)/2 n(n − 1) n Korollar: Randomisierte Kontraktion findet mit W’keit ≥ 2 n2 einen optimalen Cut. 2 1− ni 14 13 Auf dem Weg zu einem akzeptablen Algorithmus Randomisierte Kontraktion unabhängig wiederholt Theorem 107 Erfolgswahrscheinlichkeit 2 n2 Wird Randomisierte Kontraktion N mal ausgeführt, wird mit N 2 Wahrscheinlichkeit mindestens 1 − 1 − n22 ≥ 1 − e −(2N)/n mindestens ein minimaler Cut ausgegeben. ist völlig inakzeptabel. Simple Idee zur Verbesserung unabhängige Wiederholungen Beweis. Prob (ein Durchlauf erzeugt keinen min. Cut) ≤ 1 − Wie groß ist die erwartete Anzahl von Wiederholungen von 2 Randomierter Kontraktion bis zum Erfolg? ≤ n2 2 n2 Prob (N Durchläufe erzeugen keinen min. Cut) ≤ 1 − Laufzeit O(n4 ) 2 N n2 Prob (N Durchläufe erzeugen ≥ 1 mal min. Cut) ≥ 1 − 1 − 2 N n2 nicht sehr überzeugend Wir betrachten das trotzdem etwas genauer. ∀x ∈ R : e x ≥ 1 + x 15 16 Theorem 107 angewendet Bessere Randomisierte Kontraktion Erfolgswahrscheinlichkeit n22 je Durchgang ist nicht so gut. . . Wo verlieren wir am meisten Erfolgswahrscheinlichkeit“? ” Korollar 108 Für jede Konstante c > 0 findet man durch wiederholte Randomisierte Kontraktion in Zeit O(n4 log n) mit Wahrscheinlichkeit ≥ 1 − 1/n2c einen min. Cut. Lemma 109 Bricht Randomisierte Kontraktion ab, wenn noch t Knoten übrig t·(t−1) keine Kante eines sind, so wird mit Wahrscheinlichkeit ≥ n·(n−1) minimalen Cuts kontrahiert. Beweis. Betrachte N := cn2 ln n unabhängige Wiederholungen von Randomisierter Kontraktion. Theorem 107: 2 2 Prob (findet min. Cut) ≥ 1 − e −2(cn ln n)/n = 1 − e −2c ln n = 1 − n12c Beweis. Laufzeit O(Nn2 ) = O(n4 log n) wie im Beweis von Theorem 107 Bemerkung Erfolgswahrscheinlichkeit ≥ 1 − 1 n2c Prob (Randomisierte Kontraktion liefert V1 , V2 ) n−t n−t Y Y 2 2 ≥ 1− = 1− ni n−i +1 völlig akzeptabel i=1 17 Beweis von Lemma 109 Algorithmus FastCut(G) Prob (Randomisierte Kontraktion liefert V1 , V2 ) n−t n−t Y Y 2 2 ≥ 1− = 1− ni n−i +1 = i=1 = 18 FastCut wie im Beweis von Theorem 107 i=1 n−t Y i=1 Eingabe zusammenhängender gewichteter Graph G ˙ 2=V Ausgabe Cut V1 ∪V 1. n := |V | 2. Falls n ≤ 6, dann 3. Berechne min. Cut C . 4. Ausgabe C . STOP 5. Sonst l m i=1 n−i −1 (n − 2) · (n − 3) · · · (t + 1) · t · (t − 1) = n−i +1 n · (n − 1) · (n − 2) · (n − 3) · · · (t + 1) t · (t − 1) n · (n − 1) also Erfolgswahrscheinlichkeit sinkt vor allem am Ende Idee Kontrahiere begrenzt randomisiert und mache am Ende etwas Schlaues. 19 √n 2 6. t := 1 + 7. 8. 9. 10. 11. H1 := Randomisierte Kontraktion(G ), bis t Knoten übrig sind H2 := Randomisierte Kontraktion(G ), bis t Knoten übrig sind C1 := FastCut(H1 ) C2 := FastCut(H2 ) Vergleiche C1 und C2 , gib kleineren Cut aus. 20 Zum Algorithmus FastCut Zur Laufzeit von FastCut Merkwürdiger Algorithmus. . . Lemma 110 Algorithmus FastCut hat eine Laufzeit von O(n2 log n). Wie findet man minimalen Cut für n ≤ 6? z. B. durch vollständiges Ausprobieren Beweis. Warum gerade Abbruch bei n ≤ 6? Laufzeit von FastCut: T (n) Laufzeit von Randomisierte Kontraktion: O(n2 ) Vereinfachung n2 /2 l m klar T (n) = 2 · T 1 + √n2 + n2 für n > 6 klar für n ≤ 6 T (n) = O(1) Vereinfachung 1 l m l Wir betrachten n0 := n, n1 := 1 + √n02 , . . . , ni := 1 + Ist die Laufzeit nicht sehr lang? ni−1 √ 2 m gesamt n0 , n1 , . . . , nr = 6 Ist die Erfolgswahrscheinlichkeit denn jetzt viel besser? 21 Beweis von Lemma 110 l √n 2 Beweis von Lemma 110 (Fortsetzung) m + n2 für n > 6, T (n) = 1 sonst l m n , nr = 6 n0 , . . . , nr mit n0 = n, ni = 1 + √i−1 2 T (n) = 2 · T 1+ T (n) = O (r · 2r ) l n0 , . . . , nr mit n0 = n, ni = 1 + also Behauptung q := T (n) = T (n0 ) = 2T (n1 ) + n02 = 4T (n2 ) + 2n12 + n02 = · · · r −1 X r = 2 T (6) + 2i ni2 2 ni+1 ni2 ≥ √1 , 2 ni ≤ 2 1−q ni−1 √ 2 m , nr = 6 + n · qi Beweis mit vollständiger Induktion √ 2 Induktionsanfang n0 ≤ 1−q +n·1 Induktionsschritt 2q +n·q i+1 = ni+1 = d1 + ni · qe ≤ 2+ni ·q ≤ 2+ 1−q i=0 Beobachtung 22 1 2 √ 2 i+1 1−q +n·q Wir suchen kleinstes i, so dass ni < 7. 2 Es genügt kleinstes i, so dass 1−q + n · q i < 7. 2 ≤ · · · ≤ 2r · nr2 = 36 · 2r also 2i · ni2 ≤ 2i+1 · ni+1 zusammen T (n) ≤ 2r · T (6) + r · (2r · 36) = O (r · 2r ) 23 24 Beweis von Lemma 110 (Fortsetzung (2)) T (n) = O (r · 2r ) l n0 , . . . , nr mit n0 = n, ni = 1 + q := √1 2 = 2−1/2 , ni ≤ 2 1−q Lemma 111 Algorithmus FastCut liefert mit Wahrscheinlichkeit Ω(1/ log n) einen minimalen Cut. m ni−1 √ , nr = 6 2 + n · qi Wir suchen kleinstes i, so dass 2 1−q Erfolgswahrscheinlichkeit von FastCut ⇔ + n · qi n · qi < < ⇔ log(n) + i · log(q) < ⇔ − 2i < ⇔ i > 2 1−q Beweis. + n · q i < 7. 7 2 7 − 1−q log 7 − log 7 − ˙ 2 = V ein minimaler Cut. Sei V1 ∪V FastCut liefert min. Cut jedenfalls, wenn in H1 = Randomisierte Kontraktion(G ) ist keine Kante aus V1 , V2 kontrahiert UND FastCut(H1 ) liefert min. Cut ODER in H2 = Randomisierte Kontraktion(G ) ist keine Kante aus V1 , V2 kontrahiert UND FastCut(H2 ) liefert min. Cut 2 1−q 2 1−q − log(n) 2 2 log(n) − 2 log 7 − 1−q also r ≤ 2 log(n) + 6 P(n) := Prob (FastCut liefert auf G mit n Knoten min. Cut) also T (n) = O (2 log(n) + 6) · 22 log(n)+6 = O n2 log n Prob (Hi enthält noch alle Kanten aus (V1 , V2 )) ≥ √ = √ d1+n/ 2e·(d1+n/ 2e−1) n·(n−1) ≥ t·(t−1) n·(n−1) 1 2 26 25 Beweis von Lemma 111 Beweis von Lemma 111 (Fortsetzung (2)) P(n) := Prob (FastCut liefert auf G mit n Knoten min. Cut) Prob (Hi enthält noch alle Kanten aus (V1 , V2 )) ≥ 12 Prob (FastCut(Hi ) liefert min. Cut für G ) ≥ 1 2 · P(t) Prob (FastCut(Hi ) liefert keinen min. Cut für G ) ≤ 1 − 1 2 · P(t) 2 Prob (FastCut(G ) liefert keinen min. Cut) ≤ 1 − 12 · P(t) 2 also Prob (FastCut(G ) liefert min. Cut) ≥ 1 − 1 − 12 · P(t) Wir haben P(n) ≥ 1 − 1 − 1 2 p(r + 1) ≥ p(r ) − p(0) = 1 Beobachtung f (x) = x − Wir wollen zeigen p(i) ≥ 2 · P(t) . Übergang zur Anzahl der Iterationen r : 2 p(r + 1) ≥ 1 − 1 − 12 · p(r ) = p(r ) − klar p(0) = 1 p(r )2 4 , p(r )2 4 27 x2 4 in [0; 1] 1 d ⇒ p(i + streng monoton wachsend 1) ≥ Wir haben p(i + 1) ≥ f (p(i)) und p(i) ≥ 1 f d1 ≥ d+1 1 1 1 ⇔ ≥ d+1 d − 4d 2 ⇔ d + 1 − d+1 ≥ d 4d ⇔ 1 ≥ d+1 4d ⇔ 3d ≥ 1 ⇔ d ≥ 31 1 d+1 1 d ⇒ f (p(i)) ≥ f (1/d). 28 Beweis von Lemma 111 (Fortsetzung (3)) Anwendung von FastCut Prob (FastCut(G ) liefert min. Cut) = P(n) ≥ 1 − 1 − bezogen auf Runden p(r + 1) ≥ p(r ) − 1 p(i) ≥ d1 ⇒ p(i + 1) ≥ d+1 also induktiv p(r ) ≥ 1 r +1 p(r ) = Ω p(r )2 4 1 r 1 2 Korollar 112 2 · P(t) Für jedes ε > 0, findet man durch unabhängige Wiederholung von Algorithmus FastCut in Zeit O(n2 log2 n) einen min. Cut mit W’keit 1 − ε. , p(0) = 1 und Beweis. Lemma 110 und Lemma 111: ∃c > 0: FastCut liefert in Zeit O(n2 log n) mit W’keit ≥ logc n min. Cut w Prob (w Wiederholungen liefern keinen min. Cut) ≤ 1 − logc n w −w · logc n 1 − logc n ≤e , also w ≥ − cln ε log n liefert Prob (w Wiederholungen liefern min. Cut) ≥ 1 − ε Wir wissen schon r = O(log n). also P(n) = Ω log1 n Wir finden also mit W’keit Ω(1/ log n) in Zeit O(n2 log n) einen min. Cut. 30 29 Ein Random Walk 0 1 2 Analyse des Random Walk 3 4 5 6 7 8 Uns interessiert Wie lange dauert es, bis der Prozess stoppt? 9 Definition Ei = erwartete Anzahl Schritte, bis Prozess stoppt, wenn in i gestartet Random Walk Aktuelle Position ist pos := i. 1. Falls pos = 0, STOP. 2. Falls pos = n, pos := n − 1. 3. Falls 0 < pos < n 4. Mit Wahrscheinlichkeit 1/2, pos := pos − 1 Sonst pos := pos + 1 5. Weiter bei 1. Theorem 113 Ei = i · (2n − i) Beweis. klar E0 = 0 First Step Analysis: Was passiert in einem Schritt und danach? En = 1 + En−1 , weil bei Start in n ein Schritt gemacht wird, der zu n − 1 führt und dann der Prozess wie in n − 1 gestartet ist für i ∈ {1, . . . , n − 1} Ei = 1 + 12 · Ei−1 + 12 · Ei+1 , weil bei Start in i ein Schritt gemacht wird, der mit W’keit jeweils 1/2 zu i − 1 oder i + 1 führt und dann der Prozess wie dort gestartet ist Begriffe I Zustand = pos I Zustand n reflektierend I Zustand 0 absorbierend 31 32 Beweis von Theorem 113 2SAT E0 = 0 Problem 2SAT En = 1 + En−1 1 1 Ei = 1 + Ei−1 + Ei+1 2 2 Eingabe Ausgabe Algorithmus 114 also 12 (Ei − Ei−1 ) = 12 (Ei+1 − Ei ) + 1 Definiere Di := Ei − Ei−1 und erhalte Dn = En − En−1 = 1 + En−1 − En−1 = 1 sowie Di = Di+1 + 2. also Dn = 1, Dn−1 = 3, Dn−2 = 5, . . . , D1 = 2n − 1 1. a := (0, . . . , 0) 2. Für t ∈ {1, . . . , T } 3. Falls a alle Klauseln erfüllt, Ausgabe a. STOP 4. Wähle eine Klausel cj , die nicht erfüllt ist. 5. Wähle zufällig gemäß Gleichverteilung ein Literal aus cj . 6. Invertiere die zugehörige Stelle in a. 7. Ausgabe Es gibt vermutlich keine erfüllende Belegung.“ ” D1 + D2 + · · · + Di = (E1 − E0 ) + (E2 − E1 ) + · · · + (Ei − Ei−1 ) = Ei − E0 = Ei i i P P also Ei = Dj = 2n − 2j + 1 = 2ni + i − 2 i(i+1) = i · (2n − i) 2 j=1 j=1 33 Analyse von Algorithmus 114 Theorem 115 Für eine erfüllbare 2SAT-Instanz findet Algorithmus 114 mit T = ∞ im Erwartungswert in ≤ n2 Schleifendurchläufen eine erfüllende Belegung. Beweis. Definition Für x, x 0 ∈ {0, 1}n heißt d(x, x 0 ) := |{i | xi 6= xi0 }| Hamming-Abstand von x und x 0 . Eingabe erfüllbar, sei a∗ eine erfüllende Belegung Algorithmus 114 stoppt spätestens, wenn d(a, a∗ ) = 0 gilt. Anfangs ist d(a, a∗ ) ≤ n. Beobachtung Prob (d(a, a∗ ) wird in einer Runde größer) ≤ also Prob (d(a, a∗ ) wird in einer Runde kleiner) ≥ 12 Worst Case W’keit jeweils 1/2 Theorem 113 reduzierte Klauseln c1 , · · · cm der Länge 2 über x1 , . . . , xn Belegung a ∈ {0, 1}n : a erfüllt alle cj 1 2 ≤ n2 Runden 35 34