Árvores Equilibradas
Sumário
 Splay
 Vermelho-Preto
 AA e BB
 Multidimensionais
 quaternárias
 k-d
 Pesquisa Lexicográfica
 tries multivia
 tries binárias
 PATRICIA
TRIE
Trie

Árvore multivia (origem do nome “info retrieval”)

Em vez de comparar chaves completas
 aplicar a ideia de consulta de tabela à pesquisa de informaçõo numa árvore
 utilizar cada letra de uma chave para fazer escolhas múltiplas sucessivas
 típico: usar só as primeiras letras porque depois a árvore expande muito (26 vias
em cada passo)
 podem omitir-se os caminhos que não vão dar a uma chave
 pode combinar-se com outro método (para o resto da chave)
 número de passos na pesquisa proporcional ao número de caracteres na chave
chave de 5 letras
localiza 26^5 = 11 881 376 posições
trie : 5 iterações
pesquisa binária: log n = 23.5 comparações de chaves
TRIE
Trie lexicográfica
...
a
b
c
...
ab
ac
TRIE
Trie binária
A
S
E
R
C
H
I
N
G
X
M
P
L
00001
10011
00101
10010
00011
01000
01001
01110
00111
11000
01101
10000
01100
b=5
A
0
1
E
S
1
0
0
C
H
1
0
G
0
R
1
0
I
1
0
N
1
0
1
0
X
1
0
1
P
1
0
1
M
0
Árvores resultam equilibradas
Pesquisa: 1 comparação de chave por nó
L
0
1
1
Caso médio: log N comparações
Pior caso: b comparações
TRIE
Trie binária com chaves em nós externos
A
S
E
R
C
H
I
N
G
X
M
P
L
00001
10011
00101
10010
00011
01000
01001
01110
00111
11000
01101
10000
01100
b=5
E
A
C
R
S
Árvore não depende da ordem de inserção
Pesquisa: 1 só comparação de chave
Caso médio: log N comparações de bits
Pior caso: b comparações de bits
TRIE
Eficiência na pesquisa em Trie

Trie fornece equilíbrio quase automático da árvore
 em chaves aleatórias, as probabilidades para 0 e 1 nos bits são iguais
 nenhum caminho na árvore tem comprimento superior ao número de bits da chave

Eficiência
 condicionada pela facilidade em realizar operações ao bit (extracção e comparação)

Altura da trie
 limitada pelo número de bits nas chaves

Chaves podem ser muito longas quando se faz pesquisa em documentos
 Solução 1: usar árvore multivia, considerando os bits em grupos
 melhorar pesquisa com factor 2m, mas espaço de links não usados aumenta
 pode usar-se híbrido: multivia no topo da árvore e método elementar no fundo
 Solução 2 (PATRICIA): encurtar caminhos que ramificam só para um lado
 de “Practical Algorithm To Retrieve Information Coded In Alphanumeric” D.R. Morrison
TRIE
PATRICIA

Para resolver caminhos que ramificam só para um lado
 em cada nó: índice do bit a testar para decidir caminho a partir do nó
 nós externos: substituídos por ligações para o nó interno onde se encontra a chave
 só há um tipo de nós
 apontadores “para cima” fáceis de identificar: são para nós com índice superior
 pesquisa e inserção
 descida na árvore não usa as chaves do nó, apenas o seu índice
 quando se atinge um nó externo o apontador “para cima” dá o nó para recuperar a chave
 Chave a pesquisar existe: se é a chave do nó referido pelo primeiro apontador “para cima”
TRIE
PATRICIA
A
S
E
R
C
H
I
N
G
X
M
P
L
4
00001
10011
00101
10010
00011
01000
01001
01110
00111
11000
01101
10000
01100
S
1
3
H
X
2
2
1
E
N
P
1
C
3
G
0
1
I
M
0
R
0
0
A
L
Chave R corresponde a padrão 10*10
1 comparação de chave completa por pesquisa
TRIE
PATRICIA - Inserção externa
4
S
1
3
H
X
2
2
1
1
E
N
P
Z
1
C
3
G
0
1
I
M
0
R
0
0
A
L
X = 11000
Z = 11010
TRIE
PATRICIA - Inserção interna
4
S
1
3
H
X
2
2
2
1
E
N
T
Z
1
C
3
G
0
I
0
0
A
L
1
1
M
P
0
R
P = 10000
T = 10100
TRIE
Download

Tries