Está en la página 1de 29

arboles

 Arboles de orden >= 2  Claves de longitud variable  La decisión sobre cuál es el camino a seguir
se toma sobre la base de la poción de la clave  Applications:
 Diccionarios  Textos de busqueda (patricia tries)  comprecion (Ziv-Lembel codificacion)
Tries

E.G.M. Petrakis

1

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

E.G.M. Petrakis

G.1. Petrakis @: palabra termina símbolo tantas palabras como símbolos de terminación Tries 3 . 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.M.

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

Tries I I MACARONI MACARONIC E. B C . R W MACCBOY O MACAW O MACAROON . MACAQUE M N .G.M. Petrakis 5 . C . Palabras en las ojas M A C A C Q MACABRE MACACO . . . .2. D A MACADAM MACADAMI .

Ejemplo de Implemantacion 26 symbols/node => sobrecarga de espacio grande E. Petrakis Tries 6 .M.G.

G.M.Inserciones “bluejay” insertado E. Petrakis Tries 7 .

G. Petrakis Tries 8 .. Arbol compacto Nodos compactos A .M.. DAM  MACADAM Q  MACAQUE RO N  MACAW  MACAROO I C MAC C  MACABOY I  MACADAMI  MACARON  MACARONI Palabras en las ojas  MACARONIC E.3.

“jay” in “the blue jay” is (10.G.Patricia Trie  Algoritmo de práctica para recuperar información codificada en formato alfanumérico  especialmente bueno para la búsqueda de texto  reemplazar sub-palabras por una posición de referencia en el texto junto con su longitud  e.g. Petrakis Tries 9 .M..3)  Nodos internos mantener sólo la longitud y la primera letra de la frase  nodos externos mantener la posición de la frase en el texto E.

G. 11. 8. 7. 2. 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 . 10. 5. 3. 4. 12.M.Sufijo Trie  Contruir un arbol con     todos sus sufijos “the blue-jay@” => 12 sufijos Unir las ramas con prefijo común Hojas vasta señalar Search: “e-jay” 1. 9. Tries longitud de la consulta: 5  Basta comprobar las posiciones 3+5 y 7+5 E. 6.

Sufijo Trie “the 1 2 4 5 6 8 9 10 blue-jay” y 12 t h e 3 b 7 l u - j a 11 @ b - buscar: “e-jay@” E. Petrakis Tries 11 .M.G.

M. Petrakis .Buscar Patricia  Escanear consulta de izquierda a     derecha ir al primer símbolo correspondiente en trie aumentar por el incremento si no en el trie => buscar no si todos los símbolos coinciden con la consulta => encontrado! Tries 12 E.G.

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 estáticos E.M.G. Petrakis Tries 13 .

 Principalmente compresión método símbolos Ziv-Lempel Codificado  para cualquier tipo de datos  sobre la base de intentos y alfabetos de  Idea principal: calcular el código para la repetición de símbolos o conjuntos de símbolos  A nivel mundial y una óptima localmente  En comparación con Huffman  ningún conocimiento a priori de las probabilidades de símbolos  Huffman es óptima a nivel mundial. pero no siempre  Localmente óptima (para las partes de la Tries entrada) 14 .

M.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. Petrakis 15 .

Petrakis Tries 16 ..G..M... z 26 codigos E..inicial trie root a 1 2 b 3 c ...

M. b. Petrakis Tries 17 . c} Arbol inicial: α b 1 2 c 3 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.alfabeto {a.G.

G.α b 1 2 c  3 1 α α b 2 c  3 b salida 1 α b 1 b 4 E. Petrakis Tries salida 2 c  2 3 α α b 1 b 4 α 5 2 c  3 18 b .M.

salida 4 α b 1 b 4 α 5 c c 2 3 α c b 2  c 1 b 4 5 α  3 b salida 3 6 b 2 α E.G.M. Petrakis c 3 b 5 7  Tries a b α 5  19 b .

M.salida 5 b 2 α 5 b 8  salida 8 α b a b 2 α 5 b 8  salida 1 1 α b 4 1 c 6 b c 2 α 5 b 8 b 2 α 5 b 8  a  a α 9 E.G. 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.M.G. Petrakis .

Petrakis Tries 22 . b.G.M.Alfabeto: {a. c} Codigo: 1 2 4 3 5 8 1 c a b 2 3 1 E.

Petrakis En orden in de “1” a “2”. nosotros devemos visitar “b” 23 .G.M.leer(1): deberia ser para “a” output “α” α b 1 2 3 c  1 1 α b 2 c  3 2 α b 1 2 c 3 salida “b”  Tries 4 b 4 E.

En orden in de“2” 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 c  3 E.M.G. Petrakis Tries 24 .

G.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.M. Petrakis Tries 25 c 2 α 5 3 output “c” 5  .

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

M.G. Petrakis c 2 α 5 b 8 Tries salida “bαb” 3 b 7 1  … 27 .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.

α b 1 b 4 c 6 8 α 9 E.M. Petrakis Tries c 2 α 5 b 7 3 b salida “α” 28 .G.

Petrakis Tries 29 ... d ........... x d n salida “dxd” Caso especial: “x” podria ser nulo E. x n ......G...Generalizando .. . d .  ...M...