Paarweise Unabhängigkeit und Universelle Hash Funktionen

Werbung
Thomas Sliwa - Seminar ber Algorithmen - WS 2006/07 - 13. Februar 2007
Paarweise Unabhängigkeit und Universelle Hash Funktionen
1 Paarweise Unabhägigkeit
1.1 Einleitung
Meistens ist die Forderung der totalen Unabhägigkeit von Zufallsvariablen zu streng. Mit Hilfe k-facher bzw. paarweise
unabhägiger Variablen kann man den Grad der Zufäligkeit eines Algorithmus minimieren und so in günstigen Fällen
Algorithmen konstruieren, die effizient und deterministisch zu berechnen sind.
1.2 Definitionen
Definition 13.1.
1. Eine Menge von Ereignissen E1 , E2 , . . . , En ist k-fach unabhängig, wenn für jede beliebige Teilmenge I ⊆ [1, n] mit
|I| ≤ k gilt,
!
\
Y
Pr
Ei =
Pr (Ei ) .
i∈I
i∈I
2. Eine Menge von Zufallsvariablen X1 , X2 , . . . , Xn ist k-fach unabhängig, wenn für jede beliebige Teilmenge I ⊆ [1, n]
mit |I| ≤ k und für alle Werte xi mit i ∈ I gilt,
!
\
Y
Pr
Xi = xi =
Pr (Xi = xi ) .
i∈I
i∈I
3. Die Zufallsvariablen X1 , X2 , . . . , Xn heißen paarweise unabhängig, wenn sie 2-fach Unabhängig sind. Dies bedeutet,
dass für jedes Paar i, j und beliebige Werte a, b gilt,
Pr ((Xi = a) ∩ (Xj = b)) = Pr (Xi = a) Pr (Xj = b) .
1.3 Die Konstruktion paarweise unabhängiger Bits
Zufallsbits sind gleichverteilt, wenn sie die Werte 0 und 1 mit gleicher Wahrscheinlichkeit annehmen. Es sollen m = 2b −1
gleichverteilte, paarweise unabhängige Zufallsbits aus b unabhängigen Zufallsbits X1 , X2 , . . . , Xb konstruiert werden.
Dazu nummeriert man die 2b − 1 nicht leeren Teilmengen mit den Elementen {1, 2, . . . , b} in beliebiger Reihenfolge und
lässt Sj die j-te Teilmenge benennen. Schließlich setzte man
M
X
Yj =
Xi bzw. Yi =
Xi mod 2.
i∈Sj
i∈Sj
Dann gilt folgendes Lemma.
Lemma 13.1. Die Yi sind paarweise unabhängig, gleichverteilte Zufallsbits.
“L
”
Beweis. Sei z das grösste Element von Sj , dann ist Yj =
i∈Sj −{z} Xi ⊕ Xz . Hat man nun alle Werte der Xi bis auf
Xz ermittelt, weiss man, dass Xz den Wert von Yj gleichverteilt bestimmt.
Nun betrachtet man zwei Variablen Yk und Yl , deren Mengenzusammensetzung sich nur um das Element z unterscheidet, d.h. z ist Element von Sl aber nicht Sk . Man bedingt nun für beliebige Werte c, d ∈ {0, 1}: P r (Yl = d | Yk = c). Wir
sehen nun, dass diese Wahrscheinlichkeit 1/2 beträgt. Denn wenn wir nun alle Werte Xi aus der Menge (Sk ∪ Sl ) − {z}
kennen, dann steht der Wert von Yk bereits fest und der Wert von Yl wird nur noch von dem gleichverteilten Wert von
Xz bestimmt. Somit nimmt der Wert von Yk keinerlei Einfluß auf den Wert von Yl . Somit gilt schließlich,
Pr ((Yk = c) ∩ (Yl = d))
=
Pr (Yl = d | Yk = c) Pr (Yk = c)
=
Pr (Yl = d) Pr (Yk = c)
1
4
=
1
Thomas Sliwa - Seminar ber Algorithmen - WS 2006/07 - 13. Februar 2007
1.4 Konstruktion paarweise unabhängiger Werte modulo einer Primzahl
Gleichverteilte, paarweise unabhängige Werte Y0 , Y1 , . . . , Yp−1 lassen sich auch aus einer Menge {0, 1, . . . , p − 1}, wobei
p eine Primzahl ist, generieren. Dazu benötigt man nur zwei unabhängige, gleichverteilte Werte X1 und X2 aus dieser
Menge und konstruiert die Yi folgendermaßen:
fr i = 0, 1, . . . , p − 1.
Yi = X1 + iX2 mod p
Lemma 13.2. Die Variablen Y0 , Y1 , . . . , Yp−1 sind paarweise unabhängige, gleichverteilte Zufallsvariablen über
{0, 1, . . . , p − 1}.
Beweis. Sei ein X2 gegeben, dann gibt es p mögliche verschiedene Werte für X1 , die dann p verschiedene Werte für
Yi mod p bedingen. Diese p verschiedenen Werte sind dann gleichwahrscheinlich, da X1 und X2 gleichverteilt sind.
Nimmt man nun beliebige Variablen Yi und Yj . Dann muß man, um die paarweise Unabhängigkeit zu zeigen, zeigen,
dass für beliebige a, b ∈ {0, 1, . . . , p − 1} gilt
Pr ((Yi = a) ∩ (Yj = b)) =
1
.
p2
Die Ereignisse Yi = a und Yj = b kann man auch schreiben als
X1 + iX2 = a mod p und X1 + jX2 = b mod p.
Dieses Gleichungssystem hat die Lösung
X2 =
i (b − a)
b−a
mod p und X1 = a −
mod p.
j−i
j−i
Nach Voraussetzung sind X1 und X2 ja aber unabhängig und gleichverteilt und somit sind beliebige Yi und Yj paarweise
unabhängig.
1.5 Die Tschebyschow Ungleichung für paarweise unabhängige Variablen
Wie gesehen kann man mit Chernoff Schranken die äußeren Bereiche einer Wahrscheinlichkeitsverteilung sehr gut
abschätzen. Dies geht allerdings nur, wenn die Zufallsvariablen unabhängig voneinander sind. Allerdings kann man die
Varianz einer Summe von paarweise unabhängigen Zufallsvariablen berechnen und somit die Tschebyschow Ungleichung
dann auf diese anwenden.
P
Satz 13.3. Sei X = n
i=1 Xi , wobei die Xi paarweise unabhängige Zufallsvariablen sind, dann ist
Var [X] =
n
X
Var [Xi ] .
i=1
Beweis. Im Kapitel Moments and Deviations haben wir gesehen, dass
#
" n
n
X
X
X
Cov (Xi , Xj ) .
Var [Xi ] + 2
Var
Xi =
i=1
i<j
i=1
Da die X − 1, X2 , . . . , Xn alle paarweise unabhängig sind, gilt analog zu Satz 3.3, dass für beliebige i 6= j
E [Xi Xj ] − E [Xi ] E [Xj ] = 0 gilt.
Wendet man auf die Summe der paarweise unabhängigen Zufallsvariablen dann die Tschebyschow Ungleichung an
erhält man folgendes Korollar.
P
Korollar 13.4. Sei X = n
i=1 Xi , wobei die Xi paarweise unabhängig sind, dann ist
Pn
Var [X]
i=1 Var [Xi ]
Pr (|X − E [X]| ≥ a) ≤
=
a2
a2
2
Thomas Sliwa - Seminar ber Algorithmen - WS 2006/07 - 13. Februar 2007
2 Universelle Hash Funktionen
2.1 Einleitung
Betrachtet man Hashfunktionen absolut gleichverteilt und unabhängig in Bezug auf die erzeugten Hashwerte
h (x1 ) , h (x2 ) , . . . , h (xk ) für die Elemente x1 , x2 , . . . , xk , kann man zwar theoretisch gut arbeiten und Eigenschaften
herleiten und beweisen. Allerdings ist dieses Modell nicht einfach zu implementieren, da diese total zufälligen Hashfunktionen zu komplex in der Berechnung und Speicherung sind.
Daher schränkt man in der Umsetzung die Anforderungen ein. Einerseits durch Pseudo–zufällige Funktionen, die zwar
einfach umzusetzen und zu berechnen sind, aber keine Garantien liefern. Andererseits benutzt man Hashfunktionen, die
die strengen Forderungen der totalen Zufälligkeit abschwächen, dafür aber gewisse nachweisbare Garantien liefern und
effizient in Bezug auf Berechnung und Speicherung sind. Diese sollen folgend vorgestellt werden.
Definition 13.2. Sei U ein Universum mit |U | ≥ n und sei V = {0, 1, . . . , n − 1}.
Eine Familie von Hashfunktionen H, die von U nach V abbilden, heißt k-universell, wenn für jedes Element
x1 , x2 , . . . , xk ∈ U und eine gleichverteilt zufällig gewählte Hashfunktion h ∈ H die Wahrscheinlichkeit
Pr (h (x1 ) = h (x2 ) = . . . = h (xk )) ≤
1
gilt.
nk−1
Eine Familie von Hashfunktionen H, die von U nach V abbilden, heißt streng k-universell, wenn für jedes Element
x1 , x2 , . . . , xk ∈ U und jeden Wert y1 , y2 , . . . , yk ∈ V sowie eine gleichverteilt zufällig gewählte Hashfunktion h ∈ H die
Wahrscheinlichkeit
1
Pr ((h (x1 ) = y1 ) ∩ (h (x2 ) = y2 ) ∩ . . . ∩ (h (xk ) = yk )) = k gilt.
n
Somit geben Hashfunktionen aus 2-universellen Familien die Garantie, dass zwei Hashwerte h (x1 ) und h (x2 ) mit einer
Wahrscheinlichkeit von 1/n den gleichen Wert ergeben, was allerdings nicht für drei Werte h (x1 ) , h (x2 ) , h (x3 ) gilt.
Ist die Familie streng 2-universell gilt weiterhin, dass die Werte der Hashfunktion paarweise unabhängig sind, da die
Wahrscheinlichkeit, dass es zu einer Kollision kommt 1/n2 beträgt. Man nennt streng 2-universelle Hashfunktionen auch
paarweise unabhängige Hashfunktionen.
2.2 2-universelle Familien von Hashfunktionen
Sei das Universum U die Menge {0, 1, . . . , m − 1} und sei die Wertebereich der Hashfunktionen V = {0, 1, . . . , n},
wobei m ≥ n. Dann betrachten wir die Familie von Hashfunktionen unter der hinzugezogenen Primzahl p ≥ m, so dass
für die Funtktionen
ha,b (x) = ((ax + b) mod p) mod n
gilt und somit die Familie
H = {ha,b | 1 ≤ a ≤ p − 1, 0 ≤ b ≤ b} ist.
Dann gilt folgendes Lemma.
Lemma 13.5. H ist 2-universell
2.3 Streng 2-universelle Familien von Hashfunktionen
ändert man die Konstuktion der Hashfunktionen des vorherigen Abschnitts dahingehend, dass nun das Universums
U und der Wertebereich der Hashfunktionen aus {0, 1, . . . , p − 1} unter der Bedingung, dass p Primzahl ist, sind, kann
man eine streng 2-universelle Familie definieren. Somit sind die einzelnen Funktionen der Form
ha,b (x) = (ax + b) mod p
und die Funktionenfamile
H = {ha,b | 0 ≤ a, b ≤ p − 1} .
Dann gilt folegendes Lemma.
Lemma 13.6. H ist streng 2-universell.
Nun hat man zwar paarweise unabhängige Hashfunktionen konstruiert, da aber U und V die gleiche Mächtigkeit
haben, ist das Resultat nicht praktikabel. Die Schlüsselmenge ist ja von der gleichen Mächtigkeit, wie die Menge der zu
speichernden Elemente.
3
Thomas Sliwa - Seminar ber Algorithmen - WS 2006/07 - 13. Februar 2007
Man erweitert die Konstruktion dahingehend, dass das Universum grösser sein˘ kann. Dazu sei
¯ weiterhin V =
{0, 1, . . . , p − 1} mit einer Primzahl p. Das Universum ist allerdings definiert mit U = 0, 1, . . . , pk − 1 mir der Primzahl
p und einer ganzen Zahl k. Somit kann man die Elemente u aus UPals Vektoren der Form ~
u = (u1 , u2 , . . . , uk ) betrachten,
k−1
ui pi = u. Für jeden Vektor ~a = (a0 , a1 , . . . , ak−1 ),
wobei für die ui gilt, 0 ≤ ui ≤ p − 1 und 0 ≤ i ≤ k − 1 und somit i=0
wobei 0 ≤ a ≤ p − 1 und 0 ≤ i ≤ k − 1 sind, und einen beliebigen Wert b dann die Hashfunktionen durch
!
k−1
X
h~a,b (u) =
ai ui + b mod p und die Funktionenfamile durch
i=0
H = {h~a,b | 0 ≤ ai , b ≤ p − 1fr alle0 ≤ i ≤ k − 1} .
Dann gilt folgendes Lemma.
Lemma 13.7. H ist streng 2-universell.
2.4 Perfektes Hashen
Perfektes Hashen wird für statische Verzeichnisse verwendet. Statische Verzeichnisse sind dadurch charakteresiert, dass
auf den Inhalt des Verzeichnisses nach Eingabe nur noch suchend zugegriffen wird. Somit hat man als Ergebnis einer
Suche entweder die Speicherstelle des Elements oder die Information, dass sich das Element nicht im Verzeichnis befindet,
als Rückgabewert.
Gegeben ist eine Menge S von Werten, dann soll eine Hashtabelle derart konstruiert werde, dass man konkrete Aussagen
über das worst-case Verhalten treffen kann. Wenn man von perfekten Hashen redet meint man dann eine Suche im
Verzeichnis mit einer konstanten Anzahl von Operationen. Falls man viel Platz für das Verzeichnis hat und eine passende
Familie 2-universeller Hashunktionen, gilt folgendes Lemma.
Lemma 13.8. Wenn h ∈ H gleichverteilt zufällig aus einer 2-universellen Familie von Hashfunktionen, die das Universum U nach [0, n − 1]abbilden, gewählt wird, dann ist für jede Teilmenge S ⊂ U der Grösse m die Wahrscheinlichkeit,
dass h perfekt hasht, midestens 1/2, wenn n ≥ m2 .
Nun will man aber den benötigten Speicherplatz minimieren bzw. einschränken, da man bisher m2 Speicherstellen
benötigt um m Elemente zu speichern. Dazu ändernt man die Konstruktion auf ein zweistufiges Hashen. Man hasht
die Werte zuerst mit einer Hashfunktionen aus einer Famile 2-universeller Hashfunktionen in ein Verzeichnis mit m
Speicherstellen. Da es zu Kollisionen kommen kann, sucht man sich für jede dieser Speicherstellen aus einer entsprechenden
Familie 2-universeller Hashfunktionen eine Funktion aus. Diese wird dann nach dem vorherigen Lemma kollisionsfrei k
Elemente hashen, wenn die grösse des Unterverzeichnisses k2 beträgt. Wählt man die Funktion für das Gesamtverzeichnis
entsprechend, dann gilt folgender Satz.
Satz 13.9. Ein zweistufiger Ansatz liefert ein Schema für perfektes hashen von m Elementen in O (m) Containern.
4
Herunterladen