80 likes | 328 Views
Arbori Binari Optimi. Despre arbori binari optimi putem vorbi atunci cand, pentru fiecare dintre cheile unui arbore binar ordonat cunoastem frecventa cu care aceasta cheie va aparea in cadrul operatiilor ulterioare de cautare
E N D
Arbori Binari Optimi Despre arbori binari optimi putem vorbi atunci cand, pentru fiecare dintre cheile unui arbore binar ordonat cunoastem frecventa cu care aceasta cheie va aparea in cadrul operatiilor ulterioare de cautare Aceasta frecventa poate fi vazuta si ca “probabilitatea” ca o anumita cheie sa fie subiectul (argumentul) unei operatii viitoare de cautare in arborele binar ordonat Vorbim despre operatii de cautare deoarece, in general, acestea sunt cele care ne intereseaza atunci cand lucram cu arbori binari ordonati Arbori Binari Optimi
Arbori Binari Optimi • Pentru o cheie oarecare, timpul de cautare va fi, in cel mai rau caz proportional cu inaltimea arborelui • Pentru o cheie care exista in arbore, timpul de cautare este proportional cu adancimea nodului care contine cheia (distanta de la acesta la radacina) • Ideal ar fi ca acele chei care sunt cautate mai des sa fie plasate mai aproape de radacina arborelui iar acele chei care sunt cautate mai rar sa fie plasate mai departe de radacina arborelui Arbori Binari Optimi
De exemplu, am putea considera, ca o aplicatie, ca toate cuvintele limbii romane sunt chei intr-un arbore binar ordonat, dispuse intr-un anumit fel Acest arbore binar ordonat va fi folosit de un dictionar pentru a obtine pentru fiecare cuvant, traducerea sa intr-o limba straina Evident, anumite cuvinte vor fi cautate mai des decat altele Fiecare cuvant ar putea avea (teoretic) asociata o probabilitate de aparitie Cuvintele cu probabilitate de aparitie mai mare (mama, tata, etc.) ar fi bine sa fie mai apropiate de radacina arborelui decat cuvintele cu probabilitate de aparitie mai mica (metempsihoza, parapsihologie, etc.), dintre care multe nici nu vor fi cautate vreodata Astfel apare ideea pe care se bazeaza arborii binari optimi Arbori Binari Optimi Arbori Binari Optimi
Arbori Binari Optimi • Fie un arbore binar ordonat continand cheile k1, k2, …, kn • Consideram ca fiecare cheie ki are asociata o “probabilitate de aparitie” pi • Distributia probabilitatilor pi asigura urmatoarele conditii: • 0 ≤ pi≤ 1, unde i = 1 .. n • p1 + p2 + … + pn = 1 • Arborele binar ordonat poate fi numit “optim” daca: • DP = p1 · adancime(k1) + … + pn· adancime(kn) = minim Arbori Binari Optimi
Arbori Binari Optimi • Suma anterioara poarta numele de “drum ponderat”, fiind suma drumurilor de la radacina la fiecare nod, ponderate cu probabilitatile de acces la noduri • Pentru ca drumul ponderat DP sa fie minim, trebuie ca o probabilitate de acces (pi) mare (adica o cheie cautata des) sa fie insotita de o adancime (adancime(ki)) mica (adica o distanta mica pana la radacina arborelui) Arbori Binari Optimi
Arbori Binari Optimi • Vom construi toti arborii binari ordonati formati cu cheile 1, 2 si 3 1 1 2 3 3 2 3 1 3 1 2 3 2 2 1 1 2 3 4 5 Arbori Binari Optimi
Arbori Binari Optimi • Presupunem ca cele 3 chei (1, 2 si 3) au asociate urmatoarele probabilitati de aparitie: • 1 – 1/7; 2 – 2/7; 3 – 4/7 • 1/7 + 2/7 + 4/7 = 1 (asa cum cere regula) • Vom calcula suma DP pentru fiecare din cei 5 arbori 1 1 2 3 3 2 3 1 3 1 2 3 2 2 1 DP = 17/7 DP = 15/7 DP = 12/7 DP = 12/7 DP = 11/7 Arbori Binari Optimi
Arbori Binari Optimi • Avand valoarea DP minima, arborele 5 este cel optim, chiar daca nu este arbore perfect echilibrat si nici macar AVL • Calitatea de arbore optim este data strict de probabilitatile de aparitie ale cheilor • Practic, rezultatul obtinut ne spune ca daca un numar foarte mare de cautari de chei in arborele 1 se face in 17 secunde, de exemplu, atunci aceleasi cautari de chei vor necesita 15 secunde in arborele 2 si 11 secunde in arborele 5 (vezi valorile DP calculate pentru fiecare arbore) • Evident, cautarile vor duce la acelasi rezultat indiferent de arborele in care se fac, difera doar timpul in care se obtine acest rezultat • Cel mai scurt timp se va obtine intotdeauna in arborele optim Arbori Binari Optimi