Randomisierte Algorithmen Randomisierte Algorithmen 10. Randomisiertes Approximieren Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 34 Randomisiertes Approximieren Überblick Überblick Polynomielle Approximationsschemata Zählen von Lösungen von Formeln in DNF 2 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata Überblick Polynomielle Approximationsschemata Zählen von Lösungen von Formeln in DNF 3 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata Zählprobleme I I im folgenden: Π ein Zählproblem, das für jede Eingabe x eine gewisse Anzahl #Π (x) (oder kurz #(x)) von „Lösungen“ besitzt. Zu Π gehöriges Entscheidungsproblem E Π : Gibt es für eine Eingabe x eine Lösung, d. h. ist #(x) > 0? 4 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata Komplexitätsklasse #P I Problem Π gehört zu #P, wenn I I I I es eine nichtdeterministische Turingmaschine gibt, die in Polynomialzeit arbeitet und für jede Eingabe x genau #Π (x) akzeptierende Berechnungen besitzt. Problem Π ist #P-vollständig, wenn I I I I I es in #P ist und jedes Problem Π 0 ∈ #P von einer deterministischen Turingmaschine in Polynomialzeit auf Π reduziert werden kann I in dem ein oder anderen hier nicht näher spezifizierten Sinne 5 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata Lemma Wenn man ein #P-vollständiges Problem deterministisch in Polynomialzeit lösen kann, dann ist P = NP. Deswegen sind schnelle Algorithmen interessant, die zumindest (gute) Näherungslösungen finden . . . 6 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata #P-vollständige Probleme Die folgenden Probleme sind #P-vollständig: I I I I I Wieviele erfüllende Belegungen hat eine DNF-Formel? Wieviele erfüllende Belegungen hat eine 2SAT-Formel? Wieviele perfekte Matchings hat ein bipartiter Graph? Was ist die Permanente einer Booleschen Matrix? Wieviele topologische Sortierungen eines DAG gibt es? 7 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata Approximationsschemata (deterministisch) I Approximationsschema (AS) für Π : I I I I deterministischer Algorithmus A, der für jede Eingabe x der Größe n = |x | und für jedes ε > 0 eine Ausgabe A(x) erzeugt, für die gilt: (1 − ε)#(x) ≤ A(x) ≤ (1 + ε)#(x) I I I A(x) heißt dann eine ε-Approximation von #(x). polynomielles Approximationsschema (PAS): ein AS, dessen Laufzeit polynomiell in n ist. voll polynomielles Approximationsschema (FPAS): ist ein AS, dessen Laufzeit polynomiell in n und 1/ε ist. 8 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata Anmerkung I I Für #P-vollständige Probleme kennt man keine PAS oder gar FPAS. also Approximationsschemata mit Zufallsentscheidungen betrachten . . . 9 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata Randomisierte Approximationsschemata I randomisiertes Approximationsschema (RAS) für Π: I I I I ein randomisierter Algorithmus A, der für jede Eingabe x der Größe n = |x | und für jedes ε > 0 eine Ausgabe A(x) erzeugt, für die gilt: P((1 − ε)#(x) ≤ A(x) ≤ (1 + ε)#(x)) ≥ I I 3 4 polynomielles randomisiertes Approximationsschema (PRAS): ein RAS, dessen Laufzeit polynomiell in n ist. voll polynomielles randomisiertes Approximationsschema (FPRAS): ein RAS, dessen Laufzeit polynomiell in n und 1/ε ist. 10 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata Anmerkungen I I Wahl der Wahrscheinlichkeit 3/4 nicht wesentlich Jede Konstante echt größer 1/2 ist „genauso gut“. 11 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata Anmerkungen I I I Wahl der Wahrscheinlichkeit 3/4 nicht wesentlich Jede Konstante echt größer 1/2 ist „genauso gut“. aus PRAS für Π kann man randomisierten Algorithmus für E Π konstruieren, so dass man sieht: E Π ∈ BPP. 11 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata Anmerkungen I I I I I Wahl der Wahrscheinlichkeit 3/4 nicht wesentlich Jede Konstante echt größer 1/2 ist „genauso gut“. aus PRAS für Π kann man randomisierten Algorithmus für E Π konstruieren, so dass man sieht: E Π ∈ BPP. Wenn es ein PRAS für die „Zählvariante“ eines NP-vollständigen Problems gibt, so wäre NP ⊆ BPP. Experten erwarten das nicht . . . 11 / 34 Randomisiertes Approximieren Polynomielle Approximationsschemata noch eine Definition (ε, δ )-FPRAS: I I I I ein FPRAS, das für jede Eingabe x mit einer Wahrscheinlichkeit größer oder gleich 1 − δ eine ε-Approximation berechnet und dessen Laufzeit polynomiell in n, 1/ε und log 1/δ ist. 12 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Überblick Polynomielle Approximationsschemata Zählen von Lösungen von Formeln in DNF 13 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Problemstellung I DNF-Formel F (x 1, . . . , xn ) = C1 ∨ · · · ∨ Cm I I I I I I mit C1 = `1,1 ∧ · · · ∧ `1,r1 , . . . , Cm = `m,1 ∧ · · · ∧ `m,rm jedes Literal `i, j ist Variable x k oder ihre Negation x k jede Variable kommt in jedem Ci höchstens einmal vor Es sei n ≥ 1 und m ≥ 1. sei #F die Anzahl der F erfüllenden Variablenbelegungen x : {x 1, . . . , xn } → {0, 1}. Aufgabe: Man bestimme zu gegebenem F die Zahl #F . 14 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF #F zu berechnen ist schwer I I I I Das Problem ist #P-vollständig. Existenz eines deterministischen Polynomialzeit-Algorithmus wird (analog wie bei NP) von vielen „bezweifelt“. werden im folgenden aber ein (ε, δ )-FPRAS sehen und analysieren. zunächst für allgemeinere Problemstellung ein erster einfacher Algorithmus 15 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Aufgabenstellung I gegeben: I I I gesucht: I I I U endliches Universum Teilmenge G ⊆ U gegeben mittels charakteristischer Funktion д : U → {0, 1} Größe |G | gelegentlich ρ = |G | /|U | Annahmen: I I Man kann schnell zufällig gleichverteilt ein u aus U auswählen. д ist schnell zu berechnen, d. h. Frage „u ∈ G?“ schnell zu entscheiden. 16 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Berechnung von #F I I I U : Menge aller 2n Variablenbelegungen x G: Menge der erfüllenden Variablenbelegungen x д: Auswertung F (x) 17 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Ein naiver Algorithmus Wie könnte man Randomisierung einsetzen? 18 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Ein naiver Algorithmus Wie könnte man Randomisierung einsetzen? z. B. so: z ← 0 hVariable zum Zählen der Lösungeni for i ← 1 to N do u ← hzufällig gleichverteilt aus U gewählti if д(u) = 1 then z ←z+1 fi od return Nz · |U | 18 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Analyse des naiven Algorithmus Lemma I sei Yi die Zufallsvariable mit ( 1 falls im i-ten Schleifendurchlauf д(u) = 1 ist Yi = 0 sonst ÍN I I sei Z = |U | i=1 N Dann ist . . . ?. . . Yi 19 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Analyse des naiven Algorithmus Lemma I sei Yi die Zufallsvariable mit ( 1 falls im i-ten Schleifendurchlauf д(u) = 1 ist Yi = 0 sonst ÍN I I Y i sei Z = |U | i=1 N Dann ist E[Z ] = |G |. 19 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Analyse des naiven Algorithmus (2) Beweis I I offensichtlich E[Yi ] = |G | /|U | wegen Linearität des Erwartungswertes: N |U | |G | |U | Õ E[Yi ] = ·N · = |G | E[Z ] = N i=1 N |U | 20 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Analyse des naiven Algorithmus (3) I I I Frage: Wie groß sollte man die Zahl N der Schleifendurchläufe wählen, damit die Wahrscheinlichkeit für ein „stark“ von |G | abweichendes Ergebnis „klein“ ist. zeigen: eine hinreichende Bedingung Mitteilung: sie ist auch „fast notwendig“ 21 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Analyse des naiven Algorithmus (4) Satz I I I ρ = |G | /|U | Seien δ und ε aus dem Intervall (0; 1]. Der naive Algorithmus liefert mit Wahrscheinlichkeit ≥ 1 − δ eine ε-Approximation für |G |, falls gilt: N ≥ 5 2 ln . ε 2ρ δ 22 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Beweis (1) I I I I I I seien δ und ε beliebig aber fest Yi wieder die Zufallsvariable mit ( 1 falls im i-ten Schleifendurchlauf д(u) = 1 ist Yi = 0 sonst ÍN sei Y = i=1 Yi und folglich Z = |U | Y /N . Y ist binomialverteilt mit Erwartungswert N ρ und Ergebnisse über Chernoff-Schranken anwendbar man erhält . . . 23 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Beweis (2) I man erhält: = = ≥ ≥ P((1 − ε) |G | ≤ Z ≤ (1 + ε) |G |) P((1 − ε)N ρ ≤ Y ≤ (1 + ε)N ρ) 1 − P((1 − ε)N ρ > Y ) − P(Y > (1 + ε)N ρ) 1 − e −ε 2 N ρ/2 − e −ε 1 − 2e −ε 2 N ρ/5 2 N ρ/5 . 24 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Beweis (3) I also P((1 − ε) |G | ≤ Z ≤ (1 + ε) |G |) ≥ 1 − 2e −ε I Einsetzen von N = 5 ε2ρ 2 N ρ/5 . ln δ2 ergibt im Exponenten ε 25ρ ln ε 2N ρ 2 δ = − 2 δ = − ln = ln 5 ε ρ5 δ 2 2 − I also P((1 − ε) |G | ≤ Z ≤ (1 + ε) |G |) ≥ 1 − δ. 25 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF N hinreichend — leider nicht nur das I Satz: I I Wenn man (unter anderem) N umgekehrt proportional zu ρ = |G | /|U | wählt, dann erhält man eine „gute“ Approximation. 26 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF N hinreichend — leider nicht nur das I Satz: I I I Wenn man (unter anderem) N umgekehrt proportional zu ρ = |G | /|U | wählt, dann erhält man eine „gute“ Approximation. Aber ρ kann 2−n sein: exponentielle Laufzeit 26 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF N hinreichend — leider nicht nur das I Satz: I I I I Aber ρ kann 2−n sein: exponentielle Laufzeit „Leider“ sind Chernoff-Schranken recht gut: I I I Wenn man (unter anderem) N umgekehrt proportional zu ρ = |G | /|U | wählt, dann erhält man eine „gute“ Approximation. bei obigem einfachen Algorithmus: große Laufzeiten nicht nur hinreichend, sondern auch notwendig. polynomielles RAS erfordert anderes Vorgehen. Problem: G sehr klein im Vergleich zu U 26 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF N hinreichend — leider nicht nur das I Satz: I I I I Aber ρ kann 2−n sein: exponentielle Laufzeit „Leider“ sind Chernoff-Schranken recht gut: I I I I Wenn man (unter anderem) N umgekehrt proportional zu ρ = |G | /|U | wählt, dann erhält man eine „gute“ Approximation. bei obigem einfachen Algorithmus: große Laufzeiten nicht nur hinreichend, sondern auch notwendig. polynomielles RAS erfordert anderes Vorgehen. Problem: G sehr klein im Vergleich zu U Ziel: Mache ggf. U kleiner . . . I DNF-Problem: betrachte nicht mehr alle Variablenbelegungen sondern nur manche. 26 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Neue Aufgabenstellung I I sei V ein endliches Universum mit m Teilmengen H1, . . . , Hm ⊆ V , so dass I I I I jedes |Hi | in Polynomialzeit berechenbar aus jedem Hi zufällig gleichverteilt ein Element auswählbar Für alle v ∈ V und alle i kann man in Polynomialzeit feststellen, ob v ∈ Hi ist oder nicht. Aufgabe: Bestimme die Größe von H = H1 ∪ · · · ∪ Hm . 27 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Neue Aufgabenstellung I I sei V ein endliches Universum mit m Teilmengen H1, . . . , Hm ⊆ V , so dass I I I jedes |Hi | in Polynomialzeit berechenbar aus jedem Hi zufällig gleichverteilt ein Element auswählbar Für alle v ∈ V und alle i kann man in Polynomialzeit feststellen, ob v ∈ Hi ist oder nicht. I Aufgabe: Bestimme die Größe von H = H1 ∪ · · · ∪ Hm . I DNF-Problem: I Hi : Variablenbelegungen, die Klausel Ci erfüllen 27 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Der wesentliche Trick I I I I sei U = {(v, i) | v ∈ Hi }, also U = H1 ∪· · · · ∪· Hm |U | ≥ |H | sei cov(v) = {(v, i) | (v, i) ∈ U }. dann: I I I I I Es gibt genau |H | nichtleere Mengen cov(v). Die cov(v) sind paarweise disjunkt, partitionieren U . Í |U | = |cov(v)|. Für alle v ∈ V ist |cov(v)| ≤ m. sei G= I (v, i) v ∈ H ∧ i = min{j | v ∈ H j } ⊆ U |G | = |H | I I in G wird jedes v ∈ H genau einmal gezählt nämlich für das kleinste i mit v ∈ Hi . 28 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Der wesentliche Trick im Bild H1 H2 H3 H4 V H U v cov(v) 29 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Der wesentliche Trick I I I Statt die Größe von H ⊆ V zu bestimmen, kann man die Größe von G ⊆ U berechnen. im zweiten Fall sind die Größenverhältnisse „günstiger“: Lemma ρ = |G | /|U | ≥ 1/m Beweis |U | = Õ v∈H |cov(v)| ≤ Õ m = m |H | = m |G | v∈H 30 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Algorithmus hFormel F = C1 ∨ · · · ∨ Cm mit Klauseln Ci = `i,1 ∧ · · · ∧ `i,r i i sizeU ← 0 for i ← 1 to m do sizeHi ← 2n−r i sizeU ← sizeU + sizeHi od N ← 5m ln δ2 ; z ← 0 ε2 for j ← 1 to N do i ← hzufällig aus [1;m] mit W.keit sizeHi/sizeU gewählti x ← hCi erfüllende Var.bel.; zufällig gleichverteilti if ¬∃j < i : x ∈ H j then hx ∈ G ?i z ←z+1 fi od return z · sizeU /N 31 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Theorem Der Algorithmus von eben ist ein (ε, δ )-FPRAS für das DNF-Problem. 32 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Beweis (1) I I I I I Größe der Eingabe liegt in Ω(n + m) und in O(nm). nach Lemma ist ρ ≥ 1/m Hi : Menge aller Variablenbelegungen, die Ci erfüllen. |Hi | = 2n−ri noch zu zeigen: In der zweiten Schleife wird durch die Zuweisungen an i und x stets zufällig ein Element aus U gleichverteilt ausgewählt, I I Wahrscheinlichkeit, ein bestimmtes (x, i) auszuwählen: Í Í |Hi | / |Hi | · 1/|Hi | = 1/ |Hi | = 1/|U |. Also ist der zweite Algorithmus tatsächlich ein Spezialfall des ersten Algorithmus. 33 / 34 Randomisiertes Approximieren Zählen von Lösungen von Formeln in DNF Beweis (2) I I zweiter Algorithmus Spezialfall des ersten Algorithmus Also genügt eine Anzahl Schleifendurchläufe von N = I 5m 2 ln ε2 δ Anzahl Schleifendurchläufe und Gesamtlaufzeit polynomial in 1/ε, log 1/δ und der Problemgröße 34 / 34