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