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