A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Árvore Binária de Busca seja uma árvore binária de busca T, para um conjunto de chaves S= { S 1, S 2,....S n } qual o número total de comparações efetuadas.

Apresentações semelhantes


Apresentação em tema: "1 Árvore Binária de Busca seja uma árvore binária de busca T, para um conjunto de chaves S= { S 1, S 2,....S n } qual o número total de comparações efetuadas."— Transcrição da apresentação:

1 1 Árvore Binária de Busca seja uma árvore binária de busca T, para um conjunto de chaves S= { S 1, S 2,....S n } qual o número total de comparações efetuadas para se localizar uma chave em S? para buscar uma chave S k, o algoritmo percorre o caminho da raiz até S k número de comparações nível de S k seja nivel (S k ) = L k e seja nivel(raiz) = 1

2 2 Árvore Binária de Busca o número total de comparações necessárias para o acesso a todas as chaves de S é : 1 k n L k definição: comprimento de caminho interno de T I(T) = 1 k n L k

3 3 Árvore Binária de Busca o total de comparações em buscas realizadas com sucesso: O comprimento de caminho interno buscas sem sucesso comparações também são realizadas termina obrigatoriamente em uma subárvore vazia

4 4 Árvore Binária de Busca As buscas sempre irão até um nó interno que fica em um nível imediatamente superior a um nó externo Seja L k o nível do nó externo As buscas cessam no nível L k - 1 E(T) - Comprimento de Caminho Externo 1 k n (L k - 1 )

5 5 Árvore Binária de Busca I(T) e E(T) mostram a qualidade da árvore no problema de busca Os valores I(T)/n e E(T)/(n+1) representam os números médios de comparações efetuadas em operações de busca com e sem sucesso, respectivamente.

6 6 Árvore Binária de Busca I(T) = 19 em média I(T)/n = 2.71 E(T) = 26 em média E(T)/(n+1) = 3.25

7 7 Árvore Binária de Busca Relação entre os comprimentos de caminho interno e externo E(T) = I(T) + n Se n = 1, I(T) = 1 e E(T) = = 2 Suponha verdadeiro para ávores com n-1 nós Seja T com n nós internos ( n+1 nós externos ) T é obtida de T retirando-se um nó v folha substitui-se v e dois nós externos em T por um nó externo T tem n-1 nós internos e n nós externos

8 8 E(T) = I(T) + n-1 mas I(T) = I(T) - L v E(T) = E(T) - L v - L v + L v -1 então E(T) = I(T) + n Árvore Binária de Busca

9 9 Seja S um conjunto de chaves S = {s 1, s 2,..., s n } Associado a s k nível l k frequência de acesso f k Mas na busca: intervalos R = {R 0, R 1, R 2,..., R n } ABB com frequências diferenciadas

10 10 ABB com frequências diferenciadas s5s5 s3s3 s2s2 s4s4 s1s1 s7s7 s6s6 s8s8 R0R0 R4R4 R2R2 R1R1 R3R3 R5R5 R6R6 R7R7 R8R8

11 11 ABB com frequências diferenciadas Associado a R k nível l´ k frequência de acesso f´ k

12 12 ABB com frequências diferenciadas Busca com sucesso a s k: l k comparações total de comparações de todo o processo considerando a frequência de acesso da chave? e considerando as buscas com sucesso de todas as chaves?

13 13 ABB com frequências diferenciadas Busca sem sucesso – atinge um dado R k: l´ k - 1 comparações. Por que? total de comparações de todo o processo considerando a frequência de acesso da chave? e considerando as buscas com sucesso de todas as chaves?

14 14 ABB com frequências diferenciadas Custo da ABB T(n) com frequências de acesso: comprimento do caminho interno ponderado + comprimento do caminho externo ponderado C(T) = f k l k + f´ k (l´ k -1)

15 15 ABB ponderada ótima A ABB ótima – aquela com o custo mínimo para achá-la: programação dinâmica sksk T´T´ T < s k > s k R 0... R k-1 R k... R n

16 16 ABB ponderada ótima Lema: As subárvores de uma árvore binária ótima também são ótimas prova? Se T é ótima, T´e T também são, conhecendo a raiz s k como conhecer s k ? como determinar T´e T ?

17 17 ABB ponderada ótima tentar todo s k e para cada um, tentar T´e T ? fazer recursivamente para cada subárvore até chegar ao caso trivial caso base: subárvore vazia – conjunto de chaves vazia

18 18 ABB ponderada ótima Seja T(i,j) a árvore ótima com: chaves { s i+1,..., s j } intervalos { R i,..., R j } Seja F(i,k) = f k + f´ k

19 19 ABB ponderada ótima Lema: Seja T(i,j) a ABB ótima de raíz sk correspondentes as chaves { s i+1,..., s j }. Então: c(T(i,j)) = c(T(i,k-1)) + (T(k,j)) + F(i,j) Prova utilizar a função de custo ótima e separar as frequencias, considerando a raiz s k

20 20 Construção da ABB ponderada ótima Calcular c(T(0,n)) recursivamente base da recursão: c(T(i,i)) = 0 árvore vazia mas..... repetição de cálculos muitas subárvores a serem testadas – exponencial?

21 21 Construção da ABB ponderada ótima Solução: utilização de tabelas, para calcular o custo de cada subárvore somente uma vez cálculo de forma não recursiva das árvores menores para maiores para cada subárvore T(i,j), testa-se todas as suas chaves { s i+1,..., s j } para ser candidata a raiz escolha: a de menor custo

22 22 Construção da ABB ponderada ótima ABB_ótima () { for j = 0,..., n {c[j,j] = 0; F[j,j] = f´ j ;} for d = 1,..., n for i = 0,..., n – d { j = i+d; F[i,j] = F[i,j-1] + f j + f´ j ; c[i,j] = min { c [i,k-1] + c [k, j]} + F[i,j]; i

23 23 Construção da ABB ponderada ótima Entrada j01234 fjfj f´ j 21111

24 24 Construção da ABB ponderada ótima c[i,j]

25 25 Construção da ABB ponderada ótima F[i,j]


Carregar ppt "1 Árvore Binária de Busca seja uma árvore binária de busca T, para um conjunto de chaves S= { S 1, S 2,....S n } qual o número total de comparações efetuadas."

Apresentações semelhantes


Anúncios Google