universidade catÓlica de pelotas mestrado em ciência da computação aluno: cleber gouvêa...
TRANSCRIPT
UNIVERSIDADE CATÓLICA DE PELOTASMestrado em Ciência da Computação
Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi
ÁRVORES PATRÍCIA
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
SUMÁRIO ::
Introdução
Árvores Trie
Árvores Patrícia
Exercício Prático
Conclusão
Referências Bibliográficas
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
http://del.icio.us/cleberg/patriciatree
NOSSA TAG > PATRICIATREE
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
INTRODUÇÃO ::
ÁRVORE
TRIE
PATRICIA TRIE
ÁRVORE DE SUFIXO
Tries e Relações
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
ÁRVORES TRIE ::
Definida em 1960 por Edward Fredkin
Vêm de Retrieval (Relacionado à Recuperação de Informações)
Para distinção com tree pronuncia-se try
Cada nó contém informações sobre um ou mais símbolos do alfabeto utilizado
O Alfabeto pode abranger: {0,1} , {A,B,C,D...} ou {0,1,2,3,4...} e mais o caracter nulo (ou branco)
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
ÁRVORES TRIE ::
O caminho da raiz (root) da trie para qualquer outro nó em representa um prefixo de uma string
Principais Aplicações Abrangem: Corretores Ortográficos, Auto-Preenchimento de Textos e Armazenamento/Busca de Documentos XML
Em Tries Compactas todos os descendentes diretos do mesmo pai são agrupados
No último nodo, o último caracter da palavra sendo procurada deverá ter associado a si (como seu apontador) a posição da palavra no texto
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
ÁRVORES TRIE :: Exemplo de Representação
R-Way Trie
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
INTRODUÇÃO ::
P raticalA lgorithmT oR etrieve
A lphanumeric
I nformation
C oded
I n
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
INTRODUÇÃO ::
Definida em 1968 por Donald R. Morrison
Trie Compactada Binária
Caminhos que possuem nós com apenas 1 filho são agrupados em uma única aresta
Diferente das Tries não armazena informações nos nodos internos,apenas contadores e ponteiros para cada sub-árvore descendente.
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Exemplo de Representação ::
Campo AvançarCampo Avançar Campo Comparar ComCampo Comparar Com
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Exemplo de Representação ::
Campo Avançar Registro Acumulativo que Integra todos os Nodos Exceto os
Folhas Identifica qual a Posição do Caracter da Chave Informada que
deve ser analisado
Campo Comparar Com Apresenta o Caracter que deve ser Comparado ao Caracter da
Chave Informada Como nas Árvores Binárias de Busca, após a análise, se a Chave é Menor ou Igual ao Nodo ela é Alocada/Consultada à Esquerda senão à Direita
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Exemplo de Inserção ::
Palavra 1Palavra 1 = Consultório
Palavra 2Palavra 2 = Consultar
Consultório,Consulta
8,a
Consulta Consultório
Alocação do Nodo Pai Armazenamento do Registro
Encontrada DiferençaNo Oitavo Caracter
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Exemplo de Inserção 2 ::
Palavra 1Palavra 1 = Consulado
Consultório,Consulta
7,a
Consulado
Consultório
Alocação do Nodo para Alocação da Nova Palavra
Verificada DIferença noSétimo Caracter dos NodosExistentes
1,a
Consultar
Acumulador Atualizado
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Exemplo de Consulta ::
7,a
ConsuladoConsulado
ConsultórioConsultório
1,a
ConsultarConsultar
Busca por “Consultório”Etapas:
1) Primeiro Nodo Informa pra Comparar 7º Caracter da Palavra com “a”.
2) Como “t” é maior que “a” desloca-se pra sub-árvore da direita.
3) Compara-se agora o Caracter 8º Caracter da Chave com “a”
4) Como “ó” é maior que a ele percorrea sub-árvore da direita e acha a palavra.
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Exemplo de Deleção ::
ConsuladoConsulado
ConsultórioConsultório
1,a
ConsultarConsultar
7,a
ConsultórioConsultório
8,a
ConsultarConsultar
Etapas:
1) Primeiro Busca-se e Apaga-se a Palavra “Consulado” da Árvore
2) Soma-se o valor do Campo Avançar do Nó Pai a Todos os nós FIlhos
Apagar “Consulado”
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Programa de Inserção ::
patricia insert( key, t ) typekey key; patricia t;
{ patricia p; patricia InsBetween();
int i;
if (t==NULL) return( NewDataNode(key) );
for( p=t; !IsData(p); ) p = bit( p->level, key ) ? p->right : p->left ;
/* find first different bit */ for (i=1; i<=D && bit(i,key)==bit(i,p->k); i++); if (i>D) { Error /* Key already in table */; return(t); } else return( InsBetween( key, t, i ) ); }
patricia InsBetween( key, t, i ) typekey key; patricia t; int i;
{ patricia p;
if ( IsData(t) || i < t->level ) { /* create a new internal node */ p = NewDataNode( key ); return( bit(i,key) ? NewIntNode(i,t,p) : NewIntNode(i,p,t) ); }
if (bit(t->level,key)==1) t->right = InsBetween( key, t->right, i ); else t->left = InsBetween( key, t->left, i ); return( t ); };
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Programa de Consulta ::
search( key, t ) typekey key; patricia t;
{ if ( t==NULL ) notfound( key ); else { while ( !IsData(t) ) t = bit(t->level,key) ? t->right : t->left; if ( key == t->k ) found( t ); else notfound( key ); }
};
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Suffix Tree ::
Definida por P. Weiner em 1973
Árvore Patrícia construída sobre todas as possíveis sistrings de um texto
Sistrings são strings com início em algum ponto do textoe com término no fim
Principais Aplicações abrangem índices Full-Text e Algoritmosde Clustering
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Suffix Tree (Exemplo) ::
String: DEADBEEF
SistringsSistringsS1: DEADBEEFS2: EADBEEFS3: ADBEEFS4: DBEEFS5: BEEFS6: EEFS7: EFS8: F
Folha Armazena a Posição
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Considerações Finais ::
Tries e Árvores de Sufixo são ideais quando se deseja
Flexibilidade e Escalabilidade para as Consultas
Árvores Patrícia buscam tornar mais compactas as Triescom isso ganham em Velocidade, por outro lado não possuem
Escalabilidade adequada quando se têm muitas chaves distintaspara um mesmo caracter
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
Referências Bibliográficas ::
Tries and Suffix Trees. McGill University: School of Computer Science. Disponível em:http://www.cs.waikato.ac.nz/Teaching/COMP317B/Week_4/Tries-and-suffix-trees.html
GOETZE, Ari Ricardo. Universidade do Vale do Rio dos Sinos. DisponíveL em http://www.inf.unisinos.br/~ari/estrut/estrut.htm
HORA, André Cavalcante, CRUZ Cicero Alan Leite, SILVA Tiago Eduardo. Tries e Árvore Patricia. Disponível em http://dalton.dsc.ufcg.edu.br/edados/index.php/Tries_e_%C3%81rvores_Patricia
FRAKES, W., BAEZA-YATES R. Information Retrieval: Data Structures and Algorithms, Prentice Hall, 1992.
Demais em: http://del.icio.us/cleberg/patriciatree