4 Probabilistische Analyse und randomisierte Algorithmen

Werbung
96
Algorithmen und Datenstrukturen
4
Probabilistische Analyse und randomisierte
Algorithmen
Bei der Algorithmenanalyse ist es sehr hilfreich, Aspekte berücksichtigen
zu können, die vom Zufall abhängen. Dies betrifft einerseits Zufälligkeit bei
den Eingabedaten und andererseits Algorithmen, in welchen der Ablauf
explizit vom Zufall gesteuert wird.
Für diesen Abschnitt werden elementare Begriffe aus der
Wahrscheinlichkeitslehre benötigt. Die wichtigsten sind im Anhang A
zusammengestellt.
4 Probabilistische Analyse und randomisierte Algorithmen
TU Bergakademie Freiberg, WS 2005/06
97
Algorithmen und Datenstrukturen
4.1
Das Einstellungsproblem
• Sie benutzen eine Arbeitsvermittlung, um einen neuen Programmierer
einzustellen. Diese schickt Ihnen jeden Tag einen Bewerber.
• Unmittelbar nach jedem Bewerbungsgespräch müssen Sie
entscheiden, ob Sie den Bewerber einstellen.
• Pro Bewerbungsgespräch entstehen Ihnen Kosten KB .
Pro Einstellung enstehen Ihnen Kosten KE > KB .
• Ihre Strategie ist es, zu jeder Zeit den bisher besten Bewerber
eingestellt zu haben. Wann immer also ein Bewerber besser als Ihr
aktueller Programmierer ist, stellen Sie diesen ein und entlassen den
alten. Da die Programmiererstelle ständig besetzt sein muß, stellen
Sie stets den ersten Bewerber ein.
Aufgabe: Ermitteln Sie die Gesamtkosten dieser Strategie.
4.1 Das Einstellungsproblem
TU Bergakademie Freiberg, WS 2005/06
98
Algorithmen und Datenstrukturen
Pseudocode: Die Kandidaten sind nummeriert von 1 bis n. Ein
Pseudobewerber 0, der schlechter ist als alle anderen Bewerber, stellt
sicher, dass der erste Bewerber stets eingestellt wird.
H IRE -P ROGRAMMER(n)
best ← 0 Kandidat 0 ist Pseudobewerber mit schlechtester Eignung
for i ← 1 to n
do Bewerbungsgespräch mit Bewerber i führen
if Kandidat i besser als best
then best ← i
Kandidat i einstellen
4.1 Das Einstellungsproblem
TU Bergakademie Freiberg, WS 2005/06
99
Algorithmen und Datenstrukturen
Aufwand: Wenn wir von den n Bewerbern m einstellen beträgt der
Aufwand O(nKB + mKE ).
• Kosten für Bewerbungsgespräche nKB sind fest (unabhängig von
Einstellungen).
• Analysiere also Einstellungskosten mKE .
• Diese variieren bei jedem Durchlauf in Abhängigkeit von der
Reihenfolge der Bewerber.
• Häufige Berechnungsmethode: Bestimmung des Minimums oder
Maximums einer Folge durch sukzessive Prüfung jedes Folgengliedes,
wobei der aktuelle Sieger“ festgehalten wird. Die Variable m gibt an,
”
wie oft das Optimum aktualisiert wird.
Worst-case: Bewerber erscheinen in aufsteigender Reihenfolge, Aufwand
O(nKB + nKE ) = O(nKE ) (da KE > KB ).
4.1 Das Einstellungsproblem
TU Bergakademie Freiberg, WS 2005/06
100
Algorithmen und Datenstrukturen
Probabilistische Analyse: Reihenfolge der Bewerber nicht vorhersehbar;
wir nehmen diese als zufällig an.
• Ordne jedem Bewerber Rangordnung rank (i) ∈ {1, 2, . . . , n} zu.
• Die geordnete Liste hrank (1), rank (2), . . . , rank (n)i ist eine
Permutation der Bewerbernummern h1, 2, . . . , ni.
• Unter allen möglichen Rangordnungslisten ist jede der n!
Permutationen gleich wahrscheinlich, d.h. die Rangordnungen bilden
eine gleichverteilte zufällige Permutation.
Entscheidender Ansatz bei probabilistischer Analyse:
Kenntnis/Annahmen über Verteilung der Eingaben; bezüglich dieser
Verteilung werden Erwartungswerte (z.B. für Laufzeit) gebildet.
4.1 Das Einstellungsproblem
TU Bergakademie Freiberg, WS 2005/06
101
Algorithmen und Datenstrukturen
Randomisierte Algorithmen
Inwieweit die Bewerber tatsächlich in zufälliger Reihenfolge erscheinen ist
evtl. nicht nachprüfbar bzw. schwer zu simulieren. In diesem Fall legen wir
mit Hilfe eines randomisierten Algorithmus die Verteilung der Eingaben
fest.
Änderung des Szenarios:
• Die Arbeitsvermittlung schickt uns im Voraus eine Liste aller n
Bewerber.
• Wir bestimmen dann selbst eine zufällige Reihenfolge der Bewerber.
4.1 Das Einstellungsproblem
TU Bergakademie Freiberg, WS 2005/06
102
Algorithmen und Datenstrukturen
Ein Algorithmus heißt randomisiert, falls dessen Verhalten durch Größen
bestimmt wird, die durch einen Zufallsgenerator erzeugt wurden.
• R ANDOM(a, b) erzeugt eine ganze Zahl r mit a ≤ r ≤ b, wobei jede der
möglichen b − a + 1 Werte mit gleicher Wahrscheinlichkeit auftreten.
• Typischerweise wird R ANDOM durch einen
Pseudo-Zufallszahlengenerator realisiert, d.h. die erzeugten
Zahlenfolgen sind deterministisch (insbesondere reproduzierbar),
genügen aber statistischen Tests hinsichtlich ihrer Verteilung.
4.1 Das Einstellungsproblem
TU Bergakademie Freiberg, WS 2005/06
103
Algorithmen und Datenstrukturen
4.2
Indikator-Zufallsvariablen
Indikator-Zufallsvariablen sind eine hilfreiche Technik zur Berechnung der
Erwartungswerts einer Zufallsvariable, insbesondere dann, wenn
Abhängigkeiten vorliegen.
Ist A ein Ereignis über einem Grundraum Ω, so ist die
Indikator-Zufallsvariable I definiert durch
(
1 falls A eintritt,
I(A) :=
0 falls A nicht eintritt.
Lemma 4.1 Für ein Ereignis A sei XA := I(A). Dann gilt E[XA ] = Pr(A).
Beweis: Bezeichnet A das Komplement von A, so gilt
E[XA ] = E[I(A)] = 1 · Pr(A) + 0 · Pr(A) = Pr(A).
4.2 Indikator-Zufallsvariablen
TU Bergakademie Freiberg, WS 2005/06
104
Algorithmen und Datenstrukturen
Einfaches Besipiel: Erwartete Anzahl Köpfe beim einmaligen Wurf einer
fairen Münze.
• Grundraum ist Ω = {K, Z}.
• Pr(K) = Pr(Z) = 21 .
• Definiere Indikator-Zufallsvariable XK := I(K). Diese zählt die Anzahl
Köpfe in einem Wurf.
• Wegen Pr(K) =
4.2 Indikator-Zufallsvariablen
1
2
folgt aus Lemma 4.1 E[XK ] = 21 .
TU Bergakademie Freiberg, WS 2005/06
105
Algorithmen und Datenstrukturen
Interessanteres Beispiel: Erwartete Anzahl Köpfe bei n-maligem Wurf.
• Die Zufallsvariable X sei die Anzahl Köpfe in n Würfen.
Pn
• Eine Lösung wäre E[X] = k=0 k · Pr(X = k) (siehe Anhang).
• Alternative: definiere Indikator-Zufallsvariablen
Xi := I({Kopf im i-ten Wurf}).
• Dann ist X =
Pn
i=1
Xi .
• Lemma 4.1: E[Xi ] = Pr(K) =
1
2
(i = 1, 2, . . . , n).
Pn
• Erwartete Anzahl Köpfe ist E[X] = E[ i=1 Xi ].
Linearität des Erwartungswertes ergibt
n
n
n
X
X
X
1
n
= .
E[X] = E[
Xi ] =
E[Xi ] =
2
2
i=1
i=1
i=1
4.2 Indikator-Zufallsvariablen
TU Bergakademie Freiberg, WS 2005/06
106
Algorithmen und Datenstrukturen
Analyse des Einstellungsproblems
Wir bestimmen die erwartete # (Anzahl) Einstellungen.
Bewerberreihenfolge sei zufällig.
Definiere Zufallsvariable X := #Einstellungen.
Definiere Indikatorzufallsvariable
Xi := I({Bewerber i wird eingestellt})
Wieder gilt X =
Pn
i=1
(i = 1, 2, . . . , n).
Xi .
Mit Lemma 4.1: E[Xi ] = Pr({Bewerber I wird eingestellt}).
4.2 Indikator-Zufallsvariablen
TU Bergakademie Freiberg, WS 2005/06
107
Algorithmen und Datenstrukturen
Berechnung von Pr({Bewerber i wird eingestellt}):
• Einstellung von Bewerber i genau dann, wenn dieser besser
qualifiziert als jeder der Bewerber 1, 2, . . . , i − 1 ist.
• Nach Annahme erscheinen die Bewerber in zufälliger Reihenfolge,
somit auch Bewerber 1, 2, . . . , i, folglich ist mit gleicher
Wahrscheinlichkeit jeder dieser Bewerber der bisher Beste.
• Damit: Pr(Bewerber i bisher der Beste) = 1/i, d.h. E[Xi ] = 1/i.
• Insgesamt:
n
n
n
X
X
X
1
E[X] = E[
Xi ] =
E[Xi ] =
= log n + O(1).
i
i=1
i=1
i=1
Erwarteter Aufwand also O(KE log n), was deutlich niedriger ausfällt als
der worst-case Aufwand von O(KE n).
4.2 Indikator-Zufallsvariablen
TU Bergakademie Freiberg, WS 2005/06
108
Algorithmen und Datenstrukturen
4.3
Randomisierte Algorithmen
Deterministischer Algorithmus: Analyse beruht auf Verteilung der
Wahrscheinlichkeiten der Eingaben. Zufall liegt in den Eingaben.
Randomisierter Algorithmus: Kosten abhängig von generierten
Zufallszahlen, ein und dieselbe Eingabe kann zu unterschiedlichen
Laufzeiten führen, es gibt daher keine Best-case- oder
Worst-case-Eingabe. Zufall liegt im Algorithmus.
4.3 Randomisierte Algorithmen
TU Bergakademie Freiberg, WS 2005/06
109
Algorithmen und Datenstrukturen
Modifikation des Pseudocodes zur Randomisierung von
H IRE -P ROGRAMMER:
R ANDOMIZED -H IRE -P ROGRAMMER(n)
Bestimme zufällige Umordnung der Bewerberliste
H IRE -P ROGRAMMER(n)
Lemma 4.2 Die Einstellungskosten des Algorithmus
R ANDOMIZED -H IRE -P ROGRAMMER besitzen einen Erwartungswert von
der Ordnung O(KE log n).
Beweis: Nach der Umordnung liegt dieselbe Situation vor wie beim
deterministischen Algorithmus mit unter Annahme gleichverteilter
Eingaben.
4.3 Randomisierte Algorithmen
TU Bergakademie Freiberg, WS 2005/06
110
Algorithmen und Datenstrukturen
Zufällige Umordnung von Feldern
Wie generiert man eine zufällige Umordnung ?
Ziel: Erzeuge gleichverteilte zufällige Umordnung, d.h. jede der n!
möglichen Permutationen soll mit gleicher Wahrscheinlichkeit generiert
werden.
R ANDOMIZE -I N -P LACE(A, n)
for i ← 1 to n
do vertausche A[i] ↔ A[R ANDOM(i, n)]
Idee: Im i-ten Durchlauf, wähle A[i] zufällig unter A[i . . n]. Nach i-tem
Durchlauf kann A[i] nicht mehr verändert werden.
Laufzeit: Pro Durchlauf O(1), insgesamt also O(n).
4.3 Randomisierte Algorithmen
TU Bergakademie Freiberg, WS 2005/06
111
Algorithmen und Datenstrukturen
Korrektheit: Gegeben sei eine n-elementige Menge. Jedes k-Tupel aus
Elementen dieser Menge (ohne Zurücklegen) bezeichnen wir als
k-Permutation. Hiervon gibt es n!/(n − k)!.
Lemma 4.3 R ANDOMIZE -I N -P LACE erzeugt gleichverteilte Permutationen.
Beweis: verwende Schleifeninvariante
SI: Unmittelbar vor dem i-ten Durchlauf der for-Schleife enthält das
Teilfeld A[1 . . i − 1] jede mögliche (i − 1)-Permutation mit
Wahrscheinlichkeit (n − i + 1)!/n!.
4.3 Randomisierte Algorithmen
TU Bergakademie Freiberg, WS 2005/06
Herunterladen