Referncia bibliogrca
Os slides sobre este assunto so parcialmente baseados nas sees sobre rvore binria de busca tima do captulo 4 do livro N. Wirth. Algorithms + Data Structures = Programs. Prentice Hall, 1976.
pi = 1
i=1
Siang Wun Song - Universidade de So Paulo - IME/USP rvore Binria de Busca tima
P=
i=1
pi hi
onde pi a probabilidade de acesso chave ki e hi o comprimento de caminho de ki . Se toda chave tem igual probabilidade de ser buscada, ento pi = 1/n, 1 i n e teremos o comprimento de caminho mdio da rvore, j visto anteriormente:
n n
P=
i=1
pi hi =
i=1
hi 1 = n n
hi
i=1
P=
i=1
pi hi
rvore 1
Custo P = 3
1 7
+2
2 7
+1
4 7
11 7
4 7
1 7
rvore 2
Custo P = 3
2 7
+2
1 7
+1
4 7
12 7
300
1 7
4 7
100 d d 2 7 200
rvore 3
Custo P = 2
1 7
+2
4 7
+1
2 7
12 7
2 7
200 d d
4 7
1 7
100
d d 300
rvore 4
Custo P = 3
2 7
+2
4 7
+1
1 7
15 7
1 7
2 7
rvore 5
Custo P = 3
4 7
+2
2 7
+1
1 7
17 7
1 7
100 d d
2 7
d d 200 d d 4 7 300
4 7
1 7
d d d d
k4
d d
k3
d d
d
Siang Wun Song - Universidade de So Paulo - IME/USP rvore Binria de Busca tima
P=
i=1
pi hi +
i=0
qi hi
d d d d d
p4 k4
d
q0
d d
q1
p3 k3
d d d
q4
d d
q2 q3
P=
i=1
pi hi +
i=0
qi hi
ai +
n i=0
bi = W ,
ai = a freqncia de acesso chave ki , 1 i n. b0 = a freqncia de acesso a toda chave x, x < k1 . bn = a freqncia de acesso a toda chave x, x > kn . bi = a freqncia de acesso a toda chave x, ki < x < ki+1 , 1 i < n. Temos: pi = ai /W , 1 i n e qi = bi /W , 0 i n. A rvore binria de busca tima ento aquela que minimiza
n n
P=
i=1
ai hi +
i=0
bi hi
Raiz
Expresso de P em termos de PL e PR
Seja W = n ai + n bi denominado o peso da rvore, i.e. i=1 i=0 o nmero total de buscas efetuadas, incluindo as com ou sem sucesso.
P =
Raiz
PL =
d L d d
rr r d R d d
= PR
Qualquer busca que segue para L ou para R passa pela raiz. Temos portanto P = PL + W + PR .
d
Seja uma rvore com 4 chaves k1 , k2 , k3 e k4 a1 k1
d d d d
a4 k4
d
b0
d d
b1
a3 k3
d d d
b4
d d
b2 b3
P = 2a1 + a2 + 3a3 + 2a4 + 3b0 + 3b1 + 4b2 + 4b3 + 3b4 PL = a1 + 2b0 + 2b1 e PR = 2a3 + a4 + 3b2 + 3b3 + 2b4 P = PL + (a1 + a2 + a3 + a4 ) + (b0 + b1 + b2 + b3 + b4 ) +PR
Pn
W =
n i=1
ai +
n i=0
i=1
ai
Pn
i=0
bi
bi e o exemplo ilustra P = PL + W + PR .
rvore Binria de Busca tima
O mtodo de programao dinmica constri uma rvore tima a partir de subrvores timas. Vamos ilustrar o mtodo com um pequeno exemplo. Sem perda de generalidade, vamos usar a formulao mais simples, sem considerar frequncias de buscas de chaves ausentes. Sejam n = 5 chaves valendo 1, 2, 3, 4 e 5 com as respectivas freqncias de acesso: chave 1 2 3 4 5 freq. 10 4 20 16 2 Vamos construir uma rvore binria de busca tima de 5 ns com as 5 chaves dadas.
Chave 1: A rvore tima s tem a raiz onde ca a chave 1. P = 10. Chave 2: A rvore tima s tem a raiz onde ca a chave 2. P = 4. Chave 3: A rvore tima s tem a raiz onde ca a chave 3. P = 20. Chave 4: A rvore tima s tem a raiz onde ca a chave 4. P = 16. Chave 5: A rvore tima s tem a raiz onde ca a chave 5. P = 2.
Siang Wun Song - Universidade de So Paulo - IME/USP rvore Binria de Busca tima
r
PL = 0 =
rr r d = PR chave d 2 d
2 na raiz.
2 W = 14 P = W + PL + PR = 24 = PR = 0
PL = 10 = d chave d 1 d
r
PL = 0 =
rr r d = PR chave d 3 d
3 na raiz.
3 W = 24 P = W + PL + PR = 28 menor = PR = 0
PL = 4 = d chave d 2 d
rr
PL = 0 =
r r d = PR chave d 4 d
4 na raiz.
4 W = 36 P = W + PL + PR = 56 = PR = 0
PL = 20 = d chave d 3 d
r
PL = 0 =
rr r d = PR chave d 5 d
5 na raiz.
5 W = 18 P = W + PL + PR = 34 = PR = 0
PL = 16 = d chave d 4 d
1 na raiz.
1 W = 34 PL = 0 = P = W + PL + PR = 62 = 28
rr r d = PR chaves 2 e 3d
2 na raiz.
2 W = 34 P = W + PL + PR = 64 = 20
P = W + PL + PR = 52 menor = PR = 0
PL = 18 = d chaves 1 e 2d
Siang Wun Song - Universidade de So Paulo - IME/USP
2 na raiz.
2 W = 40 PL = 0 = P = W + PL + PR = 92 = 52
rr r d = PR chaves 3 e 4d
3 na raiz.
3 W = 40 P = W + PL + PR = 60 menor = 16
P = W + PL + PR = 68 = PR = 0
PL = 28 = d chaves 2 e 3d
Siang Wun Song - Universidade de So Paulo - IME/USP
3 na raiz.
3 W = 38 PL = 0 = P = W + PL + PR = 58 menor = 20
rr r d = PR chaves 4 e 5d
4 na raiz.
4 W = 38 P = W + PL + PR = 60 =2
P = W + PL + PR = 90 = PR = 0
PL = 52 = d chaves 3 e 4d
Siang Wun Song - Universidade de So Paulo - IME/USP
r
PL = 0 =
rr r d = PR chaves d 2, 3 e 4 d
2 na raiz.
2 W = 50 P = W + PL + PR = 112 = 52
rr r r d = PR PL = 10 = d chaves chave d 1 d 3 e 4d d
d chaves 1 e 2d d
rr
r r d = PR chave d 4 d
4 na raiz.
4 W = 50 P = W + PL + PR = 102 = PR = 0
PL = 52 = d chaves d 1, 2 e 3 d
r
PL = 0 =
rr r d = PR chaves d 3, 4 e 5 d
3 na raiz.
3 W = 42 P = W + PL + PR = 66 menor = 20
rr r r d = PR PL = 4 = d chaves chave d 2 d 4 e 5d d
P = W + PL + PR = 102 = PR = 0
PL = 60 = d chaves d 2, 3 e 4 d
1 na raiz.
1 W = 52 PL = 0 = P = W + PL + PR = 114 = 62
rr r d = PR chaves 2, 5 3, 4 ed
2 na raiz.
2 W = 52 P = W + PL + PR = 120 = 58
P = W + PL + PR = 90 menor = 20
r r r PL = 18 = d d = PR chaves chaves 1 e 2d 4 e 5d
Siang Wun Song - Universidade de So Paulo - IME/USP
Chaves 1, 2, 3, 4 e 5:
4 na raiz.
4 W = 52 P = W + PL + PR = 106 =2
P = W + PL + PR = 146 = PR = 0
PL = 94 = d chaves 1, 4 2, 3 ed
= 20
Basta recuperar a rvore tima com chaves 1 e 2 e a rvore tima com chaves 4 e 5. Temos:
3
r rr
d d
2
d d d
5
Pode-se ver que o papel de W na quantidade P a ser minimizada nulo, j que W entra em todas as comparaes. Ento podemos dispensar o uso de W na minimizao de P.
Siang Wun Song - Universidade de So Paulo - IME/USP rvore Binria de Busca tima
d pi(m1) = d d
r rr
A raiz km qualquer chave de Tij De todas as rvores com km na raiz escolhemos aquela que produz pij (menor) r = pmj
d d d
Dadas as freq. ai e bi , calculam-se os pesos wij : wii = bi , 0 i n wij = wi(j1) + aj + bj , 0 i < j n. Calculam-se pij : pii = wii , 0 i n pij = wij + mini<mj (pi(m1) + pmj ), 0 i < j n. Vamos ainda usar rij para guardar a posio m que produz o mnimo pij .