Está en la página 1de 29

arboles

Arboles de orden >= 2 Claves de longitud variable La decisin sobre cul es el camino a seguir
se toma sobre la base de la pocin de la clave Applications:
Diccionarios Textos de busqueda (patricia tries) comprecion (Ziv-Lembel codificacion)
Tries

E.G.M. Petrakis

EJEMPLO
MACCBOY
MACAW MACARON MACARONI MACARONIC MACAQUE MACADAMIA MACADAM MACACACO MACABRE . . .
Tries 2

E.G.M. Petrakis

1. Palabras en Arboles
M A C A B R E @ C A C O @ @ D A M I A @ Q U E @ @ N I R O W B @ O O Y N @ C @ @ C A

E.G.M. Petrakis

@: palabra termina smbolo tantas palabras como smbolos de terminacin


Tries

Busqueda de palabras
A mas m+1 comparacion para encontrar palabra
x@=a1a2.am+1, con root: i=1 y t(ai): child of node ai. i=1; u = ai; while (u != @ && i <= m) { if (t(ai): undefined) X is not in the trie; else { u = t(ai); i = i+1; } if (u == @ && word(t) == X) X is in the trie; else X is not in the trie; }
E.G.M. Petrakis Tries 4

2. Palabras en las ojas


M A C A C Q

MACABRE MACACO

D A

MACADAM MACADAMI

MACAQUE M N

W MACCBOY

O MACAW O MACAROON

. .
Tries

MACARONI

MACARONIC
E.G.M. Petrakis 5

Ejemplo de Implemantacion

26 symbols/node => sobrecarga de espacio grande


E.G.M. Petrakis Tries 6

Inserciones

bluejay insertado

E.G.M. Petrakis

Tries

3. Arbol compacto
Nodos compactos
A ... DAM MACADAM Q MACAQUE RO N MACAW MACAROO I C MAC C MACABOY

MACADAMI

MACARON MACARONI

Palabras en las ojas

MACARONIC
E.G.M. Petrakis Tries 8

Patricia Trie
Algoritmo de prctica para recuperar
informacin codificada en formato alfanumrico
especialmente bueno para la bsqueda de texto reemplazar sub-palabras por una posicin de
referencia en el texto junto con su longitud
e.g., jay in the blue jay is (10,3)

Nodos internos mantener slo la longitud y la

primera letra de la frase nodos externos mantener la posicin de la frase en el texto


E.G.M. Petrakis Tries 9

Sufijo Trie
Contruir un arbol con

todos sus sufijos the blue-jay@ => 12 sufijos Unir las ramas con prefijo comn Hojas vasta sealar Search: e-jay
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Tries

longitud de la consulta: 5 Basta comprobar las posiciones 3+5 y 7+5 E.G.M. Petrakis La segunda partida

Ir a las posicion 3 o 7 aumentar en uno

theblue-jay@ heblue-jay@ eblue-jay@ blue-jay@ lue-jay@ ue-jay@ e-jay@ -jay@ jay@ ay@ y@ @
10

Sufijo Trie
the
1 2 4 5 6 8 9 10

blue-jay
y
12

h e
3

b
7

11

buscar: e-jay@

E.G.M. Petrakis

Tries

11

Buscar Patricia
Escanear consulta de izquierda a
derecha ir al primer smbolo correspondiente en trie aumentar por el incremento si no en el trie => buscar no si todos los smbolos coinciden con la consulta => encontrado!
Tries 12

E.G.M. Petrakis

Pros y contras de Patricia


Bueno para aplicaciones de
almacenamiento secundarios el trie no es alta La sobrecarga de espacio sigue siendo un problema Principalmente til para entornos estticos
E.G.M. Petrakis Tries 13

Principalmente compresin mtodo


smbolos

Ziv-Lempel Codificado

para cualquier tipo de datos sobre la base de intentos y alfabetos de

Idea principal: calcular el cdigo para la


repeticin de smbolos o conjuntos de smbolos A nivel mundial y una ptima localmente En comparacin con Huffman
ningn conocimiento a priori de las
probabilidades de smbolos Huffman es ptima a nivel mundial, pero no siempre Localmente ptima (para las partes de la Tries entrada)

14

Codificacion
Construir trie:
nodos: codigo de un simbolo o de sequencia de
simbolos arc: simbolos alfabeticos Inicialmente un arbol con todos sus simbolos Su simbolo es asignado a un unico codigo

Escanear entrada de izquierda a derecha:


Leer siguiente simbolo Seguir apropiadamente la rama en el arbol Si el simbolo no esta en el arbol => insertar simbolo en
el arbol, asignar un nuevo codigo y salida del codigo
Tries E.G.M. Petrakis 15

inicial trie
root a
1 2

b
3

c
........

z
26

codigos

E.G.M. Petrakis

Tries

16

alfabeto {a, b, c} Arbol inicial:

b 1 2

Entrada:
a 1 b 2 a 3 b 4 c 5 b 6 a 7 b 8 a 9 b 10 a 11 a 12

E.G.M. Petrakis

Tries

17

b 1 2

3 1

b 2

salida 1
b 1 b 4
E.G.M. Petrakis Tries

salida 2
c

2 3

b 1 b 4 5 2

3
18

salida 4
b 1 b 4 5
c

c 2 3

c b 2

1 b 4 5

salida 3
6

b 2
E.G.M. Petrakis

c 3 b 5 7

Tries

b 5

19

salida 5
b 2 5 b 8

salida 8
b

b 2 5 b 8

salida 1
1 b 4 1 c 6

c 2 5 b 8

b 2 5 b 8

E.G.M. Petrakis

Tries

20

Decodificacion
Seguir las secuencias similares de
saltos en orden inbertido Comensar desde el primer arbol Escanear el codigo de izquierda a

derecha Leer siguiente simbolo de codigo Ir al nodo teniendo un codigo similar Si el codigo no esta en le arbol adivinar la paropiada pisicion en el arbol
Tries 21

E.G.M. Petrakis

Alfabeto: {a, b, c} Codigo: 1 2 4 3 5 8 1 c

b
2 3

E.G.M. Petrakis

Tries

22

leer(1): deberia ser para a


output
b 1 2 3 c

b 2

b 1 2

c 3

salida b

Tries

b 4 E.G.M. Petrakis

En orden in de 1 a 2, nosotros devemos visitar b


23

En orden in de2 a 4 nosotros devemos ir atraves de ab (pasando por 1) a era hijo de 2


salida b

b 1 b 4 5 2 3

E.G.M. Petrakis

Tries

24

En orden ir de 4 a 3 devemos ir atraves de c y c era hijo de 4


b 1 b 4 c 6
E.G.M. Petrakis Tries 25

c 2 5 3

output c

En orden ir de 3 a 5 devemos ir atraves de ba y b era su hijo 3 The next symbol is 8, but there is no 8 in the trie!!
b 1 b 4 c 6
E.G.M. Petrakis Tries 26

c 2 5 7 3 b

Esto podria pasar solo is despues 5 pasemos atraves de la parte parecida 8 no puede ser bajo 6 o 7 (no esta hay 6 o 7 en el codigo)
b 1 b 4 c 6
E.G.M. Petrakis

c 2 5 b 8
Tries

salida bb

3 b 7

27

b 1 b 4 c 6 8 9
E.G.M. Petrakis Tries

c 2 5 b 7 3 b

salida

28

Generalizando
.....
d

.....

.....
x

.....

.....

.....
x

d n

salida dxd
Caso especial: x podria ser nulo
E.G.M. Petrakis Tries 29

También podría gustarte