• Keine Ergebnisse gefunden

h ( x )= a x mod p mod n f¨uralle x ∈ U. X    Sei U = { 0 ,...,p − 1 } f¨ureinePrimzahl p .Zun¨achsteinigemathematischeGrundlagen. ∈ Z [ x ] vomGrad <k ,wobeimit ~a =( a ,...,a ) ∈ U 4.4.2DynamischesperfektesHashing H Definition36 bezeichneindiesem

N/A
N/A
Protected

Academic year: 2021

Aktie "h ( x )= a x mod p mod n f¨uralle x ∈ U. X    Sei U = { 0 ,...,p − 1 } f¨ureinePrimzahl p .Zun¨achsteinigemathematischeGrundlagen. ∈ Z [ x ] vomGrad <k ,wobeimit ~a =( a ,...,a ) ∈ U 4.4.2DynamischesperfektesHashing H Definition36 bezeichneindiesem"

Copied!
16
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

4.4.2 Dynamisches perfektes Hashing

Sei U = {0, . . . , p − 1} f¨ ur eine Primzahl p. Zun¨ achst einige mathematische Grundlagen.

Definition 36

H k,n bezeichne in diesem Abschnitt die Klasse aller Polynome

∈ Z p [x] vom Grad < k, wobei mit ~a = (a 0 , . . . , a k−1 ) ∈ U k

h ~ a (x) =

k−1

X

j=0

a j x j

 mod p

 mod n f¨ ur alle x ∈ U .

EADS 4.4 Perfektes Hashing 138/598

ľErnst W. Mayr

(2)

Definition 37

Eine Klasse H von Hashfunktionen von U nach {0, . . . , n − 1}

heißt (c, k)-universell, falls f¨ ur alle paarweise verschiedenen x 0 , x 1 , . . . , x k−1 ∈ U und f¨ ur alle i 0 , i 1 , . . . , i k−1 ∈ {0, . . . , n − 1}

gilt, dass

Pr[h(x 0 ) = i 0 ∧ · · · ∧ h(x k−1 ) = i k−1 ] ≤ c

n k ,

wenn h ∈ H gleichverteilt gew¨ ahlt wird.

(3)

Satz 38

H k,n ist (c, k)-universell mit c = (1 + n p ) k .

Beweis:

Da Z p ein K¨ orper ist, gibt es f¨ ur jedes Tupel (y 0 , . . . , y k−1 ) ∈ U k genau ein Tupel (a 0 , . . . , a k−1 ) ∈ Z k p mit

k−1

X

j=0

a j x j r = y r mod p f¨ ur alle 0 ≤ r < k.

Da es sich hier um eine Vandermonde-Matrix handelt, folgt, dass

|{~a; h ~ a (x r ) = i r mod n f¨ ur alle 0 ≤ r < k}|

= |{(y 0 , . . . , y k−1 ) ∈ U k ; y r = i r mod n f¨ ur alle 0 ≤ r < k}|

≤ l p n

m k

.

EADS 4.4 Perfektes Hashing 140/598

ľErnst W. Mayr

(4)

Beweis (Forts.):

Da es insgesamt p k M¨ oglichkeiten f¨ ur ~a gibt, folgt Pr[h(x r ) = i r f¨ ur alle 0 ≤ r < k] ≤ l p

n m k

· 1 p k

= l p

n m

· n p

k

· 1 n k

<

1 + n

p k

· 1

n k .

(5)

Kuckuck-Hashing f¨ ur dynamisches perfektes Hashing

Kuckuck-Hashing arbeitet mit zwei Hashtabellen, T 1 und T 2 , die je aus den Positionen {0, . . . , n − 1} bestehen. Weiterhin ben¨ otigt es zwei (1 + δ, O(log n))-universelle Hashfunktionen h 1 und h 2 f¨ ur ein gen¨ ugend kleines δ > 0, die die Schl¨ usselmenge U auf

{0, . . . , n − 1} abbilden.

Jeder Schl¨ ussel x ∈ S wird entweder in Position h 1 (x) in T 1 oder in Position h 2 (x) in T 2 gespeichert, aber nicht in beiden. Die IsElement-Operation pr¨ uft einfach, ob x an einer der beiden Positionen gespeichert ist.

EADS 4.4 Perfektes Hashing 142/598

ľErnst W. Mayr

(6)

Die Insert-Operation verwendet nun das Kuckucksprinzip, um neue Schl¨ ussel einzuf¨ ugen. Gegeben ein einzuf¨ ugender Schl¨ ussel x, wird zun¨ achst versucht, x in T 1 [h 1 (x)] abzulegen. Ist das erfolgreich, sind wir fertig.

Falls aber T 1 [h 1 (x)] bereits durch einen anderen Schl¨ ussel y besetzt ist, nehmen wir y heraus und f¨ ugen stattdessen x in T 1 [h 1 (x)] ein.

Danach versuchen wir, y in T 2 [h 2 (y)] unterzubringen. Gelingt das, sind wir wiederum fertig. Falls T 2 [h 2 (y)] bereits durch einen anderen Schl¨ ussel z besetzt ist, nehmen wir z heraus und f¨ ugen stattdessen y in T 2 [h 2 (y)] ein. Danach versuchen wir, z in

T 1 [h 1 (z)] unterzubringen, und so weiter, bis wir endlich den zuletzt

angefassten Schl¨ ussel untergebracht haben. Formal arbeitet die

Insert-Operation wie folgt:

(7)

if T 1 [h 1 (x)] = x then return fi repeat MaxLoop times

(a) exchange x und T 1 [h 1 (x)]

(b) if x = NIL then return fi (c) exchange x und T 2 [h 2 (x)]

(d) if x = NIL then return fi od

rehash(); Insert(x)

EADS 4.4 Perfektes Hashing 144/598

ľErnst W. Mayr

(8)

F¨ ur die Analyse der Zeitkomplexit¨ at nehmen wir an, dass die Schleife t-mal durchlaufen wird (wobei t ≤ MaxLoop).

Es gilt, die folgenden zwei F¨ alle zu betrachten:

1

Die Insert-Operation ger¨ at w¨ ahrend der ersten t Runden in eine Endlosschleife

2

Dies ist nicht der Fall

(9)

x 1 x 2 x 3 x l

x 1 x 2 x 3 . . . x j . . . x i

. . .

x 1 x 2 x 3 . . . x j . . . x i

. . . x i+j+1 x i+j+2 x i+j+3

x i+j+2 x i+j+3 x i+j+1

(a)

(b)

(c)

. . . . .

. . . . . x l

x x

. . . . . .

. . . j’ l

Abbildung 3: Drei F¨alle f¨ur den Ausgang der Insert Operation. (a): Es wird keine Position zweimal besucht. (b): x i besucht die Position von x j , was dazu f¨uhrt, dass alle Schl¨ussel x j , . . . , x 2 wieder in ihre Ausgangspositionen zur¨uckgeschoben werden. x 1 versucht daraufhin die andere Alternativpositi- on, und hier terminiert die Kuckucksregel in x ℓ . (c): x i besucht die Position von x j und x ℓ besucht die Position von x j

, was zu einer Endlosschleife f¨uhrt.

2. Die Insert Operation formt keine Endlosschleife w¨arend der ersten t Runden.

Wir untersuchen zun¨achst den ersten Fall. Sei v ≤ ℓ die Anzahl der verschiedenen angefassten Schl¨ussel. Dann ist die Anzahl der M¨oglichkeiten, eine Endlosscheife zu formen, h¨ochstens

v 3 · s v−1 · n v−1

da es maximal v 3 M¨oglichkeiten f¨ur die Werte i, j und ℓ in Abb. 3 gibt, s v−1 viele M¨oglichkeiten f¨ur die Positionen der Schl¨ussel gibt, und n v−1 viele M¨oglichkeiten f¨ur die Schl¨ussel außer x 1 gibt.

Angenommen, wir haben (1, v)-universelle Hashfunktionen, dann passiert jede M¨oglichkeit nur mit einer Wahrscheinlichkeit von s −2v . Falls nun s ≥ (1 + ǫ)n f¨ur eine Konstante ǫ > 0, dann ist die Wahrscheinlichkeit f¨ur den Fall 1 h¨ochstens

X ℓ v=3

v 3 s v−1 n v−1 s −2v ≤ 1 sn

X ∞ v=3

v 3 (n/s) v = O(1/n 2 )

F¨ur den zweiten Fall ben¨otigen wir das folgende Lemma.

Lemma 1.7 Angenommen, die Insert Operation formt keine Endlosschleife nachbesuchten Schl¨usseln.

Dann gibt es eine Schl¨usselfolge in der L¨ange mindestens ℓ/3 in x 1 , . . . , x ℓ , in der alle Schl¨ussel ver- schieden sind.

Beweis. Falls die Insert Operation niemals zu einer bereits besuchten Position zur¨uckkehrt, die das Lemma wahr. Nehmen wir also an, dass die Operation zu einer bereits besuchten Position zur¨uckkehrt, und seien i und j so definiert wie in Abb. 3. Falls ℓ < i+j, dann bilden die ersten j−1 ≥ (i+j −1)/2 ≥ ℓ/2 Schl¨ussel die gesuchte Folge. F¨ur ℓ ≥ i + j muss eine der Folgen x 1 , . . . x j−1 und x i+j−1 , . . . , x

die L¨ange mindestens ℓ/3 haben. ⊓ ⊔

7

Insert bei Kuckuck-Hashing; Endlosschleife im Fall (c)

EADS 4.4 Perfektes Hashing 146/598

ľErnst W. Mayr

(10)

Erster Fall: Sei v ≤ l die Anzahl der verschiedenen angefassten Schl¨ ussel. Dann ist die Anzahl der M¨ oglichkeiten, eine

Endlosscheife zu formen, h¨ ochstens v 3 · n v−1 · m v−1 ,

da es maximal v 3 M¨ oglichkeiten f¨ ur die Werte i, j und l gibt, n v−1 viele M¨ oglichkeiten f¨ ur die Positionen der Schl¨ ussel, und m v−1 viele M¨ oglichkeiten f¨ ur die Schl¨ ussel außer x 1 .

Angenommen, wir haben (1, v)-universelle Hashfunktionen h 1 und

h 2 , dann passiert jede M¨ oglichkeit nur mit einer Wahrscheinlichkeit

von n −2v . Falls n ≥ (1 + δ)m f¨ ur eine Konstante δ > 0, dann ist

die Wahrscheinlichkeit f¨ ur den Fall 1 h¨ ochstens

(11)

Zweiter Fall:

Lemma 39

Im zweiten Fall gibt es eine Schl¨ usselfolge der L¨ ange mindestens l/3 in x 1 , . . . , x l , in der alle Schl¨ ussel paarweise verschieden sind.

Beweis:

Nehmen wir an, dass die Operation zu einer bereits besuchten Position zur¨ uckkehrt, und seien i und j so definiert wie in der Abbildung.

Es muss eine der Folgen x 1 , . . . , x i bzw. x i+j+1 , . . . , x l die L¨ ange mindestens l/3 haben.

EADS 4.4 Perfektes Hashing 148/598

ľErnst W. Mayr

(12)

Beweis (Forts.):

Sei also x 0 1 , . . . , x 0 v eine solche Folge verschiedener Schl¨ ussel in x 1 , . . . , x 2t der L¨ ange v = d(2t − 1)/3e. Dann muss entweder f¨ ur (i 1 , i 2 ) = (1, 2) oder f¨ ur (i 1 , i 2 ) = (2, 1) gelten, dass

h i

1

(x 0 1 ) = h i

1

(x 0 2 ), h i

2

(x 0 2 ) = h i

2

(x 0 3 ), h i

1

(x 0 3 ) = h i

1

(x 0 4 ), . . . Gegeben x 0 1 , so gibt es m v−1 m¨ ogliche Folgen von Schl¨ usseln x 0 2 , . . . , x 0 v . F¨ ur jede solche Folge gibt es zwei M¨ oglichkeiten f¨ ur (i 1 , i 2 ). Weiterhin ist die Wahrscheinlichkeit, dass die obigen Positions¨ ubereinstimmungen gelten, h¨ ochstens n −(v−1) , wenn die Hashfunktionen aus einer (1, v)-universellen Familie stammen. Also ist die Wahrscheinlichkeit, dass es irgendeine Folge der L¨ ange v gibt, so dass Fall 2 eintritt, h¨ ochstens

2(m/n) v−1 ≤ 2(1 + δ) −(2t−1)/3+1 .

(13)

Beweis (Forts.):

Zusammen ergibt sich f¨ ur die Laufzeit von Insert :

1 +

MaxLoop

X

t=2

(2(1 + δ) −(2t−1)/3+1 + O(1/m 2 ))

≤ 1 + O

MaxLoop m 2

+ O

X

t=0

((1 + δ) −2/3 ) t

!

= O

1 + 1

1 − (1 + δ) −2/3

= O(1 + 1/δ) .

EADS 4.4 Perfektes Hashing 150/598

ľErnst W. Mayr

(14)

Beweis (Forts.):

Uberschreitet ¨ m irgendwann einmal die Schranke n/(1 + δ), so

wird n hochgesetzt auf (1 + δ)n und neu gehasht. Unterschreitet

auf der anderen Seite m die Schranke n/(1 + δ) 3 , so wird n

verringert auf n/(1 + δ) und neu gehasht. Auf diese Weise wird die

Tabellengr¨ oße linear zur Anzahl momentan existierender Schl¨ ussel

gehalten. Der Aufwand f¨ ur ein komplettes Rehashing ist O(n), so

dass amortisiert ¨ uber Θ(n) Einf¨ ugungen und L¨ oschungen der

Aufwand nur eine Konstante ist.

(15)

Originalarbeiten zu Hashverfahren:

J. Lawrence Carter, Mark N. Wegman:

Universal Classes of Hash Functions, Proc. STOC 1977, pp. 106–112 (1977) Gaston H. Gonnet:

Expected Length of the Longest Probe Sequence in Hash Code Searching,

Journal of the ACM 28(2), pp. 289–304 (1981) Martin Dietzfelbinger et al.:

Dynamic Perfect Hashing: Upper and Lower Bounds, SIAM J. Comput. 23(4), pp. 738–761 (1994)

EADS 4.4 Perfektes Hashing 152/598

ľErnst W. Mayr

(16)

Und weiter:

Rasmus Pagh, Flemming Friche Rodler:

Cuckoo Hashing,

Proc. ESA 2001, LNCS 2161, pp. 121–133 (2001) Luc Devroye, Pat Morin, Alfredo Viola:

On Worst Case Robin-Hood Hasing,

McGill Univ., TR 0212 (2002)

Abbildung

Abbildung 3: Drei F¨alle f¨ur den Ausgang der Insert Operation. (a): Es wird keine Position zweimal besucht

Referenzen

ÄHNLICHE DOKUMENTE

Wenn der Graph einer Funktion f an der Stelle 1 einen Hochpunkt und an der Stelle 3 einen Tiefpunkt hat, dann liegt zwischen den Stellen 1 und 3 ein Wendepunkt des Graphen.. 4.1

[r]

Spektralmethoden Mathematik, FS

W¨ ahrend sich das Differenzieren durch Anwendung einfacher Regeln (Produkt-, Quotienten-, Kettenregel) erledigen l¨ asst, ist das Integrieren mit gr¨ oßeren Schwierigkeiten

Ubungsaufgaben zur Vorlesung Mathematik II f¨ ¨ ur Ingenieure Serie 1 (Funktionen, Inverse Funktionen, Stetigkeit, Ableitungen) 1.. Welche der folgenden Funktionen sind

Mathematische Grundlagen der Informatik RWTH

[r]

Rate eine Nullstelle x 1 als Faktor des