13.07.2015 Views

Matematici discrete pentru CS - Departamentul Automatica ...

Matematici discrete pentru CS - Departamentul Automatica ...

Matematici discrete pentru CS - Departamentul Automatica ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Lecţia 15Douǎ aplicatii killerIatǎ mai departe douǎ aplicatii “killer” ale probabilitǎtilor elementare în stiintacalculatoarelor.1. Se presupune cǎ o functie hash distribuie chei în mod egal pe o tabelǎ dedimensiunea n. Câte chei alese la întâmplare se pot distribui hash înainte caprobabilitatea unei coliziuni sǎ depǎseascǎ (de pildǎ) 0,5?2. Se considerǎ urmǎtorul scenariu simplu de a echilibra încǎrcarea. Sunt datem joburi si n masini; se alocǎ fiecare job unei masini în mod uniform laîntâmplare si independent de toate celelalte joburi. Cât este de probabilǎ ovaloare <strong>pentru</strong> încǎrcarea maximǎ a oricǎrei masini?Cum se va vedea, ambele probleme pot fi tratate printr-o analizǎ a spatiuluiprobabilistic bile-si-cutii despre care s-a mai discutat.Aplicatia 1: functii hashConform unor cunostinte anterioare, un tabel hash este o structurǎ de date caresuportǎ depozitarea unor seturi de chei dintr-un univers (cuprinzǎtor) U (depildǎ numele celor 22 de milioane de locuitori ai României). Operatiilesuportate sunt ADD (adǎugarea) unei chei la un set, DELETE (stergerea) uneichei dintr-un set si verificarea MEMBER a (apartenentei) unei chei la un set.Functia hash h aplicǎ U pe un tabel T de dimensiune moderatǎ. Pentru a adǎuga(ADD) o cheie la setul în discutie, se evalueazǎ h(x) (adicǎ se aplicǎ functiahash pe cheie) si se depune x în locatia h(x) din tabelul T. Toate cheile din setulnostru care sunt aplicate pe aceeasi locatie din tabelul T sunt stocate într-o listǎsimplǎ link-atǎ. Operatiile DELETE si MEMBER sunt implementate într-omanierǎ similarǎ, prin evaluarea lui h(x) si cǎutând în lista link-atǎ la h(x). Deobservat cǎ eficienta functiei hash constǎ în a avea cât mai putine coliziuni,altfel spus chei care se aplicǎ pe aceeasi locatie. Aceasta <strong>pentru</strong> cǎ timpul decǎutare <strong>pentru</strong> operatiile DELETE si MEMBER este proportional cu lungimealistei link-ate corespunzǎtoare.Întrebarea care intereseazǎ aici este urmǎtoarea: presupunând cǎ tabelul hash Tare dimensiunea n si cǎ functia hash h distribuie U egal peste T (adicǎ |U| = α n– dimensiunea lui U este un multiplu întreg de factor α al dimensiunii lui T – si<strong>pentru</strong> fiecare y din T numǎrul de chei x din U <strong>pentru</strong> care h(x) = y este exactα), presupunând cǎ acele chei de stocat sunt alese uniform la întâmplare si139

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!