bedingte Wahrscheinlichkeit

Werbung
Datenstrukturen und Algorithmen
Christian Sohler
FG Algorithmen & Komplexität
1
Ein Datenbank-Problem
Problem:
• Gegeben sind n Objekte O1,.., O n mit zugehörigen
Schlüsseln s(O i )
Operationen:
• Suche(x); Ausgabe O mit Schlüssel s(O) =x;
nil, falls kein Objekt mit Schlüssel x in Datenbank
• Einfügen(O); Einfügen von Objekt O in Datenbank
• Löschen(O); Löschen von Objekt O mit aus der
Datenbank
2
Ein Datenbank-Problem
AVL-Bäume:
• Ausgabe aller Elemente in O(n)
• Suche, Minimum, Maximum, Nachfolger in O(log n)
• Einfügen, Löschen in O(log n)
Frage:
• Kann man Einfügen, Löschen und Suchen in O(1) Zeit?
3
Hashing
Felder mit direkter Adressierung
•
•
•
•
Dynamische Menge aus Universum U={0,…,m-1}
Keine zwei Elemente haben denselben Schlüssel
Weitere Daten
Feld T[0,…,m-1]
Position in T entspricht Schlüssel aus U 0 nil Schlüssel
1 nil
2
2
nil
Universum U
0
1
4
5
3
6
2
nil
5
7
6
7 nil
Genutzte Schlüsselmenge
4
Hashing
Operationen:
DirectAddressSeach(T,k)
1. return T[k]
DirectAddressInsert(T,x)
1. T[key[x]] ← x
DirektAddressDelete(T,x)
1. T[key[x]] ← nil
5
Hashing
Operationen:
DirectAddressSeach(T,k)
1. return T[k]
Laufzeit:
O(1)
DirectAddressInsert(T,x)
1. T[key[x]] ← x
DirektAddressDelete(T,x)
1. T[key[x]] ← nil
6
Hashing
Zusammenfassung (direkte Adressierung):
• Einfügen, Löschen, Suche in O(1) Zeit
• Speicherbedarf O(|U|)
• Schlecht, wenn Universum groß ist (normal)
Hashing
• Reduktion des Speicherbedarfs auf O(n), wobei n die
aktuell gespeicherte Anzahl Schlüssel ist
• Gute durchschnittliche Laufzeit
7
Hashing
Hashing
• Hash Tabelle T[0,…,m-1]
• Hash Funktion h: U → {0,1,…,m-1}
• Speichere Element mit Schlüssel k in Adresse h(k)
0 nil
1 nil
h(k 3 )
2
nil
h(k 6 )
Universum U
k5
k3
k4
k2
k6
k1
nil
h(k 2 )=h(k4 )
7 nil
8
Genutzte Schlüsselmenge
Hashing
Hashing
• Hash Tabelle T[0,…,m-1]
• Hash Funktion h: U → {0,1,…,m-1}
• Speichere Element mit Schlüssel k in Adresse h(k)
0 nil
1 nil
h(k 3 )
2
nil
h(k 6 )
Universum U
k5
k3
k4
k2
k6
k1
nil
h(k 2 )=h(k4 )
7 nil
Genutzte Schlüsselmenge
Kollision!
9
Hashing
Hashing mit Verkettung
•
•
•
•
Hash Tabelle T[0,…,m-1]
Hash Funktion h: U → {0,1,…,m-1}
Speichere Element mit Schlüssel k in Adresse h(k)
0 nil
Löse Kollisionen mit Liste auf
1 nil
k3
2
nil
k6
Universum U
k5
k3
k4
k2
k6
k1
nil
k4
k2
7 nil
10
Genutzte Schlüsselmenge
Hashing
Operationen:
ChainedHashInsert(T,x)
1. Füge x am Ende der Liste T[h(key[x])] ein
ChainedHashSearch(T,k)
1. Suche nach Element mit Schlüssel k in Liste T[h(k)]
ChainedHashDelete(T,x)
1. Lösche x aus der Liste T[h(key[x])]
11
Hashing
Wie sieht eine gute Hash Funktion aus?
• Elemente sollten „gleichmäßig“ verteilt werden
• Guter Kandidat wäre z.B. eine zufällige Funktion
(die natürlich nur einmal zufällig ausgewählt wird und
dann fest ist)
• Sobald h festliegt, gibt es immer schlechte Eingabe
• Worst-Case Laufzeit O(n)
Last Faktor α:
• Durchschnittliche Länge einer Kollisionsliste, d.h. α=n/m
12
Hashing
Idee:
• Wähle h zufällig
13
Hashing
Idee:
Was bedeutet das?
• Wähle h zufällig
14
Hashing
Idee:
• Wähle h zufällig
Annahme (einfaches uniformes Hashing):
• Jedes Element wird von h gleichhäufig (mit gleicher
Wahrscheinlichkeit) auf jeden Eintrag 0,…,m-1 der Hash
Tabelle abgebildet. Dies geschieht unabhängig davon,
wohin die anderen Elemente abgebildet werden.
Weitere Annahme:
• h(k) kann in konstanter Zeit berechnet werden
15
Hashing
Satz 24
In einer Hash Tabelle, deren Kollisionen mit Verkettung
aufgelöst werden, benötigt eine nicht erfolgreiche Suche
Θ(1+α) durchschnittliche Laufzeit unter der Annahme
des einfachen uniformen Hashing.
Satz 25
In einer Hash Tabelle, deren Kollisionen mit Verkettung
aufgelöst werden, benötigt eine erfolgreiche Suche
Θ(1+α) durchschnittliche Laufzeit unter der Annahme
des einfachen uniformen Hashing.
16
Hashing
Interpretation:
• Ist die Größe der Hashtabelle proportional zur Anzahl
gespeicherter Elemente, dann ist die durchschnittliche
Laufzeit O(1).
Fragen:
• Gibt es Hash Funktionen, die die Annahme einfaches
uniformes Hashing erfüllen?
17
Hashing
Interpretation:
• Ist die Größe der Hashtabelle proportional zur Anzahl
gespeicherter Elemente, dann ist die durchschnittliche
Laufzeit O(1).
Fragen:
Ja, z.B. eine zufällige
Funktion von U nach
{0,…,m-1}
• Gibt es Hash Funktionen, die die Annahme einfaches
uniformes Hashing erfüllen?
18
Hashing
Interpretation:
• Ist die Größe der Hashtabelle proportional zur Anzahl
gespeicherter Elemente, dann ist die durchschnittliche
Laufzeit O(1).
Fragen:
• Gibt es Hash Funktionen, die die Annahme einfaches
uniformes Hashing erfüllen?
• Kann man diese effizient konstruieren und abspeichern?
19
Hashing
Interpretation:
• Ist die Größe der Hashtabelle proportional zur Anzahl
gespeicherter Elemente, dann ist die durchschnittliche
Laufzeit O(1).
|U|
Fragen:
Nein. Es gibt m
Funktionen und somit
benötigen wir mindestens
|U|⋅log m Bits, um eine solche
(zufällige)einfaches
Funktion eindeutig
Annahme
zu kodieren.
• Gibt es Hash Funktionen, die die
uniformes Hashing erfüllen?
• Kann man diese effizient konstruieren und abspeichern?
20
Hashing
Interpretation:
• Ist die Größe der Hashtabelle proportional zur Anzahl
gespeicherter Elemente, dann ist die durchschnittliche
Laufzeit O(1).
Fragen:
• Gibt es Hash Funktionen, die die Annahme einfaches
uniformes Hashing erfüllen?
• Kann man diese effizient konstruieren und abspeichern?
• Wie konstruiert man gute Hash Funktionen?
21
Hashing
Interpretation:
• Ist die Größe der Hashtabelle proportional zur Anzahl
gespeicherter Elemente, dann ist die durchschnittliche
Laufzeit O(1).
Fragen:
Man nimmt sich eine kleinere
Klasse von Funktionen mit
der Eigenschaft, dass eine
zufällige Funktion aus dieser
Annahme
Klasseeinfaches
sich ähnlich verhält
wie eine zufällige Funktion
von U nach {0,..,m-1}.
• Gibt es Hash Funktionen, die die
uniformes Hashing erfüllen?
• Kann man diese effizient konstruieren und abspeichern?
• Wie konstruiert man gute Hash Funktionen?
22
Wahrscheinlichkeiten
Definition (Wahrscheinlichkeitsraum):
Ein Wahrscheinlichkeitsraum S ist Menge von Elementarereignissen.
Ein Elementarereignis kann als der Ausgang eines
(Zufalls)experiments betrachtet werden.
Beispiel:
•
•
•
•
Münzwurf mit zwei unterscheidbaren Münzen
Ergebnis eines Münzwurfs können wir als Zeichenkette der Länge 2
über {K,Z} (Kopf, Zahl) darstellen
Wahrscheinlichkeitsraum ist S={KK,KZ,ZK,ZZ}
Elementarereignisse sind also die möglichen Ausgänge des
Münzwurfs
23
Wahrscheinlichkeiten
Definition (Ereignis):
Ein Ereignis ist eine Untermenge eines Wahrscheinlichkeitsraums. (Diese Definition ist etwas vereinfacht, aber für
unsere Zwecke asureichend)
Beispiel:
• {KK, KZ, ZK} ist das Ereignis, dass bei unserem Münzwurf
mindestens eine Münze Kopf zeigt
24
Wahrscheinlichkeiten
Definition(Wahrscheinlichkeitsverteilung)
Eine Wahrscheinlichkeitsverteilung Pr{} auf einem
Wahrscheinlichkeitsraum S ist eine Abbildung der
Ereignisse von S in die reellen Zahlen, die folgende Axiome
erfüllt:
1. Pr{A} ≥ 0 für jedes Ereignis A
2. Pr{S}=1
3. Pr{A∪B} = Pr{A}+Pr{B} für alle Ereignisse A,B mit A∩B=∅
Pr{A} bezeichnet die Wahrscheinlichkeit von Ereignis A
25
Wahrscheinlichkeiten
Beispiel:
• Bei einem fairen Münzwurf haben wir Pr{A} = 1/4 für
jedes Elementarereignis A∈{KK,KZ,ZK,ZZ}
• Die Wahrscheinlichkeit für das Ereignis {KK,KZ,ZK}
(„mindestens eine Münze zeigt Kopf“) ist
Pr{{KK,KZ,ZK}} = Pr{KK} + Pr{KZ} + Pr{ZK} = ¾
Bemerkung:
Eine Verteilung, bei der jedes Elementarereignis aus S
dieselbe Wahrscheinlichkeit hat, nennen wir auch
Gleichverteilung über S.
26
Wahrscheinlichkeiten
Das Quizmaster Problem:
•
•
•
•
•
3 Türen
Hinter einer Tür ist Hauptgewinn
Hinter den anderen beiden Türen sind Nieten
Kandidat wählt eine von 3 Türen
Der Quizmaster hilft und öffnet eine der Türen, hinter
denen eine Niete ist
• Der Kandidat darf nun die Tür wechseln oder bei seiner
bisherigen Auswahl bleiben
• Was soll der Kandidat tun?
27
Wahrscheinlichkeiten
Wahrscheinlichkeitsraum:
• S={HNN,NHN, NNH}
(H: Hauptgewinn, N Niete)
Wahrscheinlichkeitsverteilung:
• Pr{HNN}=Pr{NHN}= Pr{NNH} = 1/3
Kandidat wählt Tür 1:
• Gewinnwahrscheinlichkeit: Pr{HNN}=1/3
• Andere Türen identisch
28
Wahrscheinlichkeiten
Der Quizmaster öffnet eine Tür:
• Bei Ereignis HNN ist es schlecht zu wechseln
• Bei Ereignis NHN findet man nach dem Wechseln den
Hauptgewinn, denn dann hat der Quizmaster Tür 3 geöffnet
• Bei Ereignis NNH findet man nach dem Wechseln den
Hauptgewinn, denn dann hat der Quizmaster Tür 2 geöffnet
29
Wahrscheinlichkeiten
Der Quizmaster öffnet eine Tür:
• Bei Ereignis HNN ist es schlecht zu wechseln
• Bei Ereignis NHN findet man nach dem Wechseln den
Hauptgewinn, denn dann hat der Quizmaster Tür 3 geöffnet
• Bei Ereignis NNH findet man nach dem Wechseln den
Hauptgewinn, denn dann hat der Quizmaster Tür 2 geöffnet
Wechseln ist gute Strategie:
• Der Kandidat gewinnt mit Wahrscheinlichkeit
Pr{{NHN,NNH}}=2/3, wenn er die Tür wechselt
30
Wahrscheinlichkeiten
Abhängigkeiten:
• Was passiert, wenn man schon etwas über den Ausgang
eines Zufallsexperiments weiß?
Frage:
• Jemand hat beobachtet, dass der Ausgang des
Münzwurfs mit zwei Münzen mindestens einmal Kopf
zeigt. Wie groß ist die Wahrscheinlichkeit für zweimal
Kopf?
31
Wahrscheinlichkeiten
Definition (bedingte Wahrscheinlichkeit):
Die bedingte Wahrscheinlichkeit eines Ereignisses A unter
der Voraussetzung, dass Ereignis B auftritt ist
Pr{A | B} = Pr{A∩B} / Pr{B},
wenn Pr{B}≠0 ist.
32
Wahrscheinlichkeiten
Beispiel:
• Jemand beobachtet den Ausgang unseres
Münzwurfexperiments und sagt uns, dass es mindestens
einmal Zahl gibt
• Was ist die Wahrscheinlichkeit für zweimal Zahl
(Ereignis A) unter dieser Beobachtung (Ereignis B)?
• Pr{A|B} = (1/4) /(3/4) =1/3
33
Wahrscheinlichkeiten
Definition (Zufallsvariable)
Eine Zufallsvariable X ist eine Funktion von einem
Wahrscheinlichkeitsraum in die reellen Zahlen.
Bemerkung:
• Eine Zufallsvariable liefert uns zu jedem Ausgang eines
Zufallsexperiments einen Wert
34
Wahrscheinlichkeiten
Beispiel:
• Wurf zweier Münzen
• Sei X Zufallsvariable für die Anzahl Münzen, die Zahl
zeigen
• X(KK)=0, X(KZ)=1, X(ZK)=1, X(ZZ)=2
35
Wahrscheinlichkeiten
Für Zufallsvariable X und reelle Zahl x können wir das
Ereignis X=x definieren als {s∈S:X(s)=x}. Damit gilt:
Pr{X=x} =Σ Pr{s}
{s∈S:X(s)=x}
Beispiel:
• Was ist die Wahrscheinlichkeit, dass wir bei zwei
Münzwürfen genau einen Kopf erhalten?
• Pr{X=1} = Pr{KZ}+Pr{ZK} = ½
(bei derselben Definition von X wie auf der letzten Folie)
36
Wahrscheinlichkeiten
Definition (Erwartungswert):
• Der Erwartungwert einer Zufallsvariable ist definiert als
E[X] = Σ x ⋅ Pr{X=x}
x
Interpretation:
• Der Erwartungswert gibt den „durchschnittlichen“ Wert
der Zufallsvariable an, wobei die Wahrscheinlichkeiten
der Ereignisse berücksichtigt werden
37
Wahrscheinlichkeit
Beispiel:
• Erwartete Anzahl „Kopf“ bei 2 Münzwürfen
• E[X] = 0 ⋅ Pr{X=0} + 1 ⋅ Pr{X=1} + 2 ⋅ Pr{X=2}
=0+½+2⋅¼
=1
38
Wahrscheinlichkeiten
Linearität des Erwartungswerts:
• E[X + Y] = E[X] + E[Y]
Bemerkung:
• Eine der wichtigsten Formeln im Bereich randomisierte
Algorithmen
Anwendung:
• Man kann komplizierte Zufallsvariable als Summe
einfacher Zufallsvariablen schreiben und dann den
Erwartungswert der einfachen Zufallsvariablen
bestimmen
39
Wahrscheinlichkeiten
Zusammenfassung:
• Wahrscheinlichkeitsraum S aus Elementarereignissen
• Ereignisse sind Untermengen von S
• Wahrscheinlichkeitsverteilung gibt Wahrscheinlichkeiten von
Ereignissen vor
• Zufallsvariable ordnet Elementarereignissen einen Wert zu
• Erwartungswert gibt „durchschnittlichen“ Wert einer
Zufallsvariable an
40
Hashing
Ausblick:
• Entwurf spezieller Klassen von Funktionen, so dass eine
zufällige Funktion aus einer solchen Klasse im
Erwartungswert gut für beliebige Eingabe ist
41
Herunterladen