universidade catÓlica de pelotas mestrado em ciência da computação aluno: cleber gouvêa...
TRANSCRIPT
![Page 1: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/1.jpg)
UNIVERSIDADE CATÓLICA DE PELOTASMestrado em Ciência da Computação
Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi
ÁRVORES PATRÍCIA
![Page 2: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/2.jpg)
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
![Page 3: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/3.jpg)
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
http://del.icio.us/cleberg/patriciatree
NOSSA TAG > PATRICIATREE
![Page 4: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/4.jpg)
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
![Page 5: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/5.jpg)
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)
![Page 6: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/6.jpg)
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
![Page 7: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/7.jpg)
Universidade Católica de Pelotas | Disciplina de Estrutura de Dados
ÁRVORES PATRICIA
ÁRVORES TRIE :: Exemplo de Representação
R-Way Trie
![Page 8: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/8.jpg)
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
![Page 9: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/9.jpg)
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.
![Page 10: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/10.jpg)
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
![Page 11: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/11.jpg)
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
![Page 12: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/12.jpg)
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
![Page 13: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/13.jpg)
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
![Page 14: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/14.jpg)
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.
![Page 15: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/15.jpg)
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”
![Page 16: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/16.jpg)
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 ); };
![Page 17: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/17.jpg)
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 ); }
};
![Page 18: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/18.jpg)
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
![Page 19: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/19.jpg)
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
![Page 20: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/20.jpg)
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
![Page 21: UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa Professor: Paulo Roberto Gomes Luzzardi ÁRVORES PATRÍCIA](https://reader035.vdocuments.site/reader035/viewer/2022062404/552fc14c497959413d8e2783/html5/thumbnails/21.jpg)
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