Você está na página 1de 31

rvores Trie e Patricia

Mrcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com

rvores Trie

Definida em 1960 por Edward Fredkin

Vm de Retrieval (Relacionado Recuperao de Informaes)


Para distino com tree pronuncia-se try Cada n contm informaes sobre um ou mais smbolos 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)
2 Estrutura de Dados II - Mrcio Bueno

rvores Trie

As Tries so boas para suportar tarefas de tratamento lexicogrfico, tais como:


manuseamento de dicionrios; pesquisas em textos de grande dimenso; construo de ndices de documentos; expresses regulares (padres de pesquisa).

Estrutura de Dados II - Mrcio Bueno

rvores Trie

O caminho da raiz (root) da trie para qualquer outro n em representa um prefixo de uma string Em Tries Compactas todos os descendentes diretos do mesmo pai so agrupados No ltimo nodo, o ltimo caracter da palavra sendo procurada dever ter associado a si (como seu apontador) a posio da palavra no texto

Estrutura de Dados II - Mrcio Bueno

rvores Trie

Estrutura de Dados II - Mrcio Bueno

rvores Trie

Estrutura de Dados II - Mrcio Bueno

rvores Trie

Portanto: Cada nvel da rvore que se desce, corresponde a avanar um elemento na chave; Cada n pode conter informao sobre um ou mais smbolos do alfabeto utilizado. Assim: uma dada sequncia de arestas pode formar qualquer palavra (chave) possvel com base nesse alfabeto; no existe limite para o tamanho de uma sequncia (e portanto para o tamanho de uma chave); as sequncias tm comprimento varivel.
7 Estrutura de Dados II - Mrcio Bueno

R-Way Trie

Cada n aloca espao para todos os caracteres do alfabeto. Quase sempre h desperdcio de espao.

R = nmero de letras do alfabeto.


8 Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie

Busca: localizar um dado que corresponde a chave informada; Problema: seria em um sistema de cadastros de pessoas, onde quando temos nomes com grafias semelhantes (Manuel/Manoel, Elaine/Elayne, Luis/Luiz), podem ocorrer erros na entrada desses dados, ou seja, de no ser que sejam testados os possveis erros cometidos.

Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie

Soluo do problema: existe

um mtodo de busca por aproximao de correspondncia, onde podemos localizar dados que so semelhantes a uma chave informada. Pela estrutura de representao de caractere a caractere usada nas tries, elas acabam tendo um desempenho muito bom nesse tipo de aplicao.

10

Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Corretor Ortogrfico

Aplicao usual de Trie o corretor ortogrfico. Nesse tipo de programa as palavras so comparadas com um dicionrio armazenado em arquivo, e se no so encontradas indica-se as opes para correo.

11

Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Corretor Ortogrfico

Com o dicionrio armazenado numa trie, podese percorrer essa estrutura letra por letra para encontrar, ou no a palavra testada. Com base na chave informada o algoritmo vai percorrer a rvore que contm o dicionrio, enquanto as letras da chave e alguma letra de cada nvel da rvore coincidirem. Caso seja detectado um erro na chave o algoritmo verifica a possibilidade de ocorrncia de cada um tipos de erros para poder indicar as opes de correo.
12 Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Corretor Ortogrfico


1. 2. 3.

4.

Substituio - avana um caracter na chave e avana um nvel na rvore; Deleo - avana um nvel na rvore; Insero - avana um caracter na chave; Transposio - avana um nvel na rvore e testa a posio atual da chave, se coincidir, avana um caracter na chave e retrocede um nvel na rvore para confirmar a inverso.

13

Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Corretor Ortogrfico


Com as seguintes palavras: ABA, ANDA, MACA, MESA, MORTE, MOSCA. Digamos que a chave a ser testada seja ADA, onde ocorreu erro na tentativa de escrever ABA. Ser realizada a seguinte seqncia de testes : * A = A - ok * D = B - erro * D = N - erro * prximo passo avana na chave e na rvore (substituio) * A = A - ok

14

Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Corretor Ortogrfico


Detectado erro de substituio, onde a letra B foi substituda por D. Nesse ponto o algoritmo pode parar e apresentar as opes de correo, ou continuar verificando ocorrncia dos outros tipos de erros a partir do ponto em que foi encontrada divergncia entre o dicionrio e a chave. Vamos ento analisar o teste de erro de deleo para a mesma chave. * A = A - ok * D = B - erro * D = N - erro * prximo passo avana somente na rvore (deleo) * D = A - erro * D = D - ok * A = A - ok Detectado erro de deleo, onde a letra N foi suprimida da chave.

15

Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Auto-Preenchimento


Armazena palavras mais usadas em uma TRIE A medida que vai digitando exibe as opes possveis de palavras j usadas

16

Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Auto-Preenchimento


Utilizao desta aplicao: Browsers; Programas de e-mail: Gmail e o Yahoo! mail, at linguagens de programao. Srie de endereos que j foram usados (browser/email) ou os comandos disponves (linguagem de programao). So armazenados em tries e a medida que digitada uma seqncia de caracteres o algoritmo vai comparando a existncia de correspondncias na estrutura. A cada caractere digitado, so apresentadas as opes de preenchimento, e no momento em que s existir um caminho possvel a ser seguido na trie ocorre o preenchimento automtico.

17

Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Auto-Preenchimento M


A C A E S A O R T E
18

M O S C A

S C A
Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Auto-Preenchimento M


A C A E S A O R T E
19

M O S C A
maca mesa morte mosca

S C A
Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Auto-Preenchimento M


A C A E S A O R T E
20

M O S C A
morte mosca

S C A
Estrutura de Dados II - Mrcio Bueno

Aplicaes de Trie: Auto-Preenchimento M


A C A E S A O R T E
21

M O S C A

S C A
Estrutura de Dados II - Mrcio Bueno

rvores Trie Insero


feita uma busca pela palavra a ser inserida, se ela j existir na trie nada feito, caso contrrio, recuperado o n at onde acontece a maior substring da palavra a ser inserida, sendo o restante dos seus caracteres (palavra prefixo) adicionados na trie a partir daquele n.

22

Estrutura de Dados II - Mrcio Bueno

rvores Trie - Remoo


Tendo a busca encontrado o n que representa o final da palavra a ser removida, so removidos os ns que possuem apenas um filho seguindo o caminho ascendente. A remoo concluda quando se encontra um n com mais de um filho.

23

Estrutura de Dados II - Mrcio Bueno

rvores PATRICIA
P ratical A lgorithm To R etrieve I nformation C oded I n A lphanumeric
24 Estrutura de Dados II - Mrcio Bueno

rvores PATRICIA

Definida em 1968 por Donald R. Morrison Trie Compactada Binria Caminhos que possuem ns com apenas 1 filho so agrupados em uma nica aresta Diferente das Tries no armazena informaes nos nodos internos, apenas contadores e ponteiros para cada subrvore descendente.

25

Estrutura de Dados II - Mrcio Bueno

rvores PATRICIA
Exemplo de Representao ::
Campo Avanar Campo Comparar Com

26

Estrutura de Dados II - Mrcio Bueno

rvores PATRICIA

Exemplo de Representao Campo Avanar


Identifica qual a Posio do Caracter da Chave Informada que deve ser analisado

Registro Acumulativo que Integra todos os Nodos Exceto os Folhas

Campo Comparar Com


Apresenta o Caracter que deve ser Comparado ao Caracter da Chave Informada Como nas rvores Binrias de Busca, aps a anlise, se a Chave Menor ou Igual ao Nodo ela Alocada/Consultada Esquerda seno Direita

27

Estrutura de Dados II - Mrcio Bueno

rvores PATRICIA
Exemplo de Insero ::
Palavra 1 = Consultrio Palavra 2 = Consultar
Encontrada Diferena No Oitavo Caracter

Consultrio,Consulta

8,a Consulta
28

Alocao do Nodo Pai Armazenamento do Registro

Consultrio
Estrutura de Dados II - Mrcio Bueno

rvores PATRICIA
Exemplo de Insero 2 ::
Palavra 1 = Consulado
Verificada DIferena no Stimo Caracter dos Nodos Existentes

Consultrio,Consulta

7,a

Alocao do Nodo para Alocao da Nova Palavra Acumulador Atualizado Consultrio

Consulado Consultar
29

1,a

Estrutura de Dados II - Mrcio Bueno

rvores PATRICIA
Exemplo de Consulta ::
Busca por Consultrio 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 percorre a sub-rvore da direita e acha a palavra.

7,a

Consulado Consultar

1,a
Consultrio

30

Estrutura de Dados II - Mrcio Bueno

rvores PATRICIA
Exemplo de Deleo ::
Apagar Consulado 7,a Etapas:
1) Primeiro Busca-se e Apaga-se a Palavra Consulado da rvore 2) Soma-se o valor do Campo Avanar do N Pai a Todos os ns FIlhos Consultrio

Consulado Consultar

1,a

8,a Consultar
31

Consultrio
Estrutura de Dados II - Mrcio Bueno

Você também pode gostar