Folien

Werbung
Randomisierte Algorithmen
Randomisierte Algorithmen
7. Random Walks
Thomas Worsch
Fakultät für Informatik
Karlsruher Institut für Technologie
Wintersemester 2016/2017
1 / 43
Random Walks
Überblick
Überblick
Ein randomisierter Algorithmus für 2-SAT
Random Walks
Widerstandsnetzwerke
Randomisierte Algorithmen für Zusammenhangstests
2 / 43
Random Walks
Ein randomisierter Algorithmus für 2-SAT
Überblick
Ein randomisierter Algorithmus für 2-SAT
Random Walks
Widerstandsnetzwerke
Randomisierte Algorithmen für Zusammenhangstests
3 / 43
Random Walks
Ein randomisierter Algorithmus für 2-SAT
Problem 2SAT
I
aussagenlogische Formeln
I
I
I
n Variablen (nicht: Vorkommen von Literalen)
in konjunktiver Normalform, wobei
jede Klausel zwei Literale enthält
I
Probleminstanz: eine solche Formel F
I
Frage: Ist F erfüllbar?
Dieses Problem ist in P.
I
I
I
I
a ∨ b ist äquivalent zu (ā =⇒ b) ∧ (b̄ =⇒ a)
reflexiv transitive Hülle
F nicht erfüllbar gdw. (x̄ =⇒∗ x) ∧ (x =⇒∗ x̄)
für eine Variable x
4 / 43
Random Walks
Ein randomisierter Algorithmus für 2-SAT
7.1 Randomisierter Algorithmus (für 2SAT)
Sei zunächst F eine erfüllbare 2SAT-Formel
5 / 43
Random Walks
Ein randomisierter Algorithmus für 2-SAT
7.1 Randomisierter Algorithmus (für 2SAT)
Sei zunächst F eine erfüllbare 2SAT-Formel
B ← hzufällige Belegung aller x 1, . . . , x n mit Werteni
while F (B) = false do
k ← hvon B nicht erfüllte Klausel in F i
xi ← hzufällig gewählte Variable in ki
B(x i ) ← not B(x i )
od
5 / 43
Random Walks
Ein randomisierter Algorithmus für 2-SAT
7.2 Analyse des Algorithmus
I
Es sei A eine Variablenbelegung, die F erfüllt.
Es bezeichne j die Anzahl Variablen x mit B(x) = A(x).
I
Betrachte linearen Pfad Pn+1 mit möglichen Werten
0, 1, . . . , n für j als Knoten.
=⇒ Belegung B entspricht einem Knoten.
Bei jedem Schleifendurchlauf:
I
I
I
I
j wird um 1 erhöht oder erniedrigt.
Veränderung von B entspricht dem Schritt zu einem der beiden
Nachbarknoten.
Algorithmus beginnt „schlimmstenfalls“ bei j = 0 und endet
spätestens dann, wenn zum ersten Mal j = n erreicht wird.
6 / 43
Random Walks
Ein randomisierter Algorithmus für 2-SAT
7.3 Fortsetzung der Analyse
I
Eine Erhöhung der Knotennummer findet mit Wahrscheinlichkeit
≥ 1/2 statt.
I
Laufzeit des Algorithmus: Anzahl Schritte vom Startknoten bis zum
Finden einer erfüllenden Belegung.
I
Abschätzung nach oben:
Anzahl Schritte von Knoten 0 zu Knoten n.
I
Typische Fragestellung bei Random Walks: Was ist der
Erwartungswert für die Anzahl Schritte, um von einem bestimmten
Startknoten zu einem bestimmten Zielknoten zu gelangen?
7 / 43
Random Walks
Ein randomisierter Algorithmus für 2-SAT
7.4 Modifizierter Algorithmus
Wir werden zeigen:
I
Der Erwartungswert für Anzahl Schritte von Knoten 0 nach Knoten
n entlang eines einzelnen Pfades ist ≤ n2.
I
Markov-Ungleichung: Wahrscheinlichkeit, dass Random Walk der
Länge 2n2 nicht zum Ziel führt, ist ≤ 1/2.
Deswegen . . .
8 / 43
Random Walks
Ein randomisierter Algorithmus für 2-SAT
7.4 Modifizierter Algorithmus (2)
B ← hzufällige Belegung aller x 1, . . . , x n mit Werteni
m ← 0 hZähler für die Anzahl Versuchei
while F (B) = false and m < 2n2 do
k ← hvon B nicht erfüllte Klausel in F i
xi ← hzufällig gewählte Variable in ki
B(x i ) ← not B(x i )
m←m+1
od
if F (B) = true then
return hF erfüllbar durch Bi
else
return hF nicht erfüllbari
fi
9 / 43
Random Walks
Random Walks
Überblick
Ein randomisierter Algorithmus für 2-SAT
Random Walks
Widerstandsnetzwerke
Randomisierte Algorithmen für Zusammenhangstests
10 / 43
Random Walks
Random Walks
7.5 Einfache Random Walks
I
G = (V , E) endlicher, ungerichteter, zusammenhängender Graph
mit |V | = n ≥ 2 Knoten und |E| = m Kanten
I
Für u ∈ V bezeichne Γ(u) = {v | (u, v) ∈ E} die Menge der
Nachbarn, so dass d(u) = |Γ(u)| der Grad von u ist.
Vorstellung: ein Teilchen, Objekt, . . . läuft auf dem Graphen herum:
I
I
I
I
zu jedem Zeitpunkt an einem Knoten des Graphen
ein Schritt: Bewegung über zufällig gewählte Kante zu einem
Nachbarknoten
einfacher Random Walk:
jede Kante mit gleicher Wahrscheinlichkeit 1/d(u) gewählt
11 / 43
Random Walks
Random Walks
7.6 Definition
I
muv : Erwartungswert für die Anzahl Schritte, um
bei einem in u startenden Random Walk
erstmals zu Knoten v zu gelangen.
I
Wechselzeit Cuv = muv + mvu
12 / 43
Random Walks
Random Walks
7.7 Beispiel
„Lollipop-Graph“ Ln = ({1, . . . , n}, E):
Clique der Größe n/2 mit „angeklebtem Stiel“ der Länge n/2
L16:
u
v
13 / 43
Random Walks
Random Walks
7.7 Beispiel
„Lollipop-Graph“ Ln = ({1, . . . , n}, E):
Clique der Größe n/2 mit „angeklebtem Stiel“ der Länge n/2
L16:
u
v
Wir werden sehen, dass für diese Beispielgraphen gilt:
muv ∈ Θ(n3 )
aber
mvu ∈ Θ(n2 )
13 / 43
Random Walks
Widerstandsnetzwerke
Überblick
Ein randomisierter Algorithmus für 2-SAT
Random Walks
Widerstandsnetzwerke
Randomisierte Algorithmen für Zusammenhangstests
14 / 43
Random Walks
Widerstandsnetzwerke
7.8 Widerstandsnetzwerke
I
ungerichteter zshg. Graph G ohne Schlingen
−→ Widerstands-Netzwerk N (G):
ersetze jede Kante von G durch einen Widerstand von 1 Ω
I
Zwischen Knoten u , v ergibt sich ein effektiver Widerstand Ruv .
I
Ruv ist der Quotient Uuv /Iuv aus einer zwischen u und v
angelegten Spannung und dem dann fließenden Strom.
einfache Fälle:
I
I
I
Reihenschaltung von Widerständen
Rk :
Í
Gesamtwiderstand R = k Rk
Parallelschaltung von Widerständen Rk :
Í
Gesamtwiderstand R = 1/( k 1/Rk )
15 / 43
Random Walks
Widerstandsnetzwerke
7.9 Satz
Es sei G ein ungerichteter Graph mit m Kanten.
Dann gilt für alle Knoten u und v in G:
Cuv = 2m · Ruv
Beweis: über „elektrische Charakterisierung“ von muv
16 / 43
Random Walks
Widerstandsnetzwerke
7.10 Lemma
Sei φuv die Spannung bei u relativ zu v, wenn
I
jedem Knoten x Strom d(x) Ampere injiziert wird und
I
der Gesamtstrom von 2m Ampere bei v abgeführt wird.
v
ϕ uv
u
17 / 43
Random Walks
Widerstandsnetzwerke
7.10 Lemma
Sei φuv die Spannung bei u relativ zu v, wenn
I
jedem Knoten x Strom d(x) Ampere injiziert wird und
I
der Gesamtstrom von 2m Ampere bei v abgeführt wird.
v
ϕ uv
u
Dann ist muv = φuv .
17 / 43
Random Walks
Widerstandsnetzwerke
7.11 Beweis
I
I
I
von u , v zu w ∈ Γ(u) fließender Strom ist φuv − φwv
Kirchhoffsche Regel: an jedem Knoten u ist
zufließender Strom = abfließender Strom
Õ
d(u) =
(φuv − φwv )
w ∈Γ(u)
bzw.
d(u) +
Õ
φwv = d(u)φuv .
w ∈Γ(u)
18 / 43
Random Walks
Widerstandsnetzwerke
7.11 Beweis
I
I
I
von u , v zu w ∈ Γ(u) fließender Strom ist φuv − φwv
Kirchhoffsche Regel: an jedem Knoten u ist
zufließender Strom = abfließender Strom
Õ
d(u) =
(φuv − φwv )
w ∈Γ(u)
bzw.
d(u) +
Õ
φwv = d(u)φuv .
w ∈Γ(u)
I
Linearität der Erwartungswerte liefert für u ∈ V r {v}:
1 Õ
muv =
(1 + mwv )
d(u)
w ∈Γ(u)
Õ
bzw.
d(u) +
mwv = d(u)muv .
w ∈Γ(u)
18 / 43
Random Walks
Widerstandsnetzwerke
7.11 Beweis
I
I
I
von u , v zu w ∈ Γ(u) fließender Strom ist φuv − φwv
Kirchhoffsche Regel: an jedem Knoten u ist
zufließender Strom = abfließender Strom
Õ
d(u) =
(φuv − φwv )
w ∈Γ(u)
bzw.
d(u) +
Õ
φwv = d(u)φuv .
w ∈Γ(u)
I
Linearität der Erwartungswerte liefert für u ∈ V r {v}:
1 Õ
muv =
(1 + mwv )
d(u)
w ∈Γ(u)
Õ
bzw.
d(u) +
mwv = d(u)muv .
w ∈Γ(u)
18 / 43
Random Walks
Widerstandsnetzwerke
7.11 Beweis (2)
I
Zweimal das gleiche lineare Gleichungssystem,
I
das offensichtlich lösbar ist
I
gleich: Lösung eindeutig
I
Also ist φuv = muv .
19 / 43
Random Walks
Widerstandsnetzwerke
7.11 Beweis (3)
Eindeutigkeit der Lösung
I
Es seien φuv und ψuv zwei Lösungen, also
∀v ∀u , v : d(u)φuv = d(u) +
Õ
φwv und
w ∈Γ(u)
∀v ∀u , v : d(u)ψuv = d(u) +
Õ
ψwv
w ∈Γ(u)
I
also für jedes Paar (u, v)
φuv − ψuv =
Õ
1
(φwv − ψwv )
|Γ(u)|
w ∈Γ(u)
20 / 43
Random Walks
Widerstandsnetzwerke
7.11 Beweis (4)
Eindeutigkeit der Lösung, Fortsetzung
φuv − ψuv =
Õ
1
(φwv − ψwv )
|Γ(u)|
w ∈Γ(u)
I
I
fixiere beliebiges v und
wähle u so, dass φuv − ψuv minimal wird
also gilt für alle w ∈ Γ(u):
φuv − ψuv = φwv − ψwv
I
I
die Minimalität von φ xv − ψ xv „vererbt“ sich
von jedem Knoten x zu seinen Nachbarn
also ist für jedes x die Differenz φ xv − ψ xv gleich (minimal)
21 / 43
Random Walks
Widerstandsnetzwerke
7.11 Beweis (5)
Eindeutigkeit der Lösung, Fortsetzung:
I
für alle w ∈ Γ(u):
φuv − ψuv = φwv − ψwv
I
betrachte beliebige Kante uw:
φuw − ψuw = (φuv − φwv ) − (ψuv − ψwv )
= (φuv − ψuv ) − (φwv − ψwv )
=0
I
also stimmen φ und ψ für alle Kanten überein
I
also stimmen sie sogar für alle Knotenpaare überein (betrachte
Pfade)
22 / 43
Random Walks
Widerstandsnetzwerke
7.12 Beweis von Satz 7.9: Cuv = 2m · Ruv
Wir wissen schon: muv = φuv .
v
m uv
u
23 / 43
Random Walks
Widerstandsnetzwerke
7.12 Beweis (2)
Analog: mvu = φvu .
v
m vu
u
24 / 43
Random Walks
Widerstandsnetzwerke
7.12 Beweis (3)
Vorzeichen umdrehen bei mvu = φvu :
v
m vu
u
25 / 43
Random Walks
Widerstandsnetzwerke
7.12 Beweis (4)
addieren (Widerstandsnetzwerke sind linear) von
v
v
m uv
m vu
u
u
26 / 43
Random Walks
Widerstandsnetzwerke
7.12 Beweis (5)
Ergebnis:
v
u
m uv
+ m vu
Nach dem Ohmschen Gesetz ist aber φuv + φvu gerade 2mRuv .
27 / 43
Random Walks
Widerstandsnetzwerke
7.13 Beispiel
Lollipop-Graph Ln :
L16:
u
v
Bestimmung von muv :
I
An den n/2 Clique-Knoten werden jeweils Θ(n/2) Ampere injiziert
I
Also: Gesamtstrom Θ(n2 ) Ampere
I
Er fließt über u nach v und verursacht an allen n/2 Widerständen
unterwegs jeweils einen Spannungsabfall von Θ(n2 ) Volt
I
Also Gesamtspannungsabfall Θ(n3 )
28 / 43
Random Walks
Widerstandsnetzwerke
7.13 Beispiel (2)
Lollipop-Graph Ln :
L16:
u
v
Bestimmung von mvu :
I
An den Knoten 1 + n/2, 2 + n/2, . . . , n werden jeweils
2 Ampere (bzw. 1 bei n) injiziert, die zu u fließen.
I
Also fließen durch Widerstand zwischen Knoten n − i und n − i − 1
gerade 2(i + 1) Ampere (für 0 ≤ i ≤ n/2 + 1).
I
Die Spannungsabfälle summieren sich zu Θ(n2 ).
29 / 43
Random Walks
Widerstandsnetzwerke
7.14 Korollar
Für jeden Graphen mit n Knoten und
beliebigen Knoten u und v gilt:
Cuv < n3 .
30 / 43
Random Walks
Widerstandsnetzwerke
7.15 Beweis
I
|V | = n =⇒ |E| = m ≤ n(n − 1)/2
I
Maximaler effektiver Widerstand Ruv nach oben beschränkt durch
die Länge kürzester Wege von u nach v.
I
Reihenschaltung ist der schlimmste Fall, d. h. Ruv ≤ n − 1.
I
Also ist Cuv = 2mRuv < n3.
31 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
Überblick
Ein randomisierter Algorithmus für 2-SAT
Random Walks
Widerstandsnetzwerke
Randomisierte Algorithmen für Zusammenhangstests
32 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.16 Problem
I
USTCON: undirected s–t connectivity
I
Gegeben: ungerichteter Graph und zwei Knoten s und t
I
Frage: Sind s und t in der gleichen Zusammenhangskomponente,
also durch einen Pfad miteinander verbunden?
33 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
Anmerkungen zu USTCON
I
zunächst klar: USTCON liegt in NL = NSPACE(log n)
I
Savitch (1970): also USTCON in DSPACE((log n)2 )
I
Aleliunas (1979): USTCON randomisiert in poly. Zeit und
log n Platz
(kommt gleich)
I
Lewis et al. (1982): USTCON ist SL-vollständig (L ⊆ SL ⊆ NL)
I
Nisan et al. (1992): USTCON in DSPACE((log n)1.5 )
I
Reingold (2004): USTCON in DSPACE(log n), also
SL = L = DSPACE(log n)
34 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.17 Algorithmus
I
simuliere einen Random Walk, der bei s startet
35 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.17 Algorithmus
I
I
simuliere einen Random Walk, der bei s startet
mache maximal 2n3 Schritte
I
I
falls man dabei auf Knoten t trifft: Antwort yes
falls man nie auf Knoten t trifft: Antwort no
35 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.18 Lemma
Die Wahrscheinlichkeit, dass Algorithmus 7.17 fälschlicherweise no
ausgibt, ist höchstens 1/2.
36 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.19 Beweis
I
Falsche Antwort: s und t in der gleichen
Zusammenhangskomponente, aber der Random Walk findet t
nicht.
I
Korollar 7.14: Erwartungswert mst ≤ n3.
I
Markov-Ungleichung: Wahrscheinlichkeit, dass ein Random Walk
mehr als doppelt solange benötigt, um von s nach t zu gelangen, ist
höchstens 1/2.
37 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.20 Problem
I
STCON: s–t connectivity
I
Gegeben: gerichteter Graph und zwei Knoten s und t
I
Frage: Sind s und t in der gleichen Zusammenhangskomponente,
also durch einen Pfad miteinander verbunden?
I
STCON ist vollständig für NL
38 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.20 Problem
I
STCON: s–t connectivity
I
Gegeben: gerichteter Graph und zwei Knoten s und t
I
Frage: Sind s und t in der gleichen Zusammenhangskomponente,
also durch einen Pfad miteinander verbunden?
I
STCON ist vollständig für NL
NB: vorangegangener Algorithmus untauglich wegen möglicher
„Einbahnstraßensackgassen“
38 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.21 Algorithmus
Abwechselnd die beiden folgenden Phasen:
1. Simuliere ausgehend von s einen Random Walk der Länge maximal
n − 1.
Wird dabei t erreicht: Ausgabe yes.
2.
39 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.21 Algorithmus
Abwechselnd die beiden folgenden Phasen:
1. Simuliere ausgehend von s einen Random Walk der Länge maximal
n − 1.
Wird dabei t erreicht: Ausgabe yes.
2. Es werden log nn = n log n Zufallsbits „gewürfelt“.
Wenn sie alle 0 sind: Ausgabe no.
39 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.22 Lemma
a) Algorithmus 7.21 kann so implementiert werden,
dass der Platzbedarf kleiner gleich O(log n) ist.
b) Wenn kein Pfad von s nach t existiert:
Ausgabe nie yes, also stets no, sofern Algorithmus hält.
c) Wenn ein Pfad von s nach t existiert:
Ausgabe yes mit Wahrscheinlichkeit größer gleich 1/2.
40 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.23 Beweis
a) Platzbedarf:
I
I
Phase 1: bisherige Länge des Random Walk und aktuelle
Knotennummer können in O(log n) Bits gespeichert werden.
Phase 2: zähle, wieviele Bits schon gewürfelt wurden und ob alle
gleich 0 waren. Es genügen log(n log n) ∈ O(log n) Bits.
b) Wenn kein Pfad existiert, wird kein Random Walk von s nach t
führen, also wird auch nie yes ausgegeben.
41 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
7.23 Beweis (2)
c) Falls Pfad von s nach t existiert:
I
I
I
I
I
insgesamt höchstens nn Pfade der Länge n − 1
also Wahrscheinlichkeit, dass in Phase 1 ein Pfad s ; t gefunden
wird, mindestens n−n .
Die Wahrscheinlichkeit, dass in Phase 2 die falsche Antwort gegeben
wird, ist ≤ (1 − n−n )n −n ≤ n−n .
X : Zufallsvariable, die angibt, in welchem Durchlauf die richtige
Antwort gegeben wird
p: Wahrscheinlichkeit, dass überhaupt die richtige Antwort gegeben
wird. Dann ist
p = P(X ≥ 1) = P(X = 1) + P(X ≥ 2) ≥ n −n + (1 − 2n −n )p .
I
Auflösen nach p ergibt: p ≥ 1/2.
42 / 43
Random Walks
Randomisierte Algorithmen für Zusammenhangstests
Zusammenfassung
I
Es gibt Zusammenhänge zwischen Random Walks und
elektrischen Widerstandsnetzwerken.
I
Random Walks kann man benutzen, um in Graphen zwei Knoten
auf Verbundenheit zu testen.
43 / 43
Herunterladen