Randomisierte Algorithmen - fbi.h

Werbung
Kapitel 6: Randomisierte Algorithmen
Gliederung
1.
2.
3.
4.
5.
6.
6/1, Folie 1
Laufzeit von Algorithmen
Sortier- und Selektionsverfahren
Paradigmen des Algorithmenentwurfs
Ausgewählte Datenstrukturen
Algorithmische Geometrie
Randomisierte Algorithmen
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Gliederung
 Fahrplan
•
•
•
•
•
•
6/1, Folie 2
Einführendes Beispiel
Modellierung randomisierter Algorithmen
Typen von randomisierten Algorithmen
Eine randomisierte Datenstruktur: Skip-Listen
Beispiele für randomisierte Algorithmen
Ein randomisierter Primzahltest
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Einführendes Beispiel
 Problembeschreibung
•
•
•
es gibt zwei Rechner R1 und R2 mit Datenbanken, welche anfangs
einen identischen Inhalt haben
der Inhalt der Datenbanken ändert sich dynamisch, wobei angestrebt
wird, daß beide Datenbanken identisch bleiben
von Zeit zu Zeit soll überprüft werden, ob das wirklich so ist
 Zielstellung
•
•
6/1, Folie 3
gesucht ist ein Kommunikationsprotokoll, daß eine Antwort auf die
Frage erlaubt, ob der Inhalt der Datenbanken identisch ist
der Kommunikationsaufwand (/* gemessen in der Anzahl der zu
übertragenden Bits */) soll möglichst gering sein
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Einführendes Beispiel
 Randbedingungen
•
es handelt sich um eine relativ große Datenbank (/* z.B. eine GenDatenbank */)
•
x = x[1]x[2] ... x[n] und y = y[1]y[2] ... y[n] seien Binärstrings, die dem
Datenbankinhalt der Datenbank auf Rechner R1 bzw. R2
repräsentieren
wenn einige Terra-Bytes an Daten gespeichert werden, so ist es
realistisch, n gleich 1016 zu setzen
•
... das gesuchte Kommunikationsprotokoll soll es erlauben, die Frage
zu beantworten, ob die beiden Binärstrings x und y gleich sind
6/1, Folie 4
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Einführendes Beispiel
 Ein deterministisches Protokoll
Schritt 1:
R1 sendet den kompletten Inhalt x seiner Datenbank an R2
Schritt 2:
R2 vergleicht den Inhalt y seiner Datenbank mit x; falls x = y
gilt, so wird „gleich“ ausgegeben; andernfalls wird „ungleich“
ausgegeben
... es sind offenbar |x| = n Bits zu übertragen (/* also 1016 Bits,
falls n = 1016 ist */)
6/1, Folie 5
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Einführendes Beispiel
 Ein randomisiertes Protokoll
Schritt 1:
R1 wählt zufällig eine Primzahl p mit p ≤ n2 und berechnet
h(x) = dec(x) mod p (/* wobei jede Primzahl p ≤ n2 dieselbe
Wahrscheinlichkeit hat, ausgewählt zu werden ist */)
Schritt 2:
R1 sendet bin(p) und bin(h(x)) an R2
Schritt 3:
R2 berechnet h(y) = dec(y) mod p; falls h(x) = h(y) gilt, so wird
„gleich“ ausgegeben; sonst wird „ungleich“ ausgegeben
... dec(x) = x[1]2n-1 + ...+ x[n]20 für x =x[1]...x[n]
6/1, Folie 6
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Einführendes Beispiel
 Kommunikationsaufwand
Schritt 1:
R1 wählt zufällig eine Primzahl p mit p ≤ n2 und berechnet
h(x) = dec(x) mod p (/* wobei jede Primzahl p ≤ n2 dieselbe
Wahrscheinlichkeit hat, ausgewählt zu werden ist */)
Schritt 2:
R1 sendet bin(p) und bin(h(x)) an R2
... es ist die Binärdarstellung zweier Zahlen ≤ n2 zu übertragen
... es sind ≤ 2log(n2) = 4 log(n) Bits zu übertragen (/* also ≤ 256 Bits,
falls n = 1016
6/1, Folie 7
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Einführendes Beispiel
 Qualität des Protokolls
Schritt 3:
R2 berechnet h(y) = dec(y) mod p; falls h(x) = h(y), wird „gleich“
ausgegeben; sonst wird „ungleich“ ausgegeben
Fall 1: es wird „gleich“ ausgegeben
 möglicherweise falsch
Fall 2: es wird „ungleich“ ausgegeben
 immer richtig
... die Wahrscheinlichkeit dafür, daß „gleich“ ausgegeben wird, obwohl x ≠ y
gilt, ist ≤ ln(n2)/n (/* ≤ 100/1016 = 10-14, falls n = 1016 */)
6/1, Folie 8
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Einführendes Beispiel
 Qualität des Protokolls
•
wähle unabhängig k zufällige Primzahlen ≤ n2
•
mache k Läufe des Protokolls
 „gleich“ wird ausgegeben, falls jeder Lauf „gleich“ liefert
 ansonsten wird „ungleich ausgegeben“
... die Wahrscheinlichkeit dafür, daß „gleich“ ausgegeben wird, obwohl x ≠ y
gilt, ist ≤ (ln(n2)/n)k (/* ≤ 10-140, falls n = 1016 und k = 10 */)
6/1, Folie 9
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Einführendes Beispiel
 Zwischenfazit
•
•
•
•
6/1, Folie 10
um Effizienz zu gewinnen, verzichtet man auf „Korrektheit“
die Wahrscheinlichkeit dafür, daß ein Fehler gemacht wird, ist
bekannt (/* und „gering“ */)
anstatt die richtigen Daten zu übertragen, verwendet man sogenannte
„Fingerprints“
um die Wahrscheinlichkeit dafür, daß ein Fehler gemacht wird, zu
verringern, werden mehrfach, unabhängig voneinander „Fingerprints“
berechnet und übertragen
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 randomisierte Algorithmen (/* Begriffsbildung */)
6/1, Folie 11
•
ein durch zufällige Entscheidungen gesteuerter Algorithmus
•
man erlaubt dem Algorithmus von Zeit zu Zeit eine Münze zu
werfen und abhängig vom Ergebnis zu entscheiden, wie weiter
gearbeitet wird
•
Qualitätskriterien
•
Rechenzeit
•
Grad der Korrektheit (/* Zuverlässigkeit */)
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 randomisierte Algorithmen (/* Anforderungen */)
... randomisierte Algorithmen sollen mit großer Wahrscheinlichkeit auf jeder
Eingabe korrekt und effizient laufen, also in jeder Situation relativ schnell
und zuverlässig sein
... die Arbeitsweise eines randomisierten Algorithmus kann als
Zufallsexperiment verstanden werden
6/1, Folie 12
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 randomisierte Algorithmen (/* einfache Modellierung */)
•
es seien A der betrachtete randomisierte Algorithmus und x die Eingabe

•
das Zufallsexperiment, daß die Arbeit von A auf der Eingabe x beschreibt,
kann als Wahrscheinlichkeitsraum (SA,x,Wahr) modelliert werden, wobei
gilt
•
•
6/1, Folie 13
A wählt zufällig eine von endlich vielen möglichen Berechnungen
C1,...,Cm aus und verarbeitet die Eingabe x entsprechend
SA,x = { C1,...,Cm }
Wahr: SA,x → [0,1] ist eine Wahrscheinlichkeitsverteilung über SA,x
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 Berechnungsbaum für einen randomisierten Algorithmus A bei Eingabe x
...
Cm
C2
C1
... man kann sich A − bei Eingabe von x − auch als Menge deterministischer
Algorithmen A1,...,Am vorstellen, von denen zufällig ein Algorithmus Ai ausgewählt wird
6/1, Folie 14
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 (erwartete) Rechenzeit des Algorithmus A bei Eingabe x
•
es bezeichne Time(Ci) die Rechenzeit der Berechnung Ci
•
es sei Z: SA,x  N eine Zufallsvariable mit Z(Ci) = Time(Ci)
m
E-TimeA(x) = E[Z] =
Σ Wahr({Ci}) * Z(Ci)
i=1
m
=
6/1, Folie 15
© 2009 Prof. Steffen Lange
-
HDa/FbI
Σ Wahr({Ci}) * Time(Ci)
i=1
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 (erwartete) Rechenzeit des randomisierten Algorithmus A
... eine Funktion, die angibt, welche Rechenzeit im worst case zu
erwarten ist
E-TimeA(n) = max { E-TimeA(x) | x hat die Länge n }
6/1, Folie 16
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 (erwartete) Zuverlässigkeit des randomisierten Algorithmus A bei Eingabe x
•
es sei Q: SA,x  { 0, 1 } eine Zufallsvariable mit
Q(Ci) =
1, falls Ci das korrekte Resultat für x berechnet
0, sonst
m
E-ErfolgA(x) = E[x] =
=
Σ Wahr({Ci}) * Q(Ci)
i=1
Σ Wahr({Ci})
Ci mit
Q(Ci) = 1
E-FehlerA(x) = 1 - E-ErfolgA(x) =
Σ Wahr({Ci})
Ci mit
Q(Ci) = 0
6/1, Folie 17
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 (erwartete) Zuverlässigkeit des randomisierten Algorithmus A
... eine Funktion, die angibt, welche Fehlerwahrscheinlichkeit im worst
case zu erwarten ist
E-FehlerA(n) = max { E-FehlerA(x) | x hat die Länge n }
6/1, Folie 18
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 Zurück zum einführenden Beispiel
Schritt 1:
R1 wählt zufällig eine Primzahl p mit p ≤ n2 und berechnet
h(x) = dec(x) mod p (/* wobei jede Primzahl ≤ n2 dieselbe
Wahrscheinlichkeit hat, ausgewählt zu werden ist */)
Schritt 2:
R1 sendet bin(p) und bin(h(x)) an R2
Schritt 3:
R2 berechnet h(y) = dec(y) mod p; falls h(x) = h(y), wird „gleich“
ausgegeben; sonst wird „ungleich“ ausgegeben
... dec(x) = x[1]2n-1 + ...+ x[n]20 für x =x[1]...x[n]
6/1, Folie 19
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 Zurück zum einführenden Beispiel (/* Bezeichnungen ... */)
•
•
es sei n die Länge der beiden Binärstrings x und y
es sei P(n2) = { p | 2 ≤ p ≤ n2 und p ist Primzahl }
•
zugrunde liegender Wahrscheinlichkeitsraum (SA,(x,y),Wahr) mit
•
SA,(x,y) = { Cp | p ∈ P(n2) }
•
Wahr ist die Gleichverteilung auf SA,(x,y), d.h.
Wahr({Cp}) = 1/|P(n2)| für alle Cp ∈ SA,(x,y)
 Fakten
Es gibt höchstens n2/ln(n2) viele Primzahlen in der Menge P(n2).
6/1, Folie 20
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 Zurück zum einführenden Beispiel (/* Rechenzeit */)
•
•
es sei n die Länge der beiden Binärstrings x und y
wir gehen davon aus, daß die Rechenzeit linear von der Anzahl der
übertragenden Bits abhängt
... da die Anzahl der übertragenden Bits immer gleich ist, gilt
E-TimeA(n) ≈ max { E-TimeA((x,y)) | x hat die Länge n }
≤ 4 log(n)
6/1, Folie 21
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 Zurück zum einführenden Beispiel (/* Zuverlässigkeit */)
•
•
•
es sei n die Länge der beiden Binärstrings x und y (/* es sei x ≠ y */)
es sei p eine Primzahl aus P(n2)
es sei z = |dec(x) - dec(y)|
•
es sei Q: SA,(x,y)  { 0, 1 } eine Zufallsvariable mit
Q(Cp) =
1, falls h(x) ≠ h(y)
0, falls h(x) = h(y)
 Fakten
Q(Cp) = 0 gdw. p teilt z.
Die Primfaktorenzerlegung von z enthält höchstens n-1 Faktoren.
6/1, Folie 22
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Modellierung randomisierter Algorithmen
 Zurück zum einführenden Beispiel (/* Zuverlässigkeit */)
E-ErfolgA((x,y)) = E[Q] =
Σ Wahr({Cp}) * Q(Cp)
p ∈ P(n2)
=
1/|P(n2)| * Σ Q(Cp)
p ∈ P(n2)
≥
1/|P(n2)| * (|P(n2)| - (n - 1))
E-FehlerA((x,y)) = 1 - E-ErfolgA((x,y)) ≤ (n - 1) / |P(n2)|
= ((n - 1) * ln(n2)) / n2 ≈ ln(n2) / n
E-FehlerA(n) = max { E-FehlerA((x,y)) | |x| = |y| = n }
≈ ln(n2) / n
6/1, Folie 23
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Typen von randomisierten Algorithmen
 Vorüberlegungen / Einschränkungen
... wir betrachten ausschließlich randomisierte Algorithmen für sogenannte
Entscheidungsprobleme
 Entscheidungsprobleme
•
•
•
Beschreibung einer Menge X zulässiger Eingaben
Beschreibung einer Menge Y zulässiger Ausgaben
Beschreibung einer Funktion, die jeder zulässigen Eingabe die Menge
der korrekten Ausgaben zuordnet (/* definiert eine Relation R ⊆ X × Y */)
Ein Algorithmus A löst das zu R gehörende Entscheidungsproblem, falls A
für jedes x ∈ { 0,1 }* folgendes leistet:
•
•
6/1, Folie 24
falls { y | (x,y) ∈ R } ≠ ∅, gibt A die Zahl 1 aus und stoppt
falls { y | (x,y) ∈ R } = ∅, gibt A die Zahl 0 aus und stoppt
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Typen von randomisierten Algorithmen
 Einteilung randomisierter Algorithmen
... man unterscheidet randomisierte Algorithmen in Bezug auf ihre
Zuverlässigkeit
6/1, Folie 25
•
Las-Vegas-Algorithmen (/* dürfen keine Fehler */)
•
Monte-Carlo-Algorithmen (/* können Fehler machen */)
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Typen von randomisierten Algorithmen
 Las-Vegas-Algorithmen
•
mögliche Ausgaben des Algorithmus A bei Eingabe x
•
•
•
•
A(x) = 1 (/* falls { y | (x,y) ∈ R } ≠ ∅ */)
A(x) = 0 (/* falls { y | (x,y) ∈ R } = ∅*/)
A(x) = ? (/* keine Antwort auf die Frage, ob { y | (x,y) ∈ R } ≠ ∅ */)
Anforderungen
•
•
falls 1 bzw. 0 ausgegeben wird, so ist die Antwort korrekt
Wahr( „A(x) ∈ { 1,0 }“ ) ≥ ½
... durch eine wiederholte Anwendung des Algorithmus kann, die
Wahrscheinlichkeit dafür, daß der Algorithmus das Ergebnis A(x) = ?
liefert, „beliebig“ klein gemacht werden
6/1, Folie 26
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 6: Randomisierte Algorithmen
Typen von randomisierten Algorithmen
 Monte-Carlo-Algorithmen
•
mögliche Ausgaben des Algorithmus A bei Eingabe x
•
•
•
A(x) = 1 (/* falls { y | (x,y) ∈ R } ≠ ∅ */)
A(x) = 0 (/* falls { y | (x,y) ∈ R } = ∅*/)
Anforderungen
•
•
falls A(x) = 0 ausgegeben wird, so ist die Antwort korrekt
Wahr( „A(x) = 1 und { y | (x,y) ∈ R } ≠ ∅“ ) ≥ ½
... durch eine wiederholte Anwendung des Algorithmus kann, die
Wahrscheinlichkeit dafür, daß der Algorithmus fälschlicherweise das
Ergebnis A(x) = 1 liefert, „beliebig“ klein gemacht werden
6/1, Folie 27
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Herunterladen