57
ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

Embed Size (px)

Citation preview

Page 1: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

ÁRVORES TRIES

Disciplina Estrutura de Dados

Prof. Dr. Paulo Roberto Gomes LuzzardiMestrando Ulisses Andrade Cava

Page 2: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

ROTEIRO

0. Introdução1. CHAVES: Características2. TRIE: a estrutura3. Montando uma árvore TRIE4. Operações em TRIES5. Tipos de TRIES6. Vantagens e Desvantagens7. Aplicações8. Referências9. Fim

Page 3: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

0. Introdução

• TRIE vem de RETRIEVAL – RECUPERAÇÃO

• A pronúncia: TRI ou TRAI

• É um tipo de árvore de busca como B, ISAM, quadtrees, e vermelho-preto.

• Idéia geral: usar partes das CHAVES como caminho busca

• Origem: anos 60 por Edward Fredkin

Page 5: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

ROTEIRO

0. Introdução1. CHAVES: Características2. TRIE: a estrutura3. Montando uma árvore TRIE4. Operações em TRIES5. Tipos de TRIES6. Vantagens e Desvantagens7. Aplicações8. Referências9. Fim

Page 6: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

1. CHAVES: Características

• Cada chave formada por palavras sobre um alfabeto

• Palavras com tamanho variável e ilimitado• Em geral associam-se chaves a elementos ou

registros, como na tabela Hash

Page 7: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

1. CHAVES: Características

• Cada chave é formada a partir de alfabeto de símbolos

• Exemplos de alfabetos: {0,1}, {A, B, C, D, E,...Z}, {0,1,2,3,4,5,...,9}

• Exemplos de chaves: ABABBBABABA 19034717 Maria 010101010000000000101000000001010

• Chaves parcialmente partilhadas entre os elementos

Page 8: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

ROTEIRO

0. Introdução1. CHAVES: Características2. TRIE: a estrutura3. Montando uma árvore TRIE4. Operações em TRIES5. Tipos de TRIES6. Vantagens e Desvantagens7. Aplicações8. Referências9. Fim

Page 11: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

2. Trie: A estrutura

• Árvore ordenada e n-ária

Page 12: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

• Chaves em geral caracteres

2. Trie: A estrutura

Page 13: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

• Ao contrário da árvore de busca binária nenhum nó armazena a chave

2. Trie: A estrutura

Page 14: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

• Chave determinada pela posição na árvore

2. Trie: A estrutura

Page 15: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

• Descendentes de mesmo nó com mesmo prefixo

2. Trie: A estrutura

Page 16: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

• Raiz: cadeia vazia

2. Trie: A estrutura

Page 17: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

• Valores ou elementos associados a folhas ou a alguns nós internos de interesse

2. Trie: A estrutura

Page 18: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

• O caminho da raiz para qualquer outro nó é um prefixo de uma string

2. Trie: A estrutura

Page 19: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

2. Trie: A estrutura

• O grau corresponde ao tamanho do alfabeto• A trie pode ser vista como um autômato finito• Cada nível que se desce corresponde a

avançar um elemento na chave

Page 20: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

ROTEIRO

0. Introdução1. CHAVES: Características2. TRIE: a estrutura3. Montando uma árvore TRIE4. Operações em TRIES5. Tipos de TRIES6. Vantagens e Desvantagens7. Aplicações8. Referências9. Fim

Page 21: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE

• amy 56 • ann 15 • emma 30 • rob 27 • roger 52

Estes são pares que queremos colocar na árvore TRIE

Page 22: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE

• amy 56

a

m

y

/0 56

<- Nível 0 (RAIZ)

<- Nível 1

<- Nível 2

<- Nível 4

<- Nível 5

Page 23: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE

• INSIRA

ann 15

Page 24: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE

• ann 15

a

m

y

/0 56

n

n

/0 15

Page 25: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE

• INSIRA

emma 30

Page 26: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE• emma 30

a

m

y

/0 56

n

n

/0 15

e

m

m

a

/0 30

Page 27: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE

• INSIRA

rob 27

Page 28: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE• rob 27

a

m

y

/0 56

n

n

/0 15

e

m

m

a

/0 30

r

o

b

/0 27

Page 29: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE

• INSIRA

roger 52

Page 30: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE• roger 52

a

m

y

/0 56

n

n

/0 15

e

m

m

a

/0 30

r

o

b

/0 27

g

e

r

/0 52

Page 31: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE

• INSIRA

anne 67

Page 32: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE• anne 67

a

m

y

/0 56

n

n

/0 15

e

m

m

a

/0 30

r

o

b

/0 27

g

e

r

/0 52

e

/0 67

Page 33: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE

• INSIRA

ro 23

Page 34: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

3. Montando uma árvore TRIE

• ro 23

a

m

y

/0 56

n

n

/0 15

e

m

m

a

/0 30

r

o

b

/0 27

g

e

r

/0 52

e

/0 67

/0 23

Page 35: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

EXERCÍCIO• Quais chaves/palavras estão representadas

nesta trie?

f

o

i*

u

i*

a

i*

e

r*

v

i *

u*m

o

s*

r

a*

e

m

o

s*

Page 36: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

ROTEIRO

0. Introdução1. CHAVES: Características2. TRIE: a estrutura3. Montando uma árvore TRIE4. Operações em TRIES5. Tipos de TRIES6. Vantagens e Desvantagens7. Aplicações8. Referências9. Fim

Page 37: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

4. Operações em TRIES

• INSERÇÃO

• ALGORITMO “É MEMBRO”

• REMOÇÃO

Page 38: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

4. Operações em TRIES

• INSERÇÃOFaz-se uma busca pela palavra a ser inserida.Se ela já existir na TRIE nada é feito.Caso contrário, é recuperado o nó até onde acontece a maior substring da palavra a ser inserida.O restante dos seus caracteres são adicionados na TRIE a partir daquele nó

Page 39: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

4. Operações em TRIESInserção : bbaabb

a

a

b

b

a

a

b

a

a

b

b

b

a

b

a

b

aa

b

b

b

b

Busca pára aqui

Page 40: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

4. Operações em TRIESInserção : bbaabb

a

a

b

b

a

a

b

a

a

b

b

b

a

b

a

b

aa

b

b

b

b

b

b

Page 41: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

4. Operações em TRIES• É MEMBRO

1. Busca no nível superior o nodo que confere com o primeiro caractere (corrente) da chave2. Se nenhum, retorna FALSO Senão3. Se o caractere que confere é \0 Retorna Verdadeiro Senão4. Move para a subTRIE que confere com esse caractere5. Avança para o próximo caractere na chave6. Vá para passo 1

Page 42: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

4. Operações em TRIES

• REMOÇÃOBusca-se o nó que representa o final da palavra a ser removida.São removidos os nós que possuem apenas um filho pelo caminho ascendente.A remoção é concluída quando se encontra um nó com mais de um filho

Page 43: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

4. Operações em TRIESRemoção : bbaaa

a

a

b

b

a

a

b

a

a

b

b

b

a

b

a

b

aa

b

b

b

b

Page 44: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

4. Operações em TRIESRemoção : bbaaa

a

a

b

b

a

a

b

b

b

b

a

b

a

b

a

b

b

b

b

Page 45: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

4. Operações em TRIES

• COMPLEXIDADEA altura da árvore é igual ao comprimento da chave mais longaO tempo de execução das operações não depende do número de elementos da árvoreComplexidade: O (AK)A = tamanho do alfabetoK = tamanho da chaveA utilização de uma TRIE só compensa se o acesso aos componentes individuais das chaves for bastante rápidoQuanto maior a estrutura mais eficiente uso do espaço Para enfrentar o desperdício de espaço com estruturas pequenas foram criadas as árvores PATRÍCIA

Page 46: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

ROTEIRO

0. Introdução1. CHAVES: Características2. TRIE: a estrutura3. Montando uma árvore TRIE4. Operações em TRIES5. Tipos de TRIES6. Vantagens e Desvantagens7. Aplicações8. Referências9. Fim

Page 47: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

5. Tipos de TRIES

• Existem muitas variantes e tipos de TRIES– R-WAY – DST (Digital Search Tree)– Suffix Tree– Patrícia Tree– DAWG (Directed Acyclic Word Graph)– TST– etc

Page 48: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

5. Tipos de TRIESR-WAYCada nó aloca espaço para todo o alfabetoHá desperdício de espaço.Descendentes diretos de um pai ficam num nó só

Page 49: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

5. Tipos de TRIESTST- Ternary Search Tree

Cada nó aloca três ponteiros

Centro: caractere seguinteFilhos da esquerda e direita : caracteres alternativos

Tem desempenho melhor no que se refere a espaço.

Page 50: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

5. Tipos de TRIES

TST- Ternary Search Tree

Chaves: by, sea, sells, shells, shore, the

Page 51: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

ROTEIRO

0. Introdução1. CHAVES: Características2. TRIE: a estrutura3. Montando uma árvore TRIE4. Operações em TRIES5. Tipos de TRIES6. Vantagens e Desvantagens7. Aplicações8. Referências9. Fim

Page 52: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

6. Vantagens e DesvantagensVantagensNas R-Way a busca é ramdômica em cada nível/caractere, aumentando a velocidade do acesso

Não precisa aplicar funções para converter chaves alfabéticas em numéricas

DesvantagensNas R-Way, nodos próximos às folhas terão subTRIES como NIL, desperdiçando espaço.

Page 53: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

ROTEIRO

0. Introdução1. CHAVES: Características2. TRIE: a estrutura3. Montando uma árvore TRIE4. Operações em TRIES5. Tipos de TRIES6. Vantagens e Desvantagens7. Aplicações8. Referências9. Fim

Page 54: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

7. Aplicações das TRIES

Dicionários (telefone celular)

Corretores Ortográficos

Programas para compreender Linguagem Natural

Auto-preenchimento:browsers, e-mail, linguagens de programação

Page 55: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

*Compressão de dados

*Biologia computacional

* Tabelas de roteamento para endereços IP* Armazenar e consultar documentos XML* Fundamental para o Burstsort (o método mais rápido de ordenação de strings em memória/cache)* Tabelas de símbolos em compiladores

7. Aplicações das TRIES

Page 56: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

8. Referências

• http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic7/• http://everything2.com/e2node/Trie• http://www.infotem.hpg.ig.com.br/tem_progr_arvores.htm• http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Tree/Trie/• http://

www.gpec.ucdb.br/pistori/disciplinas/ed/aulas_II/bd.htm• http://www.cs.bu.edu/teaching/c/tree/trie/• http://www.cs.bu.edu/teaching/c/tree/trie/• http://

www.cs.princeton.edu/courses/archive/spr04/cos226/lectures/trie.4up.pdf

Page 57: ÁRVORES TRIES Disciplina Estrutura de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Mestrando Ulisses Andrade Cava

FIMFIM

FIM