Vous êtes sur la page 1sur 49

Algoritmi probabiliti s

Dorel Lucanu
1 Faculty of Computer Science Alexandru Ioan Cuza University, Iai, Romania s dlucanu@info.uaic.ro

2012

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

1 / 49

Outline

Introducere Fundamente Algorimi Las Vegas Algorimi Monte Carlo MAX-SAT Hashing

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

2 / 49

Introducere

Plan

Introducere Fundamente Algorimi Las Vegas Algorimi Monte Carlo MAX-SAT Hashing

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

3 / 49

Introducere

Ce este un algoritm probabilist?


Exista doua puncte de vedere: 1. algoritmul probabilist este vzut ca un algoritm nedeterminist a pentru care exista o distributie de probabilitate peste alegerile nedetermiste 2. algoritmul probabilist este un algoritm care are o intrare suplimentara ce const a ntr-o secvent de biti aleatorii a echivalent cu a spune ca algoritmul probabilist const o multime de a n algoritmi deterministi din care un algoritm este ales aleatoriu pentru s o intrare dat a pentru o intrare x a problemei date, calculele algoritmului probabilist pot diferi functie de dependenta fat de secventa actual de biti aleatori n a a aceast diferent poate proiectat complexitate sau ieire: a a a n s timpul de executie vzut ca o variabil aleatorie a a ieirea vzut ca o variabil aleatorie s a a a
D. Lucanu (UAIC) Algoritmi probabiliti s 2012 4 / 49

Introducere

De ce studiem algoritmi probabiliti? s

pot mai ecienti i mai simpli dect cei dterminiti care rezolv s a s a aceeai problem s a rmne totui de rspuns la a a s a ntrebarea: sunt utili practic? n a din pcate cazul tipic este acela care nu se tie unde este util a n s de exemplu nu se tie dac un algoritm probabilist cu timp de s a executie polinomial pentru o problem NP-dicil a a pe de alt parte sunt cteva probleme importante, cum ar testarea a a primalitii, pentru care at
exist algoritmi probabiliti polinomiali ecienti a s nu exist algoritm determinist polinomial a nu se tie dac problema este P sau nu (nici dac este NP-complet s a n a a sau nu)

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

5 / 49

Introducere

De ce studiem algoritmi probabiliti? s

algoritmii probabiliti sunt utili pentru a rezolva ecient acele s probleme pentru care nu se cunosc metode care s le fac tractabile a a din punct de vedere practic chiar dac sunt putine astfel de cazuri, ele sunt foarte des alnite a nt n viata de zi cu zi (de ex. testul de primalitate) . . . de aceea este important s studiem algoritmii probabiliti a s

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

6 / 49

Fundamente

Plan

Introducere Fundamente Algorimi Las Vegas Algorimi Monte Carlo MAX-SAT Hashing

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

7 / 49

Fundamente

Fundamente

scopul acestor cursuri nu este de a prezenta denitia complet formal a a algorimilor probabiliti s este sucient s vedem algoritmii probabiliti ca ind algoritmi care a s din cnd cnd a n a ntreab de biti aleatorii i si continu activitatea a s a n functie de valoarea acestora punctul de vedere al teoriei probabilitilor este acela c un algoritm at a probabilist A pentru o intrare x determin un experiment probabilistic a un experiment este descris de spatiul probabilistic (SA,x , P), unde SA,x = {C | C este un calcul aleatoriu a lui A pentru intrarea x} i P s este distributia de probabilitate

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

8 / 49

Fundamente

O nou msur care inuienteaz ecienta a a a a


RandomA (x) = numrul maxim de biti utilizati toate calculele a n aleatorii pentru intrarea x RandomA (n) = max{RandomA (x) | g (x) = n} (g (x) este marimea instantei x) de ce aceast nou msur? a a a a (1) producerea unei secvente de biti aleatori care s substituie a ntr-un mod rezonabil o sevcevent cu adevrat aleatorie este a a costisitoare (2) dac RandomA (x) este mrginit de o functie logaritmic, atunci a a a a numrul de executii distincte pentru intrri de mrime n este a a a 2RandomA (n) p(n), unde p(n) este un polinom dac timpul de executie a lui A este polinomial pentru ecare a executie, atunci simularea determinist a tuturor calculelor se face a n timp polinomial acest procedeu se numete derandomizare (derandomization) s
D. Lucanu (UAIC) Algoritmi probabiliti s 2012 9 / 49

Fundamente

Timpul mediu de executie


ProbA,x (C ) = probabilitatea cu care algoritmul A execut calculul C a pentru intrarea x Prob(A(x) = y ) = probabilitatea cu care algoritmul A produce ieirea y s pentru intrarea x Prob(A(x) = y ) = C ProbA,x (C ) Time(C ) = timpul necesar lui A ca s execute C a timpul mediu de executie a lui A pentru intrarea x este Exp-TimeA (x) = M[Time] = C ,AC (x)=y ProbA,x (C ) Time(C ) timpul mediu de executie a lui A pentru intrarea x cazul cel mai n nefavorabil este Exp-TimeA (n) = max{Exp-TimeA (x) | g (x) = n}

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

10 / 49

Fundamente

Tmpul de executie cazul cel mai nefavorabil n

timpul mediu de executie nu este totdeauna uor de calculat s . . . de aceea uneori se prefer timpul de executie cazul cel mai a n nefavorabil TimeA (x) = maxC Time(C ) TimeA (n) = max{TimeA (x) | g (x) = n}

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

11 / 49

Fundamente

Executii innite

calculele innite sunt acceptate deoarece nu ntotdeauna nseamn o bucl a a innit a astfel de situatii o decizie nou aleatorie poate duce la calcul ce se n a termin cu succes i d rezultatul dorit a s a o posibilitate de a stopa un calcul ce poate potential innit este de a calcula TimeA din exterior i s oprim executia algoritmului cnd aceasta s a a depete acest timp i furnizarea ca ieire a valorii ? as s s s daca TimeA (n) este rezonabil de mare, atunci ? nu este aa de ru s a deoarece singura lui semnicatie este cea de a restarta algoritmul pentru intrarea x din conguratia initial a

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

12 / 49

Algorimi Las Vegas

Plan

Introducere Fundamente Algorimi Las Vegas Algorimi Monte Carlo MAX-SAT Hashing

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

13 / 49

Algorimi Las Vegas

Algoritmi Las Vegas

dau exact totdeauna rezultatul exact i singura variatie de la o executie la s alta pentru aceeai intrare este dat de timpul de executie s a presupune ca A calculeaza F Prob(A(x) = F (x)) = 1 timpul mediu este cel care intereseaza 1 exist i o varant care Prob(A(x) = F (x)) i as a n s 2 1 1 Prob(A(x) = ?) = 1 Prob(A(x) = F (x)) 2 2

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

14 / 49

Algorimi Las Vegas

Randomized Quicksort

exemplul canonic pentru algoritmii Las Vegas se consider o multime peste care este denit o relatie de ordine liniar a a a Algoritmul RQS Intrare: a0 , . . . , an1 Ieire: elementele ai ordine cresctoare s n a
1 2

dac n = 1 a ntoarce a0 , altfel alege aleatoriu k {0, . . . , n 1} calculeaz a S< = {ai | ai < ak } S= = {ai | ai = ak } S> = {ai | ai > ak } sorteaz recursiv S< i S> a s ntoarce secventa S< , S= , S>

3 4

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

15 / 49

Algorimi Las Vegas

Analiza algoritmului RQS

we assume that arank(0) . . . arank(n1) Xij = 1 arank(i) i arank(j) sunt comparate s 0 altfel Xij numr comparatiile dintre arank(i) i arank(j) aa s

Xij este variabil aleatorie a numrul mediu de comparatii este a M[


n1 i=0 j>i

Xij ] =

n1 i=0

j>i

M[Xij ]

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

16 / 49

Algorimi Las Vegas

Analiza algoritmului RQS


pij probabiltatea ca arank(i) i arank(j) s e comparate s a ntr-o executie M[Xij ] = pij 1 + (1 pij ) 0 = pij pij = 2 j i +1
n1 n1

pij =
i=0 j>i i=0 j>i

2 j i +1 2 k 1 k
2012 17 / 49

n1 ni+1

i=0 k=1 n1 ni+1

2
i=0 k=1

D. Lucanu (UAIC)

Algoritmi probabiliti s

Algorimi Las Vegas

Analiza algoritmului RQS

Theorem Numrul mediu de comparatii a ntr-o executie al algoritmului RQS este cel mult 2nHn = O(n log n).

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

18 / 49

Algorimi Monte Carlo

Plan

Introducere Fundamente Algorimi Las Vegas Algorimi Monte Carlo MAX-SAT Hashing

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

19 / 49

Algorimi Monte Carlo

Algoritmi Monte Carlo

produce numai uneori solutia corect a pentru probleme de decizii se cunosc dou variante: a cu eroare pe singura parte (one-sided-error) 1 Prob(A(x) = 1) 2 Prob(A(x) = 0) = 1 cu eroare pe ambele prti (two-sided-error) a 1 1 Prob(A(x) = F (x)) + , 0 < 2 2

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

20 / 49

Algorimi Monte Carlo

Intermezzo de probabiliti at

E1 , E2 sunt independente dac Prob[E1 E2 ] = Prob[E1 ] Prob[E2 ] a general avem n Prob[E1 E2 ] = Prob[E1 | E2 ] Prob[E2 ] = Prob[E2 | E1 ] Prob[E1 ] formula de mai sus se generalizeaz la un numr oarecare de evenimente a a [linearitatea mediei] M[ i Xi ] = i M[Xi ] [exemplul cu vaporul i marinarii] s

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

21 / 49

Algorimi Monte Carlo

Tietur minim a a a
Un multigraf este un graf cu proprietatea c a ntre dou vrfuri pot exista a a mai multe muchii. O tietur multigraful G este o multime de muchii a a n care prin eliminare mparte G dou sau mai multe componente. O n a tietur minim este o tietur de cardinal minim. Vom studia un algoritm a a a a a Monte Carlo care calculeaz o tietur minim a a a a ntr-un multigraf dat. contractie = combinarea a dou vrfuri care sunt extremele unei muchii a a ntr-unul singur; muchiile dintre cele dou vrfuri contractate sunt a a eliminate pas curent: alege aleatoriu uniform o muchie i contract extremitile s a at muchiei alese algoritmul MINCUT repet pasul curent pn cnd rmn dou vrfuri a a a a a a a a ieirea va dat de multimea de muchii ce unesc cele dou vrfuri rmase s a a a a la nal
D. Lucanu (UAIC) Algoritmi probabiliti s 2012 22 / 49

Algorimi Monte Carlo

Analiza algoritmului MINCUT

e C tietur minim de cardinal k a a a n G are cel putin k muchii (de ce?) 2 Ei = evenimentul ce const a nu lua o muchie din C la pasul i a (1 i n 2) probabilitatea ca prima muchie aleas s e C este cel mult a a n 2 n k 2 = k n n 2

rezult Prob(E1 ) 1 a

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

23 / 49

Algorimi Monte Carlo

Analiza algoritmului MINCUT


Presupunem c E1 a avut loc, atunci la al doilea pas: a n1 exist cel putin k a muchii 2 probabilitatea de a alege o muchie C este cel mult n la al i-lea pas: exist n i + 1 vafuri a r tietura minim are dimensiunea k (E1 , . . . , Ei1 au loc) a a ni +1 exist cel putin k a muchii 2 avem: n2 2 2 Prob[n2 Ei ] (1 )= i=1 ni +1 n(n 1)
i=1

2 n1

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

24 / 49

Algorimi Monte Carlo

Analiza algoritmului MINCUT


2 n2

rezult c probabilitatea de a gsi un min-cut este mai mare dect a a a a n2 ori facnd alegeri independente a 2

repetm algoritmul de a

rezult c probabilitatea ca algoritmul s nu gseasc o tietur minim a a a a a a a a n n2 ncercri este cel mult a 2 2 1 2 n
n2 /2

<

1 e

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

25 / 49

Algorimi Monte Carlo

Partitionare planara binar a


o partitie planar binar a unei multimi de segmente este un arbore binar a a cu urmtoarele proprieti: a at orice nod intern are doi copii orice nod v are asociat o regiune r (v ) a orice nod intern v are asociat o dreapt (v ) care intersecteaz r (v ) a a a regiunea care corespunde rdcinii este a a ntreg planul pentru un nod intern v , regiunea r (v ) este partitionat de (v ) a n dou subregiuni r1 i r2 care sunt asociate copiilor a s Dat o multime de segmente S = {s1 , . . . , sn }, s se determine o a a pratitionare planara binar astfel at ecare regiune contine cel mult un a nc segment din S.

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

26 / 49

Algorimi Monte Carlo

Algoritmul RandAuto

notatie: (s) = dreapta suport a segementului s RandAuto: 1. alege aleatoriu uniform o permutare a multimii {1, . . . , n} 2. att timp ct o regiune include mai mult dect un segment, a a a mparte regiunea cu (si ), unde si este primul ordinea dat de care traverseaz n a a acea regiune. Theorem Mrimea medie a autopartitiei produse de RandAuto este O(n log n). a

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

27 / 49

Algorimi Monte Carlo

Analiza algoritmului RandAuto

index(u, v ) = i dac (u)intersecteaz alte i 1 segmente a a nainte de a atinge v dac (u) nu alnete v a nt s u v = evenimentul ca (u) s taie v a

e index(u, v ) = i i u1 , . . . , ui1 segmentele pe care (u) le interesecteaz s a nainte de a atinge v u v apare numai dac u se a a a naintea oricrui element din a {u1 , . . . , ui1 , v } n probabiltatea ca aceasta s se ample este a nt 1 i +1

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

28 / 49

Algorimi Monte Carlo

Analiza algoritmului RandAuto


Cu,v = 1 u v M[Cu,v ] = Prob[u 0 altfel v] 1 index(u, v ) + 1

mrimea partitiei P este n + numrul de intersectii datorit tierilor a a a a astfel media sa este n + M[ n+
u v =u u v

Cu,v ], care este egal cu a 1 index(u, v ) + 1

Prob[u

v] n +
u v =u n1 i=1 n1

avem

v =u

1 index(u, v ) + 1 n+2
u

2 , care implic marginea a i +1

superioar a 1 n + 2nHn i +1

i=1

pentru media lui P


D. Lucanu (UAIC) Algoritmi probabiliti s 2012 29 / 49

MAX-SAT

Plan

Introducere Fundamente Algorimi Las Vegas Algorimi Monte Carlo MAX-SAT Hashing

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

30 / 49

MAX-SAT

Probllema MAX-SAT

Intrare: F = F1 . . . Fm o formul propozitional form normal conjuctiv cu a a n a a a variabile X = {x1 , . . . , xn } n Ieire: s Numrul maxim de clauze ce pot satisfcute de o atribuire a a : X {0, 1}

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

31 / 49

MAX-SAT

Algoritmul RSMS

Algoritmul RSMS: 1. se alege aleatoriu uniform = {1 , . . . , n }, i {0, 1} 2. evalueaz ecare clauz Fj i calculeaz Z := numrul de clauze a a s a a satisfcute a 3. ntoarce Z i xi = i , i = 1, . . . , n. s

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

32 / 49

MAX-SAT

Algoritmul RSMS: Analiza


Prob(xi = 1) = Prob(xi = 0) = 1 2 1 Fj este satisfcut de a a denim v.a. Zj () = 0 altfel daca Fj are k literali independenti, atunci probabilitatea ca Fj s nu e a 1 satisfcut este k a a 2 1 1 rezult c probabilitatea ca Fj s e satisfcut este 1 k a a a a a 2 2 denim Z = m Zj j=1 m 1 = 2 2 max{Z | } ratia medie de aproximare = 2 M[Z ] spunem c RSMS este un randomized 2-expected approximation a algorithm (algoritm de aproximare cu ratia medie mrginit de 2) a a M[Z ] =
m j=1 M[Zj ]

m j=1

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

33 / 49

MAX-SAT

Reducerea la programare liniar a

Lit(Fj ) = multimea literalilor care apar Fj n Lit + (Fj ) = multimea variabilelor care apar necomplementate Fj n Lit (Fj ) = multimea variabilelor care apar ncomplementate Fj n Lit(Fj ) = Lit + (Fj ) Lit (Fj ) In+ (Fj ) = multimea indicilor din Lit + (Fj ) In (Fj ) = multimea indicilor din Lit (Fj )

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

34 / 49

MAX-SAT

Problema LP(F)

functia obiectiv :
m

max
j=1

zj

constrngeri : a yj +
iIn+ (Fj ) iIn (Fj )

(1 yj ) zj j {1, . . . , m}

yi , zj {0, 1} i {1, . . . , n}, zj {1, . . . , m}

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

35 / 49

MAX-SAT

Algoritmul RRRMS
relaxm LP(F): a yi , zj [0, 1] i {1, . . . , n}, zj {1, . . . , m} LP(F) poate rezolvat timp polinomial a n Algoritmul RRRMS: 1. rezolv LP(F) relaxat; e (z1 ), . . . , (zm ), (y1 ), . . . , (yn ) solutia a a optim calculat de algoritm a a 2. alege aleatoriu uniform 1 , . . . , n din [0, 1] 3. pentru i = 1, . . . , n, dac i [0, (yi )] atunci xi = 1, altfel xi = 0; a 4. evalueaz ecare clauz Fj i calculeaz Z := numrul de clauze a a s a a satisfcute a 5. ntoarce Z i xi , i = 1, . . . , n. s Theorem RRRMS este un algoritm de aproximare cu ratia medie mrginit de a a
D. Lucanu (UAIC) Algoritmi probabiliti s 2012

e . e 1
36 / 49

MAX-SAT

Algoritmul combinat

Algoritmul RSMS este bun cand clauzele sunt lungi Algoritmul RRRMS este bun cand clauzele sunt scurte De ce nu am combina cei doi algoritmi? Apelm independent (eventual paralel) cei doi algoritmi i alegem cea a n s mai bun solutie a algoritmul obtinut este un algoritm cu ratia medie mrginit de a a 4 3

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

37 / 49

Hashing

Plan

Introducere Fundamente Algorimi Las Vegas Algorimi Monte Carlo MAX-SAT Hashing

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

38 / 49

Hashing

Tabele hash

(a se vedea Structuri avansate pentru cutare) a

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

39 / 49

Hashing

Famillii hash universale


Ideea: se alege o familie de functii H = {h : M N} a. ecare h este uor . s de reprezentat i evaluat s pentru orice S de cardinalitate mic, o mare parte din functiile h H a sunt aproape perfecte (numr mic de coliziuni) a pentru un S particular, se alege aleatoriu h H Presupunem M = {0, 1, . . . , m 1}, N = {0, 1, . . . , n 1} H este 2-universal dac pentru orice x = y i h ales aleatoriu uniform din a a s 1 H, Prob([h(x) = h(y )] n o functie h H aleas aleatoriu trebuie s se comporte ca o functie a a aleatorie numai pentru perechi (de aici i numele) s H = [M N] este 2-universal dar are multe dezavantaje (care?) a
D. Lucanu (UAIC) Algoritmi probabiliti s 2012 40 / 49

Hashing

Notatii
1 0
hH

(x, y , h) = (x, y , H) = (x, Y , h) =

h(x) = h(y ), x = y altfel (x, y , h) (x, y , h)

y Y

(X , Y , h) =
xX

(x, Y , h) (x, y , H)
y Y

(x, Y , H) = (X , Y , H) =
hH
D. Lucanu (UAIC)

(X , Y , h)

Algoritmi probabiliti s

2012

41 / 49

Hashing

2-universalitatea este cea mai bun alegere a


Theorem Pentru orice H exist x, y a. (x, y , H) > a . Az = {x M | h(x) = z} (Aw , Az , H) = (M, M, h) = (M, M, H) = 0 w =z |Az |(|Az | 1) w = z
zN hH 1 |Az |(|Az | 1) n( m ( m 1)) = m2 ( n n n 1 (M, M, h) |H|m2 ( n 1 m) 1 m)

|H| |H| . n m

Aplicnd principiul lui Dirichlt exist x, y M cu a e a (x, y , H)


1 |H|( n (M, M, H) |H|(M, M, h) = m2 m2 m2
Algoritmi probabiliti s

1 m)

1 1 = |H|( ) n m
2012 42 / 49

D. Lucanu (UAIC)

Hashing

Aplicare la dictionare dinamice

Lemma Pentru orice x M, S M i h H ales aleatoriu, M[(x, S, h)] s |S| . n

M[(x, S, h)] =
hH

(x, S, h) 1 = ... = |H| |H|

(x, y , H)
y S

1 |H|

y S

|H| |S| = n n

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

43 / 49

Hashing

Aplicare la dictionare dinamice

Theorem Presupunem c solutia pentru coliziuni este cea prin liste antuite. a nl Atunci pentru orice secvent de operatii R de lungime r cu s inserri i h a a s ales aleatoriu uniform dintr-o familie 2-universal H, a M[(h, R)] r 1 + s n

unde (h, R) este costul total procesrii listei de operatii R. a

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

44 / 49

Hashing

Constructia de familii hash universale


Fie p un numr prim cu p m a Zp = {0, 1, . . . , p 1} g : Zp N, g (x) = x mod n fa,b : Zp Zp , ha,b : Zp N fa,b (x) = ax + b mod p, ha,b (x) = g (fa,b (x)) H = {ha,b | a, b Zp , a = 0} Lemma Pentru x = y , (x, y , H) = (Zp , Zp , g ) Theorem H denit ca mai sus este o familie hash 2-universal. a a
D. Lucanu (UAIC) Algoritmi probabiliti s 2012 45 / 49

Hashing

Scheme hash perfecte

O functie hash h : M N este perfect pentru S M dac nu cauzeaz a a a coliziuni pentru cheile din S.

Familia de functii H = {h : M N} se numete perfect dac pentru s a a orice multime S M de mrime s < n exist o functie h H care este a a perfect pentru S. a

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

46 / 49

Hashing

Hashing cu timp de cutare O(1) a

Schema denit anterior are timpul mediu mrginit dar timpul de cutare a a a cazul cel mai nefavorabil este nemrgnit. n a Putem deni scheme cu timpul de cutare O(1) cazul cel mai a n nefavorabil? Theorem Pentru orice S M cu |S| = s i m s, exist o reprezentare de tabel s a a hash a lui S care necesit spatiul O(s) i permite procesarea operatiei de a s cutare timpul O(1). a n

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

47 / 49

Hashing

Hashing cu timp de cutare O(1) a

Considerm V M cu |V | = v , R = {0, 1, . . . , r 1}, r V a Pentru 1 k p 1 denim hk (x) = (kx mod p) mod r Pentru i R denim coul (bin) care include elementele mapate de hk s i: n Bi (k, r , V ) = {x V | hk (x) = i} i mrimea lor prin s a bi (k, r , V ) = |B( k, r , V )|

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

48 / 49

Hashing

Hashing cu timp de cutare O(1) a

Ideea de demonstratie: Se consider o schem cu dou functii hash: cheia primara este hk i a a a a s mapeaz o multime S M tabela T de mrime n = s. a n a Cheile din Bi (k, r , V ) (elementele din S mapate T [i]) sunt apoi mapate n 2 utiliznd o functie hash secundar ntr-o tabel de dimensiune bi (k, r , V ) a a a hki , care este garanta a perfect. a a De notat c schema considerat este una static. a a a

D. Lucanu (UAIC)

Algoritmi probabiliti s

2012

49 / 49

Vous aimerez peut-être aussi