Methoden zum Entwurf von zufallsgesteuerten Algorithmen Departement Informatik Dr. Hans-Joachim Böckenhauer Dr. Dennis Komm Dr. Richard Královič http://www.ita.inf.ethz.ch/randalg16 Lösungsvorschläge – Blatt 2 Zürich, 8. März 2016 Lösung zu Aufgabe 3 Für eine Funktion F , eine Eingabe x und k ≥ 2 sei also Ak ein Algorithmus, der für jede Eingabe x genau k unabhängige Läufe von A auf x simuliert. Die ?“ -Wahrscheinlichkeit ” von A auf x ist 1 − ε. Da bereits bei der Berechnung eines korrekten Resultates in einem der Läufe das richtige Gesamtergebnis ausgegeben wird, beträgt die ?“ -Wahrscheinlichkeit ” von Ak höchstens (1 − ε)k . Es soll gelten, dass (1 − ε)k ≤ 1 − δ, wobei 1 − δ der gewünschten ?“ -Wahrscheinlichkeit entspricht. Die Anzahl der benötigten ” Wiederholungen k folgt sofort aus (1 − ε)k ≤ 1 − δ ⇐⇒ log(1 − ε)k ≤ log(1 − δ) ⇐⇒ k · log(1 − ε) ≤ log(1 − δ) zu k≥ log(1 − δ) . log(1 − ε) Lösung zu Aufgabe 4 Um den Erwartungswert für die Anzahl der Wiederholungen zu bestimmen, müssen wir zunächst die Wahrscheinlichkeit p dafür abschätzen, dass in einer Iteration (d. h. in dem ursprünglichen Algorithmus STICH aus der Vorlesung) mindestens die Hälfte der Klauseln erfüllt wird. Sei also Φ = F1 ∧ F2 ∧ . . . ∧ Fm eine Formel in KNF über den Variablen {x1 , x2 , . . . , xn }. Weiter sei α = (α1 , α2 , . . . , αn ) die von dem Algorithmus zufällig gewählte Belegung der Variablen. Wir nennen die Belegung α gut für eine Formel Φ, falls α mindestens die Hälfte der Klauseln von Φ erfüllt und schlecht für Φ sonst. Zu einer Belegung α sei α die komplementäre Belegung, es gelte also α(xi ) = 1 − α(xi ) für alle i ∈ {1, . . . , n}. Dann erfüllt α mindestens alle die Klauseln, die von α nicht erfüllt werden. Falls α also schlecht ist, dann ist α gut. Damit ist für jede schlechte Belegung die komplementäre Belegung gut, und somit ist mindestens die Hälfte aller möglichen Belegungen gut für Φ. Die zufällig gewählte Belegung α erfüllt also mit Wahrscheinlichkeit p ≥ 1/2 mindestens die Hälfte aller Klauseln von Φ. Mit Hilfe dieser Abschätzung für p können wir jetzt die erwartete Anzahl der Wiederholungen wie folgt abschätzen: Die Wahrscheinlichkeit, dass der modifizierte Algorithmus genau k Iterationen braucht, ist (1 − p)k−1 · p: Wenn genau k Iterationen benötigt werden, war der Algorithmus in den ersten k − 1 Iterationen nicht erfolgreich, aber in der k-ten Iteration, und alle Iterationen sind unabhängig voneinander. Sei T eine Zufallsvariable, die die Anzahl der benötigten Iterationen zählt. Dann ergibt sich für den Erwartungswert E[T ] = = = = ∞ X k · (1 − p)k−1 · p k=0 ∞ X k · (1 − p)k−1 · p k=1 ∞ X (k + 1) · (1 − p)k · p k=0 ∞ X k k · (1 − p) · p + k=0 = (1 − p) · ∞ X (1 − p)k · p k=0 ∞ X k · (1 − p)k−1 · p + p · k=0 Damit folgt 1 p · E[T ] = p · , p E[T ] = (1 − p)k k=0 1 = (1 − p) · E[T ] + p · . 1 − (1 − p) also ∞ X 1 ≤ 2. p