Randomisierte Algorithmen - 10. Randomisiertes Approximieren

Werbung
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
Herunterladen