Aals dell Hashg a catea aperta Data ua tabella d hashg T d gradezza e co elemet memorzzat, s defsce l fattore d carco per la tabella T come: Il fattore d carco rappreseta ud l umero medo o atteso d elemet memorzzat ua catea, ammesso che la gestoe delle collso sa gestta tramte strutture dat aggutve, coè da seueze o catee d elemet. Il peggor comportameto che s può verfcare ua struttura d uesto tpo è pessmo: fatt tutte le chav potrebbero essere mappate ello stesso elemeto della tabella T, creado così ua catea aperta d lughezza. La complesstà temporale degl algortm d gestoe del dzoaro dveta percò Θ(). Il caso medo che s verfca ua tabella d hashg dpede da uato uformemete vegoo dstrbute le chav all tero della tabella T. S assumerà d ora avat che la dstrbuzoe degl elemet all tero della tabella T avvega el modo pù uforme possble. Il che sgfca che la fuzoe d hash mapperà ua ualsas chave dell seme d parteza u valore tero compreso fra e - co eguale probabltà. I ua tabella d hash cu le collso soo rsolte co la tecca della catea aperta, ua rcerca fruttuosa rchede u tempo Θ(), ella meda, assuto che la fuzoe d hashg utlzzata dstrbusca le chav uformemete. Dmostrazoe Sotto l assuzoe che la fuzoe h() dstrbusca le chav uformemete sugl elemet dspobl della tabella T, l calcolo del tempo medo mpegato per trovare u elemeto d chave k T è euvalete al tempo d calcolo della fuzoe h(k) sommato al tempo ecessaro per raggugere la fe della catea all elemeto selezoato. La lughezza meda d og catea collegata ad og elemeto della tabella T è esattamete /. Così, l tempo medo per effettuare ua rcerca fruttuosa è Θ( ). I ua tabella d hash T cu le collso soo rsolte co la tecca delle catee aperte, ua rcerca che terma modo favorevole, rchede u tempo dell orde d Θ( ), ella meda e ell potes d dstrbuzoe uforme delle chav. Dmostrazoe Il umero medo d elemet rcercat per recuperare u elemeto ua tabella d uesto tpo è esattamete pù l umero d elemet esamat uado l elemeto cercato è stato trodotto, ammesso che og uovo elemeto vada a fre fodo alla lsta o catea aperta. Qud, per cooscere l umero medo d elemet vstat, bsoga calcolare la meda, dat elemet preset ella tabella T, d pù la lughezza attesa della catea aperta cu
l ultmo elemeto -esmo è stato trodotto. La lughezza meda d tale catea è: (-)/. Così l calcolo della meda dveta: ( ) ( ) Qud, l tempo totale rchesto per ua rcerca effettuata co successo (cluso l tempo per l calcolo della fuzoe d hash) è: Θ Θ( ) Che sgfcato ha l teorema precedete? Se l umero degl elemet sert el dzoaro realzzato tramte ua tabella d hash a catea aperta d dmesoe è dell orde d O(), allora: / O()/ O(). Qud ua rcerca codotta tale tabella rchederà u tempo medo par a O(). Fuzo d hashg uversal Se ua persoa volesse dmostrare malzosamete che la fuzoe d hashg h() che avete scelto per la realzzazoe d u dzoaro co uesta tecca o è buoa, gl sarebbe suffcete sceglere umer,,,, - tal che h( ) h( ) h( ) h( - ). Ifatt og fuzoe h(), per l solo fatto che deve comprmere gl elemet d Ν, seme de umer atural, u seme rstretto [, -], avrà l dfetto d presetare valor ugual per opportue chav. L uco metodo per avere ua scappatoa a uesta stuazoe è uella d avere, ua volta scelto l campoe d chav da testare, ua fuzoe scelta a caso da u gruppo d buoe fuzo d hashg. Questo approcco è chamato hashg uversale (uversal hashg). Sa H ua collezoe fta d fuzo d hashg che mappao l seme d parteza U (detto ache Uverso delle chav) ell seme fto [,,..,-]. Ua tale collezoe è detta uversale se, per og coppa d chav x,y U, l umero d fuzo d hash h( ) H per ual h(x) h(y) è precsamete H /. I altre parole, co ua ualsas fuzoe fuzoe h( ) d H scelta a caso, la possbltà che s verfch ua collsoe fra le chav dverse x e y è esattamete /. Che è esattamete la possbltà d collsoe se h(x) e h(y) fossero scelt uformemete a caso ell teravllo [, -]. Se h( ) vee scelta a caso da u seme H d fuzo uversal ed è utlzzata per mappare chav ua tabella d dmesoe, dove, l umero atteso d collso rguardat u partcolare chave x è more d. Dmostrazoe Per og coppa dstta d chav y,z, sa C yz ua varable casuale che vale se h(y) h(z) e se h( y) h( z) altrmet. Coe: C yz altrmet Dato che og coppa d chav collde, per defzoe, co probabltà /, s ha: E[ C yz ]
Sa ora C x l umero totale d collso rguardate la chave x ua tabella d hash T d dmesoe coteete chav. Allora la meda d tutte le collso sulla chave x è la somma d tutte le mede delle collso della chave x co tutte le altre chav dverse da x. Dato che s stao mappado chav, s ottee: E[ C x ] E[ C xy ] y T y x Ma dato che, allora E [ ] <. C x Ma uato è dffcle crears ua propra collezoe uversale d fuzo d hashg? Per ulla! S mmag d sceglere la dmesoe della tabella d hashg modo che sa prmo. S scompoga ora og chave r bytes (coè caratter o sottostrghe bare d lughezza fssa) modo tale che x (x, x,,x r ). La sola rchesta aggutva è che og valore corrspodete d og byte sa more d. Sa a <a, a, a,., a r > ua seueza d r elemet scelt a caso ell seme {,,.., - }(s tratta d r cfre co smbol). S defsce la fuzoe hash corrspodete h a H: h ( x) a r a x mod m Co uesta defzoe s avrà: { } U a H seme co r elemet. h a La classe H sopra defta è ua classe uversale d fuzo. Dmostrazoe S cosder ua coppa d chav dstte x e y, dove aturalmete x (x, x,,x r ) e y (y, y,,y r ). S assuma che x sa dverso da y, dato che lo stesso dscorso può essere fatto per ualsas coppa d bytes. Per og valore fssato d a, a,,a r, esste esattamete u solo valore d a tale da soddsfare l euazoe h(x) h(y). Tale valore a è soluzoe d: ( x y ) a ( x y ) ( ) a mod Dato che è prmo, la uattà postva x -y ha ua versa moltplcatva modulo, e ud esste ua sola soluzoe per a modulo. Percò, og coppa d chav x e y collde per esattamete r valor d a, dato che ess colldoo ua sola volta per og possble valore d <a, a, a 3,, a r > (coè per og uco valore d a ). Dato che c soo r possbl valor per la seueza a, le chav x e y colldoo co probabltà esattamete r / r /. Qud H è uversale. Aals dell hashg ad drzzameto aperto L aals della tecca d drzzameto aperto è espressa term del fattore d carco. Se elemet soo memorzzat ella tabella T d hash d dmesoe, l umero medo d collso per og casella della tabella è /. aturalmete, co l drzzameto aperto, esste al pù u elemeto per og cella del vettore. Così è charo che deve essere, coè l umero degl
elemet memorzzat ella tabella deve essere more od uguale alla dmesoe della tabella stessa. S assume che le fuzo d hash utlzzate per effettuare le aals sao tutte tal da dstrbure uformemete valor sull tervallo [, -]. I uo schema deale, la seueza d tetatv <h(k,), h(k,), h(k,),, h(k,-)> per ua determata chave k è ugualmete probable ad og permutazoe <,,,, ->. Che vuol dre che og seueza d tetatv sulla tabella T è ugualmete probable. aturalmete, per og chave k forta, esste u'uca seueza d tetatv otteuta utlzzado la stessa fuzoe d hashg h(). Data ua tabella d hash T orgazzata ad drzzameto aperto, co fattore d carco / <, l umero atteso d tetatv ua rcerca fruttuosa d u elemeto è al pù /(-), assumedo d avere ua fuzoe h() d mappatura uforme delle chav. Dmostrazoe I u fruttuoso tetatvo d rcerca d u elemeto, og sodaggo trae l ultmo accedoo a celle pee della tabella T che però o cotegoo la chave cercata k. L ultmo sodaggo accede ad ua cella vuota. S defsce ora la seguete fuzoe d probabltà legata ad u certo eveto: p Probabltà {esattamete sodagg accedoo a celle occupate d T} dove vale per,,.., tetatv. Per cu tale probabltà è ulla per,. Dato che s possoo trovare al pù celle occupate. Così l umero atteso d sodagg è uo (la cella vuota fale) pù la meda (aspettazoe) del umero d celle pee cotrate: p Per valutare l espressoe precedete bsoga defre l seguete eveto: Probabltà {al pù sodagg accedoo a celle occupate d T} Per,,,. S può utlzzare la seguete dettà: p Qual è l valore d per? La probabltà che l prmo sodaggo acceda ad ua cella occupata è /, coè: Co ua fuzoe d hashg uforme, u secodo tetatvo, se ecessaro, è ad ua delle - celle o acora vstate, - delle ual soo occupate. U secodo tetatvo vee aturalmete fatto solamete el caso che durate l prmo tetatvo s sa cotrata ua cella occupata. Qud:
I geerale, l -esmo tetatvo vee fatto solamete se gl - tetatv precedet hao cotrato tutte celle occupate e la cella -esma da sodare è fra - celle rmaste, - delle ual soo gà occupate. Così: otado che j j se e j, s può scrvere: Dopo tetatv, tutte le celle occupate soo state vstate e o lo sarao pù per tetatv successv, così che s può stablre che per >. Ora s è grado d valutare la sommatora: p p.. Sommatora che ha ua facle terpretazoe: u sodaggo è sempre fatto, u secodo sodaggo vece è ecessaro co probabltà, u terzo sodaggo è fatto co probabltà, e così va. Se è ua costate, l teorema precedete afferma che ua rcerca fruttuosa vee fatta u tempo O(). Per esempo, se ua tabella d hash T è mezza pea, la meda del umero d tetatv ua rcerca fruttuosa è /(-.5). Se la tabella è pea al 9% (.9) allora l umero medo d tetatv salrà a /(-.9). Il teorema precedete forsce uo strumeto per valutare le prestazo della procedura d sermeto ua tabella d hash. Corollaro. L sermeto d u elemeto ua tabella d hash T, orgazzata ad drzzameto aperto co u fattore d carco /, rchede al pù /(-) tetatv el caso medo. Assumedo ua fuzoe d hash uforme. Dmostrazoe U elemeto è serto ella tabella solamete el caso c sa acora dello spazo lbero, e ud solo se <. L sermeto d u elemeto rchede ua rcerca fruttuosa seguta dalla sstemazoe del uovo elemeto ella prma cella lbera della tabella T. Così l umero atteso d sodagg è /(-).
Calcolare l umero medo d sodagg per ua rcerca che terma favorevolmete è aluato pù dffcle. Data ua tabella d hashg T orgazzata ad drzzameto aperto, co fattore d carco <, l umero atteso d sodagg durate ua rcerca d u elemeto che term favorevolmete è al pù log Assumedo sempre che la fuzoe d hashg h() dstrbusca uformemete le chav ell tervallo [, -] e che la probabltà che vega cercata ua ualss chave k sa la stessa per tutte le chav. Dmostrazoe Ua rcerca per ua certa chave k segue la stessa seueza d tetatv seguta durate le fas d sermeto della chave stessa. Per l corollaro precedete, se k era la ()-esma chave serta ella tabella T, allora l umero medo d sodagg fatt per cercare la chave k prma dell sermeto è al pù. Facedo la meda su tutte le chav serte ella tabella T s ottee l umero medo de sodagg ua tabella T durate le fas d rcerca d ua chave che term modo favorevole. Qud: ( H H ) Dove H è detta fuzoe armoca. Utlzzado la relazoe 3 j H log s ottee: j ( H H ) ( log log( ) ) log come lmte superore sulla meda de tetatv durate ua rcerca termata co esto favorevole. Se la tabella T, per esempo è pea a metà (/), allora l umero atteso d sodagg è more d 3.387. Se la tabella vece è pea al 9% (.9), allora l umero atteso d sodagg dveta more d 3.67.