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