Documente Academic
Documente Profesional
Documente Cultură
Programare Dinamică
Programare Dinamică
Bibliografie
#
0 i ““ j
mri, js “
miniďkăj pmri, ks ` mrk ` 1, js ` pi´1 ˚ pk ˚ pj q i ă j
Implementare Python
Definit, ii
Fie K o mult, ime de chei. Un arbore binar cu cheile K este un
graf orientat s, i aciclic A = (V, E) a.ı̂:
@v P V , v cont, ine o singură cheie kpuq P K iar cheile din
noduri sunt distincte.
Există un nod unic r P V a.ı̂. grad intrarepr q “ 0 s, i
@u P V , u ‰ r , grad intrarepuq “ 1.
@u P V , grad ´ ies, ire ď 2.
@u P V , notăm S(u)/D(u) - succesorul stânga / dreapta.
Definit, ii
Fie K o mult, ime de chei peste care există o relat, ie de ordine,
ă. Un arbore binar de căutare satisface @u, v , w P V :
v P Spuq ùñ cheiepv q ă cheiepuq.
w P Dpuq ùñ cheiepuq ă cheiepw q.
Notat, ii
Fie A un arbore binar de căutare cu chei ı̂ntr-o
mult, ime X.
k1 , k2 , ..., kn - cheile cont, inute ı̂n A.
d0 , d1 , ..., dn - chei fictive - reprezintă cheile din X care nu
se află ı̂n A.
di´1 ă ki ă di .
pi - probabilitatea de a căuta cheia ki .
qj - probabilitatea de a căuta o cheie reprezentată de yj .
řn řn
k“1 pk ` k“0 qk “ 1.
Definit, ii
A este un arbore
řn de căutare probabilistică,
řn având costul:
costpAq “ k“1 nivelpA, ki q ˚ pk ` k“0 nivelpA, kj q ˚ qk
Un arbore de căutare probabilistică având cost minim
este un arbore optim la căutare (AOC).
Lemă
Fie 1 ď i ă j ď n a.ı̂.:
Ci,j “ miniďα1 ďj pCi,α1 ´1 ` Cα1 `1,j q ` w pi, jq.
@α1 , i ď α1 ď j : Ai,α1 ´1 , Aα1 ,j sunt AOC.
Fie α alegerea optimă pentru Ci,j . Atunci, este AOC arborele
Ai,j :
Cu rădăcina kα .
SpAi,j q “ Ai,α´1 .
DpAi,j q “ Aα`1,j .
Implementare Python