• Keine Ergebnisse gefunden

Effiziente Algorithmen (SS2015) Kapitel 8 Randomisierte Algorithmen Walter Unger

N/A
N/A
Protected

Academic year: 2022

Aktie "Effiziente Algorithmen (SS2015) Kapitel 8 Randomisierte Algorithmen Walter Unger"

Copied!
45
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)Effiziente Algorithmen (SS2015) Kapitel 8 Randomisierte Algorithmen. Walter Unger Lehrstuhl für Informatik 1. 26.06.2015 16:13.

(2) Einl. 8. Minimaler Schnitt. Inhaltsverzeichnis. 3-SAT > Walter Unger 15.7.2015 11:19. <. Inhalt I 1. Einleitung Idee und Überblick. 2. Minimaler Schnitt Einleitung Einfacher Algorithmus Abschätzungen Verbesserter Algorithmus Abschätzungen. 3. 3-SAT Einleitung Algorithmus von Schöning Analyse. 4. Vergleich Einleitung Umformungen. Z. Vergleich SS2015. x.

(3) Einl. 8:1. Minimaler Schnitt Idee und Überblick. 3-SAT <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. Die Idee Kann eine zufällige Auswahl helfen? Können effiziente Algorithmen noch schneller gemacht werden? Kann bei schweren Problemen mit ausreichender Wahrscheinlichkeit ein gutes Ergebnis erreicht werden? Hier nun:. Bestimmen eines minimalen Schnitts (Cuts). Vergleich der Modelle. Der Algorithmus hat mit hoher Wahrscheinlichkeit eine “gute” Laufzeit. Der Algorithmus liefert mit hoher Wahrscheinlichkeit eine Lösung.. g.

(4) Einl. 8:2. Minimaler Schnitt. 3-SAT. Einleitung. <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. Definition Schnitt. i. n = ∣V ∣, m = ∣E ∣. Definition (Schnitt) Sei G = (V , E , c) gegeben. Sei c ∶ E ↦ N+ Kostenfunktion auf den Kanten. Ein U ⊂ V ist ein Schnitt (Cut) mit Wert: c(U) =. ∑. c({v , w }).. {v ,w }∈E ,v ∈U,w ∈/U. Schreibweise: CU = C = {{v , w } ∈ E , v ∈ U, w ∈/ U}. Definition: c(CU ) = ∑e∈CU c(e). Also c(U) = c(CU ) = ∑e∈CU c(e). Man kann c auch durch Multikanten darstellen. Gesucht wird der minimale Schnitt C ∗ mit: ∀U ⊂ V ∶ c(U) ≥ c(C ∗ )..

(5) Einl. 8:3. Minimaler Schnitt Einleitung. 3-SAT <. > Walter Unger 15.7.2015 11:19. Einfache Bestimmung des Minimalen Schnitts. Z. Vergleich SS2015. i. n = ∣V ∣, m = ∣E ∣. Der minimale Schnitt kann durch (n2) Aufrufe eines Flussalgorithmuses gelöst werden. n − 1 Aufrufe eines Flussalgorithmuses gelöst werden. In Zeit O(n4 ) gelöst werden. Hier nun: Randomisierter Algorithmus mit besserer Laufzeit..

(6) Einl. 8:4. Minimaler Schnitt Einleitung. Idee zum Minimalen Schnitt. 3-SAT <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. Da wir bei dieser Form des Schnitts keine Einschränkungen an die Größen der beiden Partitionen machen, brauchen wir uns beim Bestimmen des Schnitts nur um die Kanten kümmern. Wir suchen nun die Kanten, die nicht im Schnitt sind. Da der Schnitt minimal sein soll, können wir hoffen, das die meisten Kanten nicht im Schnitt sind. Also wählen wir einfach mit Warscheinlichkeit nach den Gewichten gewichtet eine Kante aus, und verschmelzen die zugehörigen Knoten. Das wiederholen wir, bis nur eine Kante, also zwei Partitionen, übrig bleiben. Zur Verbesserungen der Erfolgswahrscheinlichkeit wiederholen wir das Verfahren mehrfach. Bei einer ausreichend hohen Erfolgswahrscheinlichkeit ist die Laufzeit aber nicht vorteilhaft im Vergleich zu einem deterministischen Verfahren. Daher werden wir im Folgenden das Verfahren beschleunigen.. i.

(7) Einl. 8:5. Minimaler Schnitt Einleitung. 3-SAT <. Z. Vergleich. > Walter Unger 15.7.2015 11:19. SS2015. Idee. i. n = ∣V ∣, m = ∣E ∣. Sei U ⊂ V minimaler Schnitt. Damit haben wir: “Wenig” Kanten in CU . “Viele” Kanten innerhalb U. “Viele” Kanten innerhalb V ∖ U.. V ∖U. Damit ist eine zufällig gewählte Kante mit hoher Wahrscheinlichkeit nicht im Schnitt. Damit sind die inzidenten Knoten einer zufällig gewählten Kante mit hoher Wahrscheinlichkeit beide in U oder beide in V ∖ U. Vorgehen: Wähle zufällig eine Kante und verschmelze diese zu einem Knoten.. CU. U.

(8) Einl. 8:6. Minimaler Schnitt. 3-SAT. Einleitung. > Walter Unger 15.7.2015 11:19. <. Z. Vergleich SS2015. Kontraktion einer Kante. i. n = ∣V ∣, m = ∣E ∣. Gegeben sei: G = (V , E , c) und c ∶ E ↦ N+ . Bei der Kontraktion einer Kante {v , w } wird G wie folgt verändert: V ′ = V ∖ {w } E ′ = E ∪ {{x , v } ∣ {x , w } ∈ E ∧ x =/ v } ∖ {e ∈ E ∣ e = {x , w }} Die Kostenfunktion wird wie folgt angepasst: ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ c (e) = ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ ′. c(e) c(e) c({x , w }) c(e) + c({x , w }). falls falls falls falls. v , w ∈/ e e = {x , v } ∧ {x , w } ∈/ E e =/ {x , v } ∧ {x , w } ∈ E e = {x , v } ∧ {x , w } ∈ E. Eine Kantenkontraktion kann in Zeit O(n) ausgeführt werden. e. a. f. 3. 2. 6. Σ=0. 9. d. b. c.

(9) Einl. 8:7. Minimaler Schnitt Einfacher Algorithmus. 3-SAT <. > Walter Unger 15.7.2015 11:19. Bestimme Minimalen Schnitt. Z. Vergleich SS2015. s. n = ∣V ∣, m = ∣E ∣. Algorithmus von Karger (1993) 1 2 3. 4 5. Setze S(v ) = {v } für alle v ∈ V . Setze H = G. Solange ∣V (H)∣ > 2 wähle {v , w } ∈ E (H). 1 Setze S(v ) = S(v ) ∪ S(w ). 2 Kontraktiere die Kante {v , w } in H. Wähle v ∈ V (H). Gebe Schnitt S(v ) (bzw. CS(v ) ) aus.. Laufzeit: O(n2 )..

(10) Einl. 8:8. Minimaler Schnitt. 3-SAT. Einfacher Algorithmus. > Walter Unger 15.7.2015 11:19. <. Z. Vergleich. Beispiel. SS2015. s. n = ∣V ∣, m = ∣E ∣ a5. a4. c4. a6. a3. a7. a2 a2. Σ=0. a8. a1. 4. c5. c3. c6. c2 c2. c7. c1. c8.

(11) Einl. 8:9. Minimaler Schnitt Abschätzungen. 3-SAT > Walter Unger 15.7.2015 11:19. <. Z. Vergleich SS2015. Erfolgswahrscheinlichkeit eines Schnitts. s. n = ∣V ∣, m = ∣E ∣. Lemma Pr[C ist ein minimaler Schnitt von G] ≥ (n2) . −1. Beweis: Sei ei die i-te Kante, die kontrahiert wird (1 ≤ i ≤ n − 2). Sei H0 = G und Hi der Graph nach der i-ten Kontraktion. Sei K ein beliebiger minimaler Schnitt von G. Dann gilt: Pr[C ist min. Cut von G]. ≥ = = ≥ = = =. Pr[C = K ] Pr[∩1≤i≤n−2 ei ∈/ K ] ∏1≤i≤n−2 Pr[ei ∈/ K ∣ ∩1≤j<i ej ∈/ K ]. 2 ) (nächste Folie) ∏1≤i≤n−2 (1 − n−i+1 n−i−1 ∏1≤i≤n−2 n−i+1 n−2 n−3 n−4 ⋅ n−1 ⋅ n−2 ⋅ . . . ⋅ 35 ⋅ 24 ⋅ 13 n −1 2 = (n2) . n⋅(n−1).

(12) Einl. 8:10. Minimaler Schnitt. 3-SAT. Abschätzungen. <. > Walter Unger 15.7.2015 11:19. Hilfsaussage. Z. Vergleich SS2015. s. n = ∣V ∣, m = ∣E ∣. Lemma Pr[ei ∈/ K ∣ ∩1≤j<i ej ∈/ K ] ≥ 1 −. 2 . n−i+1. Beweis: Beachte: jeder Schnitt in Hj ist auch ein Schnitt in G. Sei k = ∣K ∣, nj = ∣V (Hj )∣ und mj = ∣E (Hj )∣. Es gilt (Beachte: k ≤ δ(Hi−1 ) (min. Knotengrad)): ni−1 = n − i + 1. mi−1 ≥ k ⋅ ni−1 /2 Pr[ei ∈ K ] = mki−1 . Damit gilt: Pr[ei ∈ K ∣ ∩1≤j<i ej ∈/ K ] =. k 2 2 ≥ = . mi−1 ni−1 n − i + 1.

(13) Einl. 8:11. Minimaler Schnitt Abschätzungen. 3-SAT <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. Verbessern der Erfolgswahrscheinlichkeit. s. (1 − 1/x )x ≤ 1/e. (n2). Bei t ⋅ Durchläufen ist die Wahrscheinlichkeit den minimalen Schnitt nicht zu finden: n −1 t⋅( ) (1 − (n2) ) 2 ≤ (1/e)t Wir können also die Fehlerwahrscheinlichkeit beliebig klein machen. Dabei steigt aber die Laufzeit. Für konstante Fehlerwahrscheinlichkeit reichen (n2) Durchläufe. Damit ist die Gesamtlaufzeit O(n4 ). Ist konstante Fehlerwahrscheinlichkeit einmal erreicht, so sinkt diese durch weitere Schritte exponentiell in t..

(14) Einl. 8:12. Minimaler Schnitt Verbesserter Algorithmus. Idee zur Verbesserung. 3-SAT <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. Aus dem bisherigen Verfahren wissen wir, es sollten O(n2 ) Versuche zum Finden des Minimalen Schnitts gemacht werden. Da jeder dieser Versuche aber O(n2 ) Zeit benötigt, war unser Verfahren nicht besonder herausragend. An der Laufzeit für einen einzelnen unabhängigen Versuch können wir nicht viel ändern. Daher müssen wir irgendwie das Generieren der O(n2 ) Versuche verbessern. Bei den O(n2 ) Versuchen wurden jeweils im ersten Schritt O(n2 ) unabhängige Kanten ausgewählt. Das ist eigentlich nicht notwendig, da das in allen weiteren Schritten auch geschieht. Es würde vermutlich reichen, in den ersten k Schritten jeweils nur zwei Kanten zu wählen. Also nur zwei Zufallsexperimente machen, und dieser erst später durch mehr Kantenauswahl zu vervielfältigen. Da √ wir O(n2 ) finale Zufallsexperimente brauchen, erscheint eine Wahl von k ∼ n/ 2 und ein rekursives Vorgehen sinnvoll.. i.

(15) Einl. 8:13. Minimaler Schnitt Verbesserter Algorithmus. 3-SAT <. > Walter Unger 15.7.2015 11:19. Idee zu FastCut Bisher wurden viele mögliche Lösungen unabhängig generiert.. Start der Suche auf Graph G. Man könnte die ersten Kontraktionen für mehrere Versuche gleich bestimmen. Bestimme zwei Startsequenzen und teile erst danach auf. Führe dies dann rekursiv fort.. Mögliche Lösungen eines Schnitts für G. Z. Vergleich SS2015. i.

(16) Einl. 8:14. Minimaler Schnitt Verbesserter Algorithmus. 3-SAT <. > Walter Unger 15.7.2015 11:19. SS2015. Fastcut Algorithmus von Karger und Stein (1993): 1 2 3 4 5 6 7. 8. Eingabe: G = (V , E , c) und c ∶ E ↦ N+ . Falls ∣V ∣ ≤ 6 bestimme optimalen Schnitt CU und gebe diesen aus. √ Setze t = ⌈1 + n/ 2⌉. Setze H = H ′ = G. Kontrahiere n − t viele Kanten in H. Kontrahiere n − t viele Kanten in H ′ . Bestimme rekursiv: 1 C = Fastcut(H). ′ ′ 2 C = Fastcut(H ). Gebe den kleineren Schnitt (C oder C ′ ) aus.. Z. Vergleich s.

(17) Einl. 8:15. Minimaler Schnitt Abschätzungen. 3-SAT <. > Walter Unger 15.7.2015 11:19. SS2015. Laufzeit Theorem Der Algorithmus “Fastcut” hat eine Laufzeit von O(n2 ⋅ log n). Beweis (vereinfacht): Es gilt folgende vereinfachte Rekursionsgleichung: √ T (n) = 2 ⋅ T (⌈1 + n/ 2⌉) + O(n2 ), falls n > 6 und T (n) = O(1) falls n ≤ 6. Die Rekursionstiefe ist D = O(log n), denn die Problemgröße nimmt um konstanten Faktor ab. Sei nl = ∣V (H)∣ auf Rekursionlevel l ≥ 0. Auf Rekursionstiefe l sind 2l viele Teilprobleme zu lösen. √ Jedes Teilproblem hat eine Größe von nl ≡ n/( 2)l . Zeitaufwand für ein Teilproblem: O(nl2 ) = O(n2 /2l ). Zeitaufwand innerhalb einer Rekursionstiefe: 2l ⋅ O(n2 /2l ) = O(n2 ). Gesamtzeitaufwand: O(n2 ⋅ log n).. Z. Vergleich i.

(18) Einl. 8:16. Minimaler Schnitt. 3-SAT. Abschätzungen. <. > Walter Unger 15.7.2015 11:19. Beweis Zeige per Induktion: l−1. nl ≤ n ⋅ 2−l/2 + 2 ⋅ ∑ 2−i/2 . i=0. Zeige danach: nl ≤ n ⋅ 2−l/2 + 6.83. Zum Rekursionsende gilt: nl ≤ 6. Löse n ⋅ 2−l/2 + 6.83 ≥ 7 nach l auf. Zeige dann: l ≤ 2 ⋅ log2 n + 5.12. Damit ist die Rekursionstiefe: D = 2 ⋅ log2 n + O(1). Zeige: 2l ⋅ O(nl2 ) = O(n2 ). Danach ist dann der Gesamtzeitaufwand: O(n2 ⋅ log n).. Z. Vergleich SS2015. i.

(19) Einl. 8:17. Minimaler Schnitt. 3-SAT. Abschätzungen. <. Z. Vergleich. > Walter Unger 15.7.2015 11:19. SS2015. Fehlerwahrscheinlichkeit Theorem Der Algorithmus “Fastcut” berechnet einen minimalen Schnitt mit Wahrscheinlichkeit Ω(1/ log n). Beweis (vereinfacht): Sei K ein minimaler Schnitt in G. Die Wahrscheinlichkeit, dass K eine Kontraktionsfolge der Länge n − t überlebt, ist mindestens: ∏1≤i≤n−t (1 −. 2 ) n−i+1. = = = = ≤. ∏1≤i≤n−t n−i−1 n−i+1 n−2 n−3 n−4 ⋅ n−1 ⋅ n−2 ⋅ . . . ⋅ n t⋅(t−1) n⋅(n−1) √ √ ⌈1+n/ 2⌉⋅⌈n/ 2⌉ n⋅(n−1) 1 . 2. t t+2. ⋅. t−1 t+1. Die Wahrscheinlichkeit, dass H (resp. H ′ ) den gleichen minimalen Schnitt wie G hat, ist mindestens 1/2.. i.

(20) Einl. 8:18. Minimaler Schnitt Abschätzungen. 3-SAT <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. Beweis Fastcut heißt erfolgreich, falls er einen minimalen Schnitt berechnet. Sei k die Größe des minimalen Schnitts von G. Fastcut(G) ist erfolgreich falls:. A: H hat min. Schnitt der Größe k und Fastcut(H) ist erfolgreich. B: H ′ hat min. Schnitt der Größe k und Fastcut(H ′ ) ist erfolgreich. Für G ′ sei P(G ′ ) die Wahrscheinlichkeit, dass Fastcut(G ′ ) erfolgreich. Damit ist die Wahrscheinlichkeit, dass (A) eintritt mindestens 1/2 ⋅ P(H). Damit ist die Wahrscheinlichkeit, dass (A) nicht eintritt höchstens 1 − 1/2 ⋅ P(H). Damit ist die Wahrscheinlichkeit, dass Fastcut(G) erfolgreich: P(G) ≥ 1 − (1 − P(H)/2) ⋅ (1 − P(H ′ )/2).. i.

(21) Einl. 8:19. Minimaler Schnitt. 3-SAT. Abschätzungen. <. > Walter Unger 15.7.2015 11:19. SS2015. Beweis Die Rekursionstiefe ist D = O(log n). Sei p(t) die Wahrscheinlichkeit, dass Fastcut auf Tiefe t erfolgreich ist. Dann gilt: p(t) ≥ 1 − (1 − p(t − 1)/2)2 falls t ≥ 1 und p(0) = 1. Falls p(t) ≥. 1 t+1. P(G) = p(D) ≥. gilt, so folgt: 1 D+1. = Ω( log1 n ).. Z. Vergleich i.

(22) Einl. 8:20. Minimaler Schnitt. 3-SAT. Abschätzungen. <. > Walter Unger 15.7.2015 11:19. Beweis Zeige nun p(t) ≥. 1 t+1. per Induktion: p(t). ≥ ≥ = = = = ≥. 1 − (1 − p(t − 1)/2)2 1 2 ) 1 − (1 − 2⋅t 1 1 − 2 d 4⋅d 4⋅d−1 4⋅d 2 (4⋅d−1)(d+1) 4⋅d 2 4⋅d 2 +4⋅d−d−1 4⋅d 2 1 d+1. ⋅ ⋅. 1 d+1 1 d+1. Z. Vergleich SS2015. i.

(23) Einl. 8:21. Minimaler Schnitt Abschätzungen. 3-SAT <. > Walter Unger 15.7.2015 11:19. Zusammenfassung. Z. Vergleich SS2015. Bisher: Laufzeit O(n2 ⋅ log n). Erfolgswahrscheinlichkeit: Ω(1/ log n). Nach O(log n) Wiederholungen ist die Erfolgswahrscheinlichkeit konstant. Damit: Laufzeit O(n2 ⋅ log2 n). Erfolgswahrscheinlichkeit: Ω(1).. i.

(24) Einl. 8:22. Minimaler Schnitt. 3-SAT. Einleitung. <. > Walter Unger 15.7.2015 11:19. SS2015. 3-SAT Definition Eine Boolesche Formel F ist in 3-KNF: F(x1 , x2 , ..., xn ). =. ⋀i=1 ci. (Klauseln). ci. =. (li1 ∨ li2 ∨ li3 ). (Literale). lij. =. {. m. ¬xk xl. oder } für ein l ∶ 1 ≤ l ≤ r. Z. Vergleich. ∀ 1≤i ≤m ∀ 1 ≤ i ≤ m und ∀ 1≤j ≤3. Eine Belegung ist eine Funktion W ∶ {x1 , x2 , ..., xn } ↦ {0, 1} = {false, true}. Theorem (3-SAT) Es ist NP-vollständig, festzustellen, ob es für F aus 3-KNF eine erfüllende Belegung gibt.. g.

(25) Einl. 8:23. Minimaler Schnitt Einleitung. Aufbau der Idee. 3-SAT <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. Eine Lösung für das SAT-Problem direkt zu raten, hat keine so große Erfolgswahrscheinlichkeit. Wenn es nur eine Lösung gibt, so ist die Erfolgswahrscheinlichkeit bei einem direkten Raten 1/2n . Aber wenn wir einen Lösungsvektor betrachten, der keine erfüllende Belegung der Formel ergibt, so ist die Wahrscheinlichkeit diesen Fehler zu reparieren, besser. Betrachten wir eine der Klauseln, die in obiger Belegung nicht erfüllt wird. Wenn es eine erfüllende Belegung gibt, so reicht es aus die Belegung genau einer der drei beteiligten Variablen zu ändern. Hier die richtige zu treffen, ist mit Wahrscheinlichkeit von mindestens 1/3 möglich. Daher versuchen wir das folgende Verfahren zu untersuchen. Wähle eine Belegung der Variablen. Solange wir keine erfüllende Belegung haben, versuchen wir eine nichterfüllte Klausel durch Wechsel einer Variablen zu erfüllen. Diesen Wechsel einer Variablen versuchen wir maximal 3n mal. √ Bei einem Fehlversuch starten wir nochmal von vorne, maximal ⌈20 ⋅ 3 ⋅ π ⋅ n ⋅ ( 43 )n ⌉ mal. Das diese Werte zu einem guten Ergebnis führen, werden wir im Folgenden sehen.. g.

(26) Einl. 8:24. Minimaler Schnitt Einleitung. Idee Durchsuche Lösungsraum wie folgt: Rate ein Lösung. Suche in der näheren Umgebung. Wiederhole die letzten beiden Schritte. Das Verfahren ist eine mehrfache lokale Suche mit randomisierten Startpunkt.. 3-SAT <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. g.

(27) Einl. 8:25. Minimaler Schnitt Algorithmus von Schöning. 3-SAT <. > Walter Unger 15.7.2015 11:19. Algorithmus von Schöning 1 2. Eingabe F(x1 , x2 , ..., xn ) Boolesche Formel aus 3-KNF. √ Wiederhole maximal ⌈20 ⋅ 3 ⋅ π ⋅ n ⋅ ( 34 )n ⌉ mal: 1. 2 3. 3. Erzeuge zufällig Belegung der Variablen: α = (α1 , α2 , . . . , αn ) ∈ {0, 1}n . Falls F durch α erfüllt ist, gebe α aus und terminiere. Wiederhole maximal 3 ⋅ n mal: 1 Wähle Klausel ci , die nicht durch α erfüllt wird. 2 Wähle Variable xj aus ci . 3 Setze α = (α1 , α2 , . . . , ᾱj , . . . , αn ). 4 Falls F durch α erfüllt ist, gebe α aus und terminiere.. Gebe aus: F ist nicht erfüllbar.. Z. Vergleich SS2015. i.

(28) Einl. 8:26. Minimaler Schnitt Algorithmus von Schöning. 3-SAT <. > Walter Unger 15.7.2015 11:19. Einfaches Beispiel √. F F F F F F F F F F F. = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc)(abc) = F. Z. Vergleich. ⌈20 ⋅. α = 010 α = 110 α = 100 α = 101 α = 111 α = 011 α = 001 α = 000 α = 100 α = 110. SS2015. i. 3 ⋅ π ⋅ n ⋅ ( 34 )n ⌉ und 3 ⋅ n.

(29) Einl. 8:27. Minimaler Schnitt Algorithmus von Schöning. 3-SAT <. > Walter Unger 15.7.2015 11:19. Einfaches erfüllbares Beispiel √. F F F F F F F F. = (abc)(abc)(abc)(abc)(abc)(abc)(abc) = (abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc) = F = (abc)(abc)(abc)(abc)(abc)(abc)(abc) = T. ⌈20 ⋅. α = 010 α = 110 α = 100 α = 101 α = 111 α = 011 α = 001. Z. Vergleich SS2015. i. 3 ⋅ π ⋅ n ⋅ ( 34 )n ⌉ und 3 ⋅ n.

(30) Einl. 8:28. Minimaler Schnitt Algorithmus von Schöning. 3-SAT <. > Walter Unger 15.7.2015 11:19. SS2015. Beispiel (1. Lokale Suche) √. F F F F F F F F F F F F F F F F F. = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F. Z. Vergleich. ⌈20 ⋅. i. 3 ⋅ π ⋅ n ⋅ ( 34 )n ⌉ und 3 ⋅ n. α = 01010 α = 11010 α = 10010 α = 10110 α = 11110 α = 11100 α = 01100 α = 00100 α = 00000 α = 01000 α = 11000 α = 11010 α = 10010 α = 10110 α = 00110 α = 10110.

(31) Einl. 8:29. Minimaler Schnitt Algorithmus von Schöning. 3-SAT <. > Walter Unger 15.7.2015 11:19. SS2015. Beispiel (2. Lokale Suche) √. F F F F F. = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = F = (abc)(abd)(abe)(bde)(ade)(cde)(abc)(abc)(bcd) = T. Z. Vergleich. ⌈20 ⋅. i. 3 ⋅ π ⋅ n ⋅ ( 34 )n ⌉ und 3 ⋅ n. α = 10101 α = 00101 α = 01101 α = 01001.

(32) Einl. 8:30. Minimaler Schnitt. 3-SAT. Algorithmus von Schöning. <. > Walter Unger 15.7.2015 11:19. SS2015. Laufzeit √ ⌈20 ⋅. Der Algorithmus von Schöning hat eine Laufzeit von O(m ⋅ n3/2 ⋅ (4/3)n ). Nur wenn F erfüllbar ist, kann der Algorithmus eine fehlerhafte Ausgabe abliefern.. Äußere Schleife: ⌈20 ⋅. √ 3 ⋅ π ⋅ n ⋅ ( 34 )n ⌉. Innere Schleife: 3 ⋅ n Test einer Belegung: ∣F ∣ = 3 ⋅ m. Zusammengefasst: = =. i. 3 ⋅ π ⋅ n ⋅ ( 34 )n ⌉ und 3 ⋅ n. Theorem. Beweis:. Z. Vergleich. √ O(3 ⋅ m√⋅ ⌈20 ⋅ 3 ⋅ π ⋅ n ⋅ ( 43 )n ⌉ ⋅ 3 ⋅ n) O(m ⋅ n ⋅ ( 43 )n ⋅ n) O(m ⋅ n3/2 ⋅ ( 34 )n ) = O(m ⋅ 1.334n ). Falls F nicht erfüllbar ist, so gibt der Algorithmus von Schöning das richtige Ergebnis aus..

(33) Einl. 8:31. Minimaler Schnitt. 3-SAT. Analyse. > Walter Unger 15.7.2015 11:19. <. SS2015. Fehlerwahrscheinlichkeit √ ⌈20 ⋅. Falls F erfüllbar ist, so ist die Fehlerwahrscheinlichkeit: 5 ⋅ 10−5 . Beweis: Sei F erfüllbar und α∗ eine erfüllende Belegung. Sei pl die Wahrscheinlichkeit, dass eine lokale Suche α∗ findet. Damit ist pl auch eine unteres Schranke zum Finden einer erfüllenden Belegung mit einer lokalen Suche.. pl ≥. 2⋅. √. 3 n ⋅( ) . 3⋅π⋅n 4 1. i. 3 ⋅ π ⋅ n ⋅ ( 34 )n ⌉ und 3 ⋅ n. Theorem. Wir werden im Folgenden zeigen:. Z. Vergleich.

(34) Einl. 8:32. Minimaler Schnitt Analyse. 3-SAT <. > Walter Unger 15.7.2015 11:19. SS2015. Beweis Zeige: pl ≥. Der Abstand zwischen zwei Belegungen α und β ist die Anzahl der unterschiedlichen Bits.. Class(6). D.h. dist(α, β) = #1 (α ⊕ β).. Class(5). Definiere: Class(4). Class(j) = {β ∈ {0, 1}n ∣ dist(α∗ , β) = j}. Damit sind alle Belegungen in n + 1 viele Klassen eingeteilt worden. Und es gilt für j ∈ {0, 1, . . . , n}: ∣Class(j)∣ = (nj). Die Wahrscheinlichkeit zufällig ein Element aus Class(j) zu wählen ist pj = (nj) ⋅ 2−n .. Z. Vergleich. Class(3) Class(2) Class(1) α∗. √1 2⋅ 3⋅π⋅n. i. ⋅ (3/4)n.

(35) Einl. 8:33. Minimaler Schnitt Analyse. 3-SAT <. > Walter Unger 15.7.2015 11:19. SS2015. Beweis Zeige: pl ≥. Z. Vergleich. √1 2⋅ 3⋅π⋅n. i. ⋅ (3/4)n , es gilt: pj = (nj) ⋅ 2−n. In der lokalen Suche wird eine unerfüllte Klausel C betrachtet. Alle Variablen in C erfüllen diese nicht. In α∗ erfüllt eine Variable die Klausel C . Also ist bei zufälliger Auswahl, die Wahrscheinlichkeit diese zu treffen, mindestens 1/3. Damit ist die Wahrscheinlichkeit von Class(j) nach Class(j − 1) zu kommen mindestens 1/3. Die Wahrscheinlichkeit von Class(j) nach Class(j + 1) zu kommen ist höchstens 2/3..

(36) Einl. 8:34. Minimaler Schnitt. 3-SAT. Analyse. <. > Walter Unger 15.7.2015 11:19. SS2015. Beweis Zeige: pl ≥. Z. Vergleich. √1 2⋅ 3⋅π⋅n. ⋅ (3/4)n , es gilt: pj = (nj) ⋅ 2−n. Sei nun qj,i die Wahrscheinlichkeit von Class(j) in j + 2 ⋅ i Schritten α∗ zu erreichen. j. α∗. i β. Dann gilt: )⋅ qj,i = (j+2⋅i i. i. j 1 j+i 2 i ⋅( ) ⋅( ) . j +2⋅i 3 3. j ) ⋅ j+2⋅i Beachte: (j+2⋅i ist die Anzahl der möglichen Sprünge in i ∗ Richtung α . D.h. die Anzahl der Zeichenketten der Länge j + 2 ⋅ i aus Zeichen +, −. Dabei steht “+” für einen Sprung in Richtung α∗ . Jeder Suffix muss mehr + als − beinhalten. Die Anzahl der Zeichen − ist i..

(37) Einl. 8:35. Minimaler Schnitt. 3-SAT. Analyse. <. > Walter Unger 15.7.2015 11:19. SS2015. Beweis Zeige: pl ≥. √1 2⋅ 3⋅π⋅n. Z. Vergleich. ⋅ (3/4)n , es gilt: pj = (nj) ⋅ 2−n und r ! ∼. √ 2πr (r /e)r. Die Wahrscheinlichkeit qj aus Class(j) das α∗ zu erreichen ist qj = ∑ji=0 qj,i . Beachte: In der inneren Schleife werden 3 ⋅ n viele Schritte gemacht. D.h. j ∈ {0, 1, ⋯, n} und i ≤ j. Damit gilt: qj. ≥ ≥ > ≥ ∼ = =. j+i i j+2⋅i j ) ⋅ j+2⋅i ⋅ ( 13 ) ⋅ ( 32 ) ] i j+i i 1 ) ⋅ ( 13 ) ⋅ ( 23 ) ] ⋅ j [(j+2⋅i 3 ∑i=0 i 2⋅j j 1 ⋅ (3⋅jj ) ⋅ ( 31 ) ⋅ ( 23 ) 3 2⋅j j 1 ⋅ (3j)! ⋅ ( 1 ) ⋅ ( 23 ) 3 (2j)!j!√ 3 j 2π3j(3j/e)3j 1 √ 1 2⋅j √ ⋅ 2π2j(2j/e) ⋅ ( 32 ) 2j 2πj(j/e)j ⋅ ( 3 ) 3 √ 3j 2⋅j j 1 ⋅ √3 ⋅ 3 ( 1 ) ⋅ ( 23 ) 3 2 πj 22j 3 j √1 ⋅ ( 12 ) 2⋅ 3πj. ∑i=0 [( j. i.

(38) Einl. 8:36. Minimaler Schnitt. 3-SAT. Analyse. > Walter Unger 15.7.2015 11:19. <. SS2015. Beweis Zeige: pl ≥. Es gilt: p ≥. n ∑j=0. 2⋅. √1 3⋅π⋅n. ⋅ (3/4)n , es gilt: pj = (nj) ⋅ 2−n und qj >. pj ⋅ qj damit erhalten wir: p. n. j √1 ⋅ ( 21 ) ] 3πj j n n ∑j=0 [( j ) ⋅ ( 21 ) ] n (1 + 12 ). ≥. n n ∑j=0 [( 12 ) ⋅ ( j ) ⋅. ≥ = =. √1 2⋅ 3πn √1 2⋅ 3πn √1 2⋅ 3πn. n. 2⋅. ⋅ ( 12 ) ⋅ n ⋅ ( 12 ) ⋅ n ⋅ ( 34 ) = p̃. Damit ist die Wahrscheinlichkeit keine erfüllende Belegung zu finden: (1 − p̃). Ein Fehler nach t lokalen Suchen ist dann: (1 − p̃)t ≤ e p̃t . Zusammengefasst gilt: (1 − p̃)⌈20⋅. √ 3⋅π⋅n⋅( 43 )n ⌉. ≤ e −10 ≤ 5 ⋅ 10−5 .. Z. Vergleich. 2⋅. √1 3πj. i. ⋅ ( 12 ). j.

(39) Einl. 8:37. Minimaler Schnitt Einleitung. 3-SAT <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. Definition Für einen Las-Vegas-Algorithmus A gilt: A bestimmt immer eine optimale Lösung. Die Laufzeit ist aber von den Zufallsvariablen abhängig. Beispiel: Seidel-Algorithmus. Für einen Monte-Carlo-Algorithmus B gilt: B liefert eine Lösung. Die Lösung ist aber nur mit einer gewissen Wahrscheinlichkeit optimal. Die Laufzeit muss nicht von den Zufallsvariablen abhängen.. i.

(40) Einl. 8:38. Minimaler Schnitt Umformungen. 3-SAT <. > Walter Unger 15.7.2015 11:19. Las-Vegas Ð→ Monte-Carlo Theorem Sei A ein Las-Vegas-Algorithmus mit erwarteter Laufzeit f (n) bei Eingabelänge n. Falls wir A nach α ⋅ f (n) Schritten abbrechen (0 < α < 1), so erhalten wir einen Monte-Carlo-Algorithmus B mit Fehlerwahrscheinlichkeit 1/α. Sei x Eingabe der Länge n. Sei T die Zufallsvariable, die die Laufzeit von A auf x beschreibt. Damit: E[T ] ≤ f (n). B macht einen Fehler bei vorzeitigem Abbruch. Damit gilt nach der Markov-Ungleichung: Pr[T ≥ α ⋅ f (n)] ≤ Pr[T ≥ α ⋅ E[T ]] ≤ 1/α.. Z. Vergleich SS2015. i.

(41) Einl. 8:39. Minimaler Schnitt. 3-SAT. Umformungen. <. Z. Vergleich. > Walter Unger 15.7.2015 11:19. SS2015. Monte-Carlo Ð→ Las-Vegas Theorem. Sei B ein Monte-Carlo-Algorithmus mit Laufzeit f (n) bei Eingabelänge n. Sei p(n) eine untere Schranke für die Wahrscheinlichkeit, dass A eine korrekte Antwort liefert. C sei eine Testroutine mit Laufzeit g(n), die die Korrektheit testet. Dann gibt es einen Las-Vegas-Algorithmus A mit erwarteter Laufzeit (f (n) + g(n))/p(n). A ruft B und C solange auf, bis C Korrektheit verifiziert. Laufzeit pro Iteration: f (n) + g(n). Wahrscheinlichkeit für k Runden ist: (1 − p(n))k−1 ⋅ p(n). Die erwartete Anzahl der Iterationen ist damit: ∞. ∑ k ⋅ (1 − p(n)) k=1. k−1. ⋅ p(n) = 1/p(n). ∞. Beachte: ∑ k ⋅ x k = x /(1 − x )2 . k=1. i.

(42) Einl. 8:40. Minimaler Schnitt Umformungen. 3-SAT <. > Walter Unger 15.7.2015 11:19. Zusammenfassung Ein effizienter Las-Vegas-Algorithmus kann in einen effizienten Monte-Carlo-Algorithmus transformiert werden. Um einen effizienten Monte-Carlo-Algorithmus in einen effizienten Las-Vegas-Algorithmus zu transformieren ist eine deterministischer Verifizierer notwendig. Las-Vegas-Algorithmen sind Monte-Carlo-Algorithmen überlegen.. Z. Vergleich SS2015. i.

(43) Einl. 8:41. Minimaler Schnitt Umformungen. 3-SAT <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. Literatur Mitzenmacher, Upfal: Probability and Computing, Cambridge University Press, 2005. Motwani, Raghavan: Randomized Algorithms, Cambridge University Press, 1995. Hromkovic: Design and Analysis of Randomized Algorithms: Introduction to Design Paradigms, Springer 2005. Hromkovic: Algorihtmics for Hard Problems: Introduction to Combinatorial Optimization, Randomization, Approximations, and Heuristics, 2nd Edition, Springer 2003 Kleinberg, Tardos: Algorithm Design, Addison Wesley, 2005. B. Korte, J. Vygen. Combinatorial Optimization: Theory and Algorithms, 2nd Edition, Springer, 2002. C. Papadimitriou und K. Steiglitz. Combinatorial Optimization: Algorithms and Complexity. Prentice Hall, 1982. A. Schrijver. Combinatorial Optimization: Polyhedra and Efficiency. Springer, 2003.. i.

(44) Einl. 8:42. Minimaler Schnitt Umformungen. 3-SAT <. > Walter Unger 15.7.2015 11:19. Z. Vergleich SS2015. Fragen Was ist ein Monte-Carlo-Algorithmus? Was ist ein Las-Vegas-Algorithmus? Wie können sich ein Monte-Carlo-Algorithmus und ein Las-Vegas-Algorithmus gegenseitug simulieren? Wie arbeitet der randomisierte Algorithmus für einen minimalen Schnitt? Wie ist die Laufzeit des randomisierten Algorithmus für einen minimalen Schnitt? Wie arbeitet der Algorithmus von Schöning? Wie ist die Fehlerwahrscheinlichkeit beim Algorithmus von Schöning?. x.

(45) Einl. 8:43. Minimaler Schnitt Umformungen. 3-SAT <. > Walter Unger 15.7.2015 11:19. Legende n : Nicht relevant g : Grundlagen, die implizit genutzt werden i : Idee des Beweises oder des Vorgehens s : Struktur des Beweises oder des Vorgehens w : Vollständiges Wissen. Z. Vergleich SS2015. x.

(46)

Referenzen

ÄHNLICHE DOKUMENTE

Dazu muss das Durchlaufen der ungeraden Kreise bei der Suche nach alternierenden Pfade betrachtet werden: Wird bei der Suche ein gematcher Knoten über eine Kanten, die nicht im

Oder noch besser: Erhöhe den Knotengrad der ungeraden Knoten um eins.. jeder ungerade Knoten bekommt eine

Das Vertex Cover Problem kann mit einem Faktor von 2 approximiert werden.. Damit ist M kein inklusions-maximales

Vertex Cover Theorem Das Vertex Cover Problem kann mit einem Faktor von 2 approximiert werden.. Damit ist M kein inklusions-maximales

Auswahl der Menge Si über: Kosten von Si Anzahl der von Si neu überdeckten Elemente Wähle Menge Si , wo obiger Ausdrucke minimal ist.... Aufbau der Idee Das Set-Cover-Problem hat

Approximation Theorem Der obige Algorithmus bestimmt eine 2-Approximation für das allgemeine Makespan Scheduling Problem.. Die Verteilung der ungeteilten Jobs erzeugt auf jeder

Da das Verfahren optimal ist, solange maximal zwei Jobs auf jeder Maschine zugewiesen werden und die Jobs in absteigender Reihenfolge zugewiesen werden, wird der

Damit ist eine zufällig gewählte Kante mit hoher Wahrscheinlichkeit nicht im Schnitt.. Damit sind die inzidenten Knoten einer zufällig gewählten Kante mit hoher Wahrscheinlichkeit