UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa...

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

Transcript of UNIVERSIDADE CATÓLICA DE PELOTAS Mestrado em Ciência da Computação Aluno: Cleber Gouvêa...

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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