Você está na página 1de 12

ECOI08 Aula 7

Prof. Rafael Santos


Email: rafafic@gmail.com
Pesquisa Digital
Pesquisa digital baseada na representao das
chaves como uma sequncia de caracteres ou de
dgitos.
Os mtodos de pesquisa digital so particularmente
vantajosos quando as chaves so grandes e de
tamanho varivel.
Um aspecto interessante quanto aos mtodos de
pesquisa digital a possibilidade de localizar todas as
ocorrncias de uma determinada cadeia em um texto,
com tempo de resposta logartmico em relao ao
tamanho do texto.
Trie e Patricia
Trie
Uma trie uma rvore -ria cujos ns so vetores de
componentes com campos correspondentes aos dgitos ou
caracteres que formam as chaves.
Cada n no nvel representa o conjunto de todas as
chaves que comeam com a mesma sequncia de dgitos
ou caracteres.
Este n especifica uma ramificao com caminhos
dependendo do ( + 1)-simo dgito ou caractere de uma
chave.
Considerando as chaves como sequncia de bits (isto ,
= 2), o algoritmo de pesquisa digital semelhante ao
de pesquisa em rvore, exceto que, em vez de se
caminhar na rvore de acordo com o resultado de
comparao entre chaves, caminha-se de acordo com os
bits de chave.
Trie

Dada as chaves de 6 bits


B = 010010
C = 010011
H = 011000
J = 100001
Q = 101000
Inserir as chaves
W = 110110
K = 100010
Consideraes Importantes
sobre as Tries
O formato das tries, diferentemente das rvores binrias
comuns, no depende da ordem em que as chaves so
inseridas e sim da estrutura das chaves atravs da
distribuio de seus bits.
Desvantagem:
Uma grande desvantagem das tries a formao de
caminhos de uma s direo para chaves com um grande
nmero de bits em comum.
Exemplo: Se duas chaves diferirem somente no ltimo bit,
elas formaro um caminho cujo comprimento igual ao
tamanho delas, no importando quantas chaves existem
na rvore.
Caminho gerado pelas chaves B e C.
Patricia
Practical Algorithm To Retrieve Information
Coded In Alphanumeric
Criado por Morrison D. R. 1968 para aplicao em
recuperao de informao em arquivos de grande
porte.

Knuth D. E. 1973 novo tratamento algoritmo.


Reapresentou-o de forma mais clara como um caso particular de
pesquisa digital, essencialmente, um caso de rvore trie binria.

Sedgewick R. 1988 apresentou novos algoritmos de


pesquisa e de insero baseados nos algoritmos
propostos por Knuth.

Gonnet, G.H e Baeza-Yates R. 1991 propuseram


tambm outros algoritmos.
Patricia
O algoritmo para construo da rvore Patricia
baseado no mtodo de pesquisa digital, mas sem o
inconveniente citado para o caso das tries.
O problema de caminhos de uma s direo eliminado
por meio de uma soluo simples e elegante:
cada n interno da rvore contm o ndice do bit a ser testado
para decidir qual ramo tomar.
Exemplo: dada as chaves de 6 bits:
B = 010010
C = 010011
H = 011000
J = 100001
Q = 101000
Patricia
Cada chave inserida de acordo com os passos
abaixo, partindo da raiz:

1. Se a subrvore corrente for vazia, ento criado um n externo


contendo a chave (isto ocorre somente na insero da
primeira chave) e o algoritmo termina.

2. Se a raiz da subrvore corrente for um n interno, vai-se para a


subrvore indicada pelo bit da chave de ndice dado pelo n
corrente, de forma recursiva.
Patricia
3. Se a subrvore corrente for simplesmente um n externo , os
bits da chave so comparados:
a) Compare, saindo do incio, os bits correspondentes da chave com
a chave at encontrar um ndice cujos bits difiram.
b) Se todos forem iguais, a chave j se encontra na rvore e o
algoritmo termina;
c) seno, vai-se para o Passo 4.
4. Um n interno e um n externo so criados: o primeiro contendo
o ndice e o segundo, a chave . A seguir, o n interno ligado
ao externo pelo apontador da subrvore esquerda ou direita,
dependendo se o bit de ndice da chave 0 ou 1,
respectivamente.
Patricia
5. O caminho de insero percorrido de baixo para cima, subindo
com o par de ns criados no Passo 4 at chegar a um n interno
cujo ndice seja menor que o ndice determinado no Passo 2.
Este o ponto de insero e o par de ns inserido.

Exemplo: dada as chaves de 6 bits:


B = 010010
C = 010011
H = 011000
J = 100001
Q = 101000
Inserir
K = 100010
W = 110110
Exerccios
1. Desenhe passo a passo a rvore trie resultante da insero dos
registros com as chaves F, C, Q, H, R, X, O, B nesta ordem, em
uma rvore vazia.
a) Apresente os bits comparados para localizar ou no as chaves D, R, Z,
F. Caso exista comparao com alguma chave, informe se era a chave
procurada ou no.
2. Desenhe passo a passo a rvore patricia resultante da insero dos
registros com as chaves S, T, N, K, C, J, P, L nesta ordem, em uma
rvore vazia.
a) Apresente o nmero dos bits e seus valores comparados para localizar
ou no as chaves U, A, T, L e informe se encontrou ou no.
Referncia Bibliografia

ZIVIANI, Nivio. Projeto de Algoritmos com implementao em Pascal e C.


3a Edio. Ed. Cengage Learning, 2011.

Todas as informaes dos slides foram retiradas da Transparncias do livro


acima acessados no site:

http://www2.dcc.ufmg.br/livros/algoritmos/cap5/slides/c/completo1/cap5.pdf

Você também pode gostar