jbustos/pub/tesis.pdf · agradecimientos esta tesis fue totalmente nanciada por el proyecto...

100
UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN ESTUDIO COMPARATIVO DE ALGORITMOS INDIZADOS PARA BÚSQUEDA APROXIMADA EN TEXTO Javier Alejandro Bustos Jiménez Tesis para optar al Grado de Magíster en Ciencias, Mención Computación Agosto, 2003

Upload: lamdat

Post on 15-Oct-2018

223 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

UNIVERSIDAD DE CHILEFACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS

DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

ESTUDIO COMPARATIVO DE ALGORITMOS INDIZADOSPARA BÚSQUEDA APROXIMADA EN TEXTO

Javier Alejandro Bustos Jiménez

Tesis para optar alGrado de Magíster en Ciencias, Mención Computación

Agosto, 2003

Page 2: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Universidad de ChileFacultad de Ciencias Físicas y Matemáticas

Departamento de Ciencias de la Computación

Estudio Comparativo de Algoritmos Indizadospara Búsqueda Aproximada en Texto

Javier Alejandro Bustos Jiménez

Profesor Guía : Sr. Gonzalo Navarro B.Profesores de Comisión : Sr. Ricardo Baeza Yates

: Sr. Claudio Gutiérrez G.Profesor Invitado : Sr. João Paulo Kitajima

Tesis para optar alGrado de Magíster en Ciencias, Mención Computación

Agosto, 2003

Page 3: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Resumen

El problema de la búsqueda aproximada en texto aparece en una gran cantidad de áreas delas Ciencias de la Computación; se aplica, entre otros, a recuperación de texto y biologíacomputacional. Dado un texto de largo n y un patrón de largo m (con ������� ), se desea encontrartodas las ocurrencias en el texto cuya distancia de edición al patrón sea a lo más k. Es decir, elmínimo número de inserciones, borrados y/o sustituciones de caracteres que se debe realizar sobreel patrón para que sea idéntico al texto sea � .La tesis estudia la alternativa de solución llamada preprocesamiento del texto, que construyeestructuras de datos que permitan agilizar las búsquedas. A este preprocesamiento se le conocecomo indización. Existen varios algoritmos de indización y estudios individuales de cada uno deéstos, pero no han sido comparados adecuadamente entre sí por diferencias de implementación y/uoptimización.

Esta tesis estudia cuatro estructuras de datos utilizadas como índice: árboles de sufijos, arreglos desufijos, índice de q-gramas e índice de q-samples, así como los algoritmos de tipo retropropagativo,reducción a búsqueda exacta e intermedio entre ambos esquemas. El objetivo principal es describiry especificar estandarizadamente los diversos algoritmos de búsqueda aproximada, encontrar susparámetros óptimos y compararlos entre ellos.

Para ello, se realiza un estudio del marco teórico sobre el cual están diseñados los índices y losalgoritmos de búsqueda aproximada. Luego se realiza un estudio experimental de los parámetrosóptimos de cada algoritmo y finalmente se realiza un estudio comparativo entre las estructuras dedatos (en base al espacio utilizado y el tiempo de construcción del índice) y entre los algoritmos debúsqueda (en base al tiempo de búsqueda para distintos tamaños de patrón y tasa de error).

Las principales conclusiones que se obtienen en esta tesis son: el descarte del árbol de sufijos comoestructura de datos eficiente para la indización; la recomendación de utilizar el arreglo de sufijoscon un algoritmo de particionamiento del patrón para búsqueda aproximada; o bien, en caso de notener el espacio físico necesario, utilizar el índice de q-samples para bajas tasas de error.

Page 4: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Agradecimientos

Esta tesis fue totalmente financiada por el Proyecto Fondecyt (Chile) 1-990627 (investigadorprincipal Ricardo Baeza-Yates): Diseño y Análisis de Algoritmos Secuenciales y Paralelos y susAplicaciones.

Se agradece la paciencia y la guía de Gonzalo Navarro y toda la ayuda otorgada por la comisiónintegrada por los profesores Ricardo Baeza-Yates, Claudio Gutiérrez y João Paulo Kitajima.

Un especial agradecimiento al Departamento de Ingeniería Informática y Ciencias de laComputación de la Universidad de Concepción, donde se otorgaron todas las facilidades para lasimulación y experimentación inicial de esta tesis.

Y un total agradecimiento a todos quienes, anónimamente o no, ayudaron a que esta tesis fuerafinalmente terminada.

Dedicada a mis padres Oscar y Lilian.

Page 5: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Índice general

1. Introducción 1

1.1. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.1. Plan de Experimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Índices 5

2.1. Conceptos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2. Algoritmos de Indización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1. Árboles de Sufijos de Kurtz . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.2. Arreglo de Sufijos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.3. Índices de q-gramas y q-samples . . . . . . . . . . . . . . . . . . . . . . . 10

2.3. Comparación entre índices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.1. Árbol de Sufijos versus Arreglo de Sufijos . . . . . . . . . . . . . . . . . . 12

2.3.2. Índices de q-gramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.3. Índices de q-samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3. Algoritmos de Búsqueda 20

3.1. Conceptos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.1. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.2. Lemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

I

Page 6: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

3.1.3. Cálculo de la Distancia de Edición . . . . . . . . . . . . . . . . . . . . . . 23

3.2. Retropropagación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2.1. Retropropagación Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2.2. Retropropagación Modificada . . . . . . . . . . . . . . . . . . . . . . . . 28

3.3. Reducción a Búsqueda Exacta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.3.1. Partición en ��� pedazos . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3.2. � -Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.4. Método Intermedio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.4.1. Partición en � pedazos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.4.2. � -Gramas Aproximados . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4. Comparación Experimental 45

4.1. Mecanismo de Experimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.2. Comparación de algoritmos de retropropagación . . . . . . . . . . . . . . . . . . . 46

4.3. Comparación entre Árbol y Arreglo de Sufijos utilizando Retropropagación Simple 48

4.4. Búsqueda de la Partición Óptima al particionar en � Pedazos . . . . . . . . . . . . 51

4.4.1. Partición Óptima para ADN . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.4.2. Partición Óptima para Texto en Inglés . . . . . . . . . . . . . . . . . . . . 54

4.5. Comparación de algoritmos de búsqueda sobre índices de q-gramas . . . . . . . . 55

4.6. Comparación de algoritmos de búsqueda sobre índices de q-samples . . . . . . . . 62

4.6.1. Algoritmo de q-sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.6.2. Algoritmo de q-sampling aproximado . . . . . . . . . . . . . . . . . . . . 63

4.6.3. Parámetros óptimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

4.6.4. Comparación entre algoritmos de q-sampling y q-sampling aproximado . . 75

4.7. Comparación de algoritmos sobre distintos tipos de índices . . . . . . . . . . . . . 76

II

Page 7: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

5. Conclusiones 80

A. Código de la variante de Kurtz para Árboles de Sufijos 86

III

Page 8: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Índice de figuras

2.1. a) Árbol Trie de sufijos para la palabra alfalfa b) Árbol de sufijos para la palabraalfalfa. En ambas el carácter $ indica el fin de palabra. . . . . . . . . . . . . . . . 6

2.2. Arreglo de sufijos para la cadena alfalfa. . . . . . . . . . . . . . . . . . . . . . 7

2.3. a) índice de q-gramas para la palabra alfalfa con �� �� . b) índice de q-samples parala palabra alfalfa con �� �� y �� �� . En ambos casos el símbolo $ es un carácternulo, que indica el fin de palabra. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4. Comparación en espacio utilizado por Árboles y Arreglos de sufijos: a) ADN. b)Texto en inglés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.5. Comparación en tiempo de construcción de los índices basados en árbol y arreglode sufijos: a) ADN. b) Texto en inglés. . . . . . . . . . . . . . . . . . . . . . . . . 13

2.6. Comparación en espacio utilizado para la construcción de índices de q-gramas: a)ADN. b) Texto en inglés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.7. Comparación en tiempo de construcción de índices de q-gramas: a) ADN. b) Textoen inglés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.8. Comparación en espacio de índices de q-samples: a) ADN. b) Texto en inglés. . . . 16

2.9. Mejor y peor espacio necesario para índices de q-samples: a) ADN. b) Texto eninglés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.10. Comparación en tiempo de construcción de índices de q-samples: a) ADN. b) Textoen inglés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.11. Mejor y peor tiempo de construcción para índices de q-samples: a) ADN. b) Textoen inglés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

IV

Page 9: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

3.1. División en dos partes de un patrón que calza en el texto con � �� . a), b) y c)muestran que, cualquiera sea la división, siempre aparece a lo menos un trozo conerror a lo más ��������� . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2. Ejemplo del Lema 2: la distancia de edición entre A y B es de 3 y se aplica el lemacon � � . Esos pedazos aparecen en B sin error. . . . . . . . . . . . . . . . . . 21

3.3. Ejemplos del Lema 3 con �! "� : a) Si hay una búsqueda exacta ( �# %$ ) exitosaen el texto, entonces todos los q-gramas de P aparecen en el el texto. b) Si hay unabúsqueda aproximada con �& (' exitosa, entonces se eliminan en el peor caso, �)�de los q-gramas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.4. Ejemplo del Lema 4 con �* +� y �, -� . a), b) y c) muestran que cualquiera sea ladivisión, siempre aparece a lo menos un trozo .0/ con error a lo más ���1����� . . . . . . 22

3.5. a) Matriz de programación dinámica para calcular la distancia de edición entre243 657 y24368 5 249 . b) La variación del cálculo, para buscar el patrón

243 :57 en el texto24368 5 249 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.6. a), b) y c) son tres pasos sucesivos de una búsqueda con Retropropagación Simplesobre un Árbol de Sufijos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.7. Ejemplo de retropropagación sobre el arreglo de sufijos de la palabra alfalfa. . 28

3.8. Si ;� =<><@?A?A?A?B? y CD =<@?A?A? entonces en el algoritmo de Ukkonen a) representa ala matriz E y b) representa a la matriz F . . . . . . . . . . . . . . . . . . . . . . . . 29

3.9. Las figuras a),..., h) muestran estados sucesivos del algoritmo de Ukkonen sobre elÁrbol de Sufijos para el texto ALFALFA y el patrón FAL con �G D' . Por claridadse etiquetaron los nodos en vez de los arcos. . . . . . . . . . . . . . . . . . . . . . 33

3.10. Condición 1 del algoritmo de Shi para �� -' y H � : a) no la cumple, b) sí la cumple 34

3.11. Condición 2 del algoritmo de Shi para �� -' y H � : a) no la cumple, b) sí la cumple 34

3.12. Condición 3 del algoritmo de Shi para �� -' y H � : a) no la cumple, b) sí la cumple 35

3.13. Condición 4 del algoritmo de Shi para �� -' y H � : a) no la cumple, b) sí la cumple 35

3.14. Bloques de búsqueda de algoritmos sobre q-samples. . . . . . . . . . . . . . . . . 36

3.15. La partición en � pedazos se puede ver como un compromiso entre retropropa-gación simple y reducción a búsqueda exacta. . . . . . . . . . . . . . . . . . . . . 37

3.16. Partición jerárquica de un patrón en 4 piezas. Sólo son verificados los pedazos ennegrita, de abajo hacia arriba. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

V

Page 10: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

3.17. Primera búsqueda del algoritmo de q-sampling aproximado, con �� ' , � I�y � J ; para el texto “usted se encuentra en la mitad de latesis y el patrón mini encuentro”. . . . . . . . . . . . . . . . . . . . . . . 41

3.18. Segunda búsqueda del algoritmo de q-sampling aproximado con �K ' , �L I�y � J ; para el texto “usted se encuentra en la mitad de latesis y el patrón mini encuentro”. . . . . . . . . . . . . . . . . . . . . . . 42

3.19. Tercera búsqueda del algoritmo de q-sampling aproximado, con �� -' , �� M� y �* J ; para el texto “usted se encuentra en la mitad de la tesis yel patrón mini encuentro”. . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.1. Tiempo de búsqueda secuencial, con matriz de programación dinámica, sobre 30MB de texto para todo N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.2. Comparación en tiempo de búsqueda sobre árbol y arreglo de sufijos para � ='6$y � �'6O : a) ADN, b) texto en inglés. . . . . . . . . . . . . . . . . . . . . . . . . 49

4.3. Comparación en tiempo de búsqueda sobre árbol y arreglo de sufijos para � +�)$y � P�)O : a) ADN, b) texto en inglés. . . . . . . . . . . . . . . . . . . . . . . . . 50

4.4. Comparación en tiempo de búsqueda sobre árbol y arreglo de sufijos para � Q��$y � ���O : a) ADN, b) texto en inglés. . . . . . . . . . . . . . . . . . . . . . . . . 50

4.5. Tiempo de búsqueda del algoritmo partición en j pedazos para ADN con �1� � entre0.10 y 0.35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.6. Tiempo de búsqueda del algoritmo partición en j pedazos para texto en inglés con�1� � entre 0.10 y 0.35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.7. Tiempo de búsqueda del algoritmo partición en j pedazos para ADN con ��� � $�RS':$ y �1� � �$�RT'UO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.8. Tiempo de búsqueda del algoritmo partición para búsqueda exacta (�# ��,��' )para ADN con �1� � $VRS'6$ y �1� � �$�RT'UO . . . . . . . . . . . . . . . . . . . . . . 58

4.9. Tiempo de búsqueda del algoritmo partición para búsqueda exacta (�W P�X���RA�Y' ) para ADN con �1� � $�RT'6$ ; � P� y � � . . . . . . . . . . . . . . . . . . . . . 58

4.10. Algoritmos de búsqueda aproximada sobre índices de q-gramas para ADN con�1� � $�RS':$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.11. Algoritmos de búsqueda aproximada sobre índices de q-gramas para ADN con�1� � $�RS'6O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

VI

Page 11: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

4.12. Tiempo de búsqueda del algoritmo partición en j pedazos para texto en inglés con�1� � $�RS':$ y �1� � $VRS'UO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.13. Tiempo de búsqueda del algoritmo partición para búsqueda exacta (�# ��,��' )para texto en inglés con �1� � $�RT'6$ y �1� � �$�RT'UO . . . . . . . . . . . . . . . . . . 60

4.14. Tiempo de búsqueda del algoritmo partición para búsqueda exacta (�W P�X���RA�Y' ) para texto en inglés con �1� � K$�RT'6$ ; � �� y H �� . . . . . . . . . . . . . . . . 61

4.15. Algoritmos de búsqueda aproximada sobre índices de q-gramas para texto en inglés. 61

4.16. Comparación en tiempo de búsqueda sobre índice de q-samples para el algoritmode q-sampling ( NZ K$�RT'6$ ): a) ADN, b) texto en inglés. . . . . . . . . . . . . . . . . 64

4.17. Tiempos de búsqueda mínimos para distintos valores de3

y � con �� �� , texto eninglés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4.18. Tiempos de búsqueda mínimos para distintos valores de3

y � con �� (O , texto eninglés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.19. Tiempos de búsqueda mínimos para distintos valores de3

y � con �� =[ , texto eninglés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.20. Tiempos de búsqueda mínimos para distintos valores de3

y � con �0 �[ , ADN . . . 69

4.21. Tiempos de búsqueda mínimos para distintos valores de3

y � con �0 PJ , ADN . . . 70

4.22. Tiempos de búsqueda mínimos para distintos valores de3

y � con �0 �\ , ADN . . . 71

4.23. Valores óptimos de3

y � para el algoritmo de q-sampling aproximado y sus tiemposde búsqueda para distintos valores de � y � . Arriba: texto en inglés, abajo: ADN. . 74

4.24. Búsqueda sobre índices de q-samples: a) ADN b) texto en inglés. . . . . . . . . . . 76

4.25. Comparación de algoritmos de búsqueda aproximada sobre ADN y tasa de errorentre 10 % y 20 % del tamaño del patrón . . . . . . . . . . . . . . . . . . . . . . . 77

4.26. Comparación de algoritmos de búsqueda aproximada sobre ADN y tasa de errorentre 25 % y 35 % del tamaño del patrón . . . . . . . . . . . . . . . . . . . . . . . 78

4.27. Comparación de algoritmos de búsqueda aproximada sobre texto en inglés y tasade error entre 10 % y 20 % del tamaño del patrón . . . . . . . . . . . . . . . . . . 79

5.1. Mapa: tamaño del índice versus tiempo de búsqueda . . . . . . . . . . . . . . . . 82

5.2. Mapa: tamaño del patrón versus tasa de error para espacio de índice medio . . . . . 83

VII

Page 12: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

5.3. Mapa: tamaño del patrón versus tasa de error para espacio de índice bajo . . . . . . 83

VIII

Page 13: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Índice de cuadros

1.1. Método según estructura de datos utilizada. . . . . . . . . . . . . . . . . . . . . . 2

2.1. Tiempo de construcción de un índice de qramas con � =8 para ADN. . . . . . . . . 11

4.1. Tiempos de búsqueda del algoritmo de retropropagación simple y modificado para� �'6$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.2. Espacio extra utilizado por el algoritmo de retropropagación modificado. . . . . . . 48

4.3. Partición óptima para ADN: a la izquierda experimentalmente y a la derechateóricamente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.4. Partición óptima para texto en inglés: a la izquierda experimentalmente y a laderecha teóricamente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.5. Valores óptimos de � y3

para el algoritmo de q-gramas aproximados para ADN. . 65

4.6. Valores óptimos de � y3

para el algoritmo de q-gramas aproximados para texto eninglés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

IX

Page 14: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Capítulo 1

Introducción

El problema de la búsqueda aproximada en texto aparece en una gran cantidad de áreas delas Ciencias de la Computación, aplicándose, entre otros, a recuperación de texto, biologíacomputacional, reconocimiento de patrones, minería de datos y bases de datos multimediales.

El problema se describe de la siguiente manera: dado un texto de largo n y un patrón de largo m(con � ���D� ) encontrar todas las ocurrencias del texto cuya distancia de edición con el patrónsea a lo más k (el "error permitido"). La distancia de edición entre dos cadenas de caracteres estádefinida como el mínimo número de inserciones, reemplazos y/o borrados de caracteres necesariospara que ambas sean iguales.

Una alternativa de resolución de este problema es el preprocesamiento del texto, para construirestructuras de datos que permitan agilizar las búsquedas cuando el texto es muy grande (lo quehace impracticable una búsqueda secuencial) y no presenta mayores variaciones en el tiempo.A este tipo de preprocesamiento de la información se le conoce como indización. Para este tipode problema existen tres corrientes de estudio de algoritmos que utilizan distintas estructuras deíndice (ver cuadro 1.1).

El estudio comparativo de estos algoritmos se ha abordado anteriormente [4] pero estas compara-ciones no han otorgado resultados concluyentes por los siguientes motivos:

Los algoritmos no han sido implementados o bien las implementaciones de ellos han sidorealizada por distintas personas, por lo cual poseen distintas optimizaciones, distorsionandoel resultado de los estudios.

1

Page 15: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Retropropagación Intermedio Reducción abúsqueda exacta

Árbol de Sufijos Simple[7] Partición en � pedazos[15]Sofisticado[21, 5]

Arreglo de Sufijos Simple[7] Partición en � pedazos[15] Partición en��� pedazos[19, 14]q-gramas Partición en � pedazos[13] Partición en��� pedazos[19, 14]q-samples q-samples aproximados[17] q-sampling[20]

Cuadro 1.1: Método según estructura de datos utilizada.

En muchos algoritmos no se ha estudiado debidamente los parámetros que optimizan sufuncionamiento.

Esta tesis se concentra en describir y especificar estandarizadamente los diversos algoritmos debúsqueda aproximada (reimplementándolos en caso de ser necesario), encontrar el rendimientoóptimo para cada uno según sus parámetros y finalmente compararlos entre sí para distintos tipos ytamaños de texto, patrón y tolerancia a errores. Esto significa más precisamente:

Entender el funcionamiento de los esquemas existentes.

Obtener implementaciones eficientes para todos ellos.

Encontrar los parámetros óptimos de cada índice para cada caso.

Comparar los distintos índices entre sí.

Dar recomendaciones sobre qué índice utilizar según el problema presentado.

Algoritmos como el planteado por Cobbs en [5] y otros no fueron estudiados en esta tesis debidoal alto costo en espacio de sus índices (sobre 20 veces el tamaño del texto).

1.1. Metodología

A partir de las especificaciones originales de los distintos algoritmos de búsqueda aproximada,obtenidas de sus publicaciones, se pretende realizar un estudio exhaustivo de los algoritmosentendiendo tanto su implementación como su utilización.

2

Page 16: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Además, basándose en las implementaciones existentes, se pretender realizar un control de calidadde codificación e implementación de los algoritmos existentes, de tal forma de garantizar unacalidad uniforme entre ellos. Se busca independizar el tiempo de respuesta de un algoritmo de sucodificación, por lo tanto se reimplementarán los algoritmos que sean necesarios para ello.

Cada algoritmo posee sus propios parámetros de optimización, por lo tanto es deber de esta tesisel encontrar dichos parámetros, de tal forma de comparar todos los algoritmos en igualdad decondiciones. Una vez encontrados esos valores se recomendará el uso de sus valores óptimos paracada algoritmo.

1.1.1. Plan de Experimentación

A grandes trazos, los experimentos a realizar son los siguientes:

Comparar los algoritmos de retropropagación simple y sofisticado sobre árboles de sufijos:el objetivo de este experimento es elegir uno de ellos como algoritmo de búsqueda óptimo paraárboles de sufijos. Teóricamente el algoritmo de retropropagación sofisticado [21] no es, enórdenes de magnitud, mucho mejor que el simple [7]; y, se desea comprobar experimentalmente siesa comparación se mantiene. Para ello, se compara la indización de 30 MB de texto (ADN y textoen inglés) utilizando el árbol de sufijos de Stefan Kurtz [10], con patrones que van desde 10 a 55caracteres y tasa de error del 10 % al 30 %.

Comparar árbol de sufijos y arreglo de sufijos: el objetivo de este experimento es elegiruno de ellos como estructura de datos para índices de texto, dado que teóricamente el árbol desufijos es mucho más rápido que el arreglo de sufijos, pero experimentalmente no se tiene unaimplementación eficiente del primero. Para ello se comparará el tiempo de construcción de losíndices, el tamaño necesario para el almacenamiento y el tiempo de búsqueda del algoritmo deretropropagación simple al indizar 30 MB de texto, utilizando patrones de búsqueda de tamañosentre 10 y 55 caracteres y tasa de error que va del 10 % al 30 %.

Buscar óptimo del algoritmo de partición en � pedazos: Teóricamente se ha estudiado bastantesobre los casos particulares de este algoritmo, como la reducción a búsqueda exacta [19, 14](�] ^�_��' ) o la retropropagación [7] (�` I' ). Además, sólo se ha estudiado en teoría el valoróptimo de � al particionar [15]. Por tanto, el objetivo de este experimento es encontrar ese valorde � óptimo; para ello se realizará la experimentación sobre árbol de sufijos o arreglo de sufijos(dependiendo de la estructura óptima), al indizar 30 MB de texto (ADN y texto en inglés), con

3

Page 17: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

patrones que van desde 10 a 55 caracteres y tasa de error del 10 % al 30 %.

Comparar los algoritmos que trabajan sobre q-gramas: Los algoritmos de partición abúsqueda exacta [19, 14] como partición intermedia [13] han sido experimentalmente probadosindependientemente unos de otros y con optimizaciones en el índice utilizado para una búsquedamás rápida. El objetivo de este experimento es comparar dichos algoritmos en igualdad decondiciones, con el mismo índice para todos; para ello se indiza utilizando q-gramas 30 MB detexto (ADN y texto en inglés), y se prueba con patrones que van desde 10 a 55 caracteres y tasa deerror del 10 % al 30 %.

Comparar los algoritmos que trabajan sobre q-samples: Dichos algoritmos [17, 20] seencuentran en un nivel teórico y no han sido probados experimentalmente. Los objetivos deeste experimento son, por un lado, encontrar los parámetros óptimos del algoritmo de q-gramasaproximados [17]; y, por otro lado, comparar en igualdad de condiciones ambos algoritmos. Paraello se indiza utilizando q-samples 30 MB de texto (ADN y texto en inglés), y se prueba conpatrones que van desde 10 a 55 caracteres y tasa de error del 10 % al 35 %.

Al terminar este estudio se espera contar con un análisis completo de los algoritmos mencionados,obteniendo los óptimos de aplicación para cada uno de ellos, un mapa del espacio utilizado por elíndice versus el tiempo de búsqueda según los distintos casos de tamaño del texto (n) y patrón (m), ynivel de error permitido (k). Esto servirá como recomendación para la utilización de los algoritmosen problemas determinados. Además se presenta un mapa de los algoritmos más eficientes versuslos valores de � y �1� � .

4

Page 18: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Capítulo 2

Índices

A continuación se presentan una serie de conceptos básicos sobre índices.

2.1. Conceptos Básicos

Vocabulario

Se define como subcadena a todo subconjunto de caracteres seguidos de una cadena de caracteres.A partir de esa definición se define como sufijo de cadena a toda subcadena que calza con losúltimos carácteres de dicha cadena y como prefijo de cadena a toda subcadena que calza con losprimeros caracteres de dicha cadena. La cadena en sí es una subcadena, prefijo y sufijo de sí misma.

Árboles Trie

Consideremos un alfabeto finito aP cbUdfegR:hShThTRid1jlk de cardinalidad20m � . Mediante aon se denotará

el conjunto de secuencias o cadenas formadas por símbolos de a [12].

Definición 1 Dado un conjunto finito de secuencias prqKasn , el Árbol Trie t correspondiente a Xes un árbol

2-ario con arcos etiquetados definido recursivamente como:

1. Si X contiene un solo elemento (o ninguno) entonces E es un árbol consistente de un úniconodo que contiene al único elemento de X (o está vacío).

5

Page 19: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

2. Si ugp�u m 2, sea tv/ el Árbol Trie correspondiente a p,/w +bUxzy d1/{x*|GpP}�d1/~|�a�k . Entonces Ees árbol

2-ario constituído por una raíz y los

2subárboles t�eBR:hThShTRgtoj ; cada uno de los cuales

tiene rotulado el arco a su raíz con d�/ (figura 2.1).

a)

A L F A L F A

0 1 2 3 4 5 6

3 0

5 2

4 1

6

A

$

FL

F

A

L$

L$

AL

F

A

$L

b)

A L F A L F A

0 1 2 3 4 5 6

5 2146

03

AFA

LFA

$LFA $ L $

L

L$

Figura 2.1: a) Árbol Trie de sufijos para la palabra alfalfa b) Árbol de sufijos para la palabraalfalfa. En ambas el carácter $ indica el fin de palabra.

Árbol Trie de Sufijos

Un Árbol Trie de Sufijos [21] es un Árbol Trie que almacena todos los sufijos de un texto ; ycuyas hojas almacenan punteros a la ubicación de ese sufijo en el texto. Cada hoja representa unsufijo y cada nodo interno representa una única subcadena de ; . Cada subcadena de ; puede serencontrada realizando una búsqueda en el Árbol Trie a partir de la raíz (figura 2.1).

Árbol de Sufijos

Un Árbol de Sufijos [21] corresponde a un Árbol Trie de Sufijos cuyos caminos unarios han sidocompactados. Los nodos internos almacenan el número de caracteres que han sido compactadosy punteros al texto para conocerlos; y las hojas representan la posición en el texto en la que seencuentra el sufijo. Para buscar una cadena en el Árbol de Sufijos se utiliza el mismo esquema quepara un Árbol Trie de Sufijos (figura 2.1).

6

Page 20: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

6 3 0 5 2 4 1

Figura 2.2: Arreglo de sufijos para la cadena alfalfa.

a)

alf 0,3lfa 1,4fal 2fa$ 5a$$ 6

b)al 0lf 4

Figura 2.3: a) índice de q-gramas para la palabra alfalfa con �� P� . b) índice de q-samples para lapalabra alfalfa con �� -� y �� P� . En ambos casos el símbolo $ es un carácter nulo, que indica elfin de palabra.

Arreglo de Sufijos

Si las hojas de un Árbol de Sufijos son recorridas de izquierda a derecha, se obtienen todoslos sufijos del texto ordenados lexicográficamente. Un Arreglo de Sufijos [16] es un arregloque contiene todos los punteros a los sufijos del texto ordenados lexicográficamente. El arregloalmacena un puntero por posición en el texto. Para el ejemplo de la figura 2.1 el Arreglo de Sufijosse encuentra en la figura 2.2.

Índice de q-gramas

Un q-grama es una cadena de largo q. Un índice de q-gramas [16] almacena todos los q-gramasde un texto y posee referencias a sus ubicaciones en el texto. Su implementación se puede realizarmediante una tabla de hashing o un Árbol Trie de altura � donde sus hojas representan las posicionesen el texto (figura 2.3.a). Para almacenar en el índice los últimos �*�=' caracteres del texto secompleta cada q-grama con tantos símbolos $ (que indica el fin de palabra) como sean necesarios.

Índice de q-samples

Un índice de q-samples [16] almacena a todos los q-gramas de un texto cuya posición es múltiplo de� ( � m � definida por cada algoritmo) y posee además referencias a sus ubicaciones en el texto. Suimplementación, al igual que el índice de q-gramas, se puede realizar mediante una tabla de hashingo un Árbol Trie de altura � donde sus hojas representan las posiciones en el texto (figura 2.3.b).

7

Page 21: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

2.2. Algoritmos de Indización

A continuación se presentan los algoritmos de indización estudiados en esta tesis.

2.2.1. Árboles de Sufijos de Kurtz

Se eligió esta implementación [10] dado que experimentalmente se comprobó que es la quenecesita menor espacio físico para indizar un texto: 12 veces el tamaño para ADN y 9.6 veces paratexto en inglés. Otras implementaciones crean un árbol de sufijos de aproximadamente 20 veces eltamaño del texto, lo que las hace generalmente imprácticas.

Kurtz [10] plantea que cada nodo no terminal del árbol de sufijos consiste de 5 componentes ( � esla subcadena, � el camino que la representa en el árbol):

1. firstchild: el primer hijo del nodo que representa a la cadena � (por el camino desde la raízhasta � ).

2. branchbrother: el hermano de la derecha de � (el siguiente lexicográficamente), si no hay talhermano entonces es un nodo nulo.

3. depth: la profundidad del camino que representa a � .

4. headposition: la posición de inicio de � en el texto, es decir la posición de inicio de � comoprefijo más corto de algún otro sufijo (el menor lexicográficamente).

5. suffixlink: un nodo interno � tal que, si � es de la forma <@� para algún <�|�a y �M|=a nentonces el suffixlink es una arista que conecta � a � .

Por lo tanto, cada búsqueda se realiza vía firstchild, branchbrother, suffixlink, y referencias alas hojas. Las posiciones en el texto para verificar las ocurrencias se obtienen mediante depth yheadposition.

Además, Kurtz observó que para los caracteres de una cadena representada por el nodo ��� ,los caracteres de � se pueden obtener eliminando los primeros � 3��12 �����0� caracteres desde laposición inicial de �H� ; en otras palabras si ��� es un nodo interno, y �Q ���/�hShTh���/��1����e entonces5� �� 3 <@� ��9 65 2 5 9 � � �H���f�� 3��12 ��� ��� y �f �� 3��12 ��� �����~�`� 3���2 �z� ��� .En [10], Kurtz nota que la información que se almacena en los nodos internos posee redundancia;para eliminar esta redundancia se dividen los nodos en large y small. Los nodos son numerados

8

Page 22: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

desde la raíz hacia las hojas, de izquierda a derecha (Breadth First Search); los nodos small cumplencon la siguiente propiedad:

Si � 9 � 3 � � � � <��0�f�K'� � 9 � 3 � � � � ��� , entonces <�� es � <@��� ,Y los nodos ��<@ U¡ 3 cumplen la siguiente propiedad:

Si <�� no es � <@��� y � 9 � 3 � � � � <��0�¢Y�' , entonces <@� es ��<� U¡ 3 .La raíz no es ni � <@��� ni ��<@ U¡ 3 .Se define como cadena de nodos a la secuencia contigua (en numeración) de nodos ?:�£R:hThThSRg?i¤ con�~¥�  tal que:?g�¦��e no es un nodo � <>��� .?g��R:hThShTRg?i¤���e son nodos � <@��� .?i¤ es un nodo ��<� §¡ 3 .Entonces se cumplen las siguientes propiedades:

1. � 3���2 �z��?g/¨�© �� 3��12 ���£?i¤A�f� �� ��]57� .2. � 3 <@� ��9 :5 2 5 9 � ��?g/��ª � 3 <>� ��9 :5 2 5 9 � �£?i¤«�~�M�� H�]5l� .3. 6��¬B¬�5£���¨5 � �w��?g/��© K?g/¦��e .

Las tres propiedades anteriores señalan que no es necesario almacenar depth( ?«/ ), headposition( ?A/ )ni suffixlink( ?g/ ) para todo 5­|�®��lRi 0�M'�¯ ; puesto que si se conoce la distancia entre ?B/ y ?g¤ , entoncespueden ser calculados en tiempo constante.

Por lo tanto, se utilizan 2 enteros (de 4 bytes cada uno) para almacenar los nodos � <@��� y 4 enteros(de 4 bytes cada uno) para almacenar los nodos ��<@ U¡ 3 . Experimentalmente en [10] se muestra quecada nodo interno es seguido por un nodo � <@��� y que sólo el nodo anterior a una hoja es ��<� U¡ 3 .Además, Kurtz plantea no utilizar una estructura arbórea para almacenar los nodos, sino más bienuna estructura de datos con dos arreglos para almacenar los nodos internos y las hojas y con loscampos necesarios para almacenar la información del último nodo visitado. Los caminos entrenodos son simulados por operaciones algebraicas no atómicas, lo cual influye de mala forma en el

9

Page 23: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

rendimiento de los algoritmos de búsqueda aproximada: existe un costo extra elevado por pasar deun nodo padre a un nodo hijo y uno mucho mayor por seguir un suffix link.

Las fórmulas que plantea Stefan Kurtz para simular el árbol de sufijos se pueden encontrar en elapéndice A.

2.2.2. Arreglo de Sufijos

Para el desarrollo de esta tesis se estudiaron dos algoritmos de construcción de Arreglo de Sufijos;el primero utiliza el algoritmo quicksort para ordenar las posiciones de inicio de los sufijos. Estealgoritmo tiene un sobrecosto de 4 veces el tamaño del texto: cada letra del texto se convierte ahoraen una posición y el conjunto de posiciones es ordenado lexicográficamente.

El segundo, proporcionado por Larsson y Sadakane [11], utiliza el algoritmo quicksort conmediana de 3 para el ordenamiento de trozos grandes del arreglo y bucketsort para trozospequeños. Además, el algoritmo almacena el texto en un arreglo de tamaño � � (si se toma encuenta que cada carácter es 1 byte, y cada entero 4 bytes) y construye el arreglo de sufijos enotro arreglo de tamaño � � . En el arreglo donde se tenía el texto se almacena después la inversadel arreglo de sufijos (es decir: si en la casilla 0 del arreglo de sufijos se almacenaba el número28, quiere decir que en la casilla número 28 de la inversa se almacena 0; en otras palabras, en lainversa se almacena la posición en el arreglo de cada sufijo).

La información extra almacenada por el algoritmo de Larsson y Sadakane en ningún modo mejorael rendimiento de los algoritmos de búsqueda, sólo mejora su tiempo de construcción. Una vezterminada la construcción el arreglo auxiliar se puede descartar.

2.2.3. Índices de q-gramas y q-samples

Para implementar estos dos índices se utilizó un Árbol Trie de altura � , en cuyas hojas se tiene unalista con todas las apariciones del q-grama en el texto correspondiente. La diferencia entre uno yotro recae en que en el primero la distancia entre q-gramas es 1 y en el segundo es un parámetro �entregado al momento de construir el índice.

Durante la experimentación se notó que aunque el computador donde se desarrollaba laconstrucción del índice (refiérase a sección 4.1) tenía en teoría la cantidad de memoria suficiente

10

Page 24: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

para trabajar, el índice no se podía construir por falta de memoria. Realizando un seguimiento dela construcción se notó que el problema lo producía el comando realloc, que dado un punterole re-asigna la memoria utilizable a ese puntero y además copia el contenido; en otras palabras,si el puntero p tiene asignado 1024 bytes y se realiza el llamado realloc(p,2048) entoncesel computador busca un bloque de 2048 bytes y una vez que lo encuentra copia el contenido delos 1024 bytes anteriores a la nueva dirección y recién ahí libera el bloque anterior; por lo tanto lacantidad real de memoria utilizada en el proceso es de 3072 bytes.

Además, dado que los q-gramas siguen la Ley de Zipf [16]: “en todo documento elaborado enlenguaje natural existe un pequeño grupo de palabras cuya frecuencia es muy alta, mientras queexiste un grupo muy amplio de palabras de escasa utilización”, y por lo tanto se encuentran unospocos q-gramas con frecuencias muy altas; se producía un sobrecosto en tiempo de construcciónal agregar las posiciones de los q-gramas utilizando realloc.

Se decidió por lo tanto construir el Trie en dos pasos: el primero determinaba cuántas veces serepetía cada q-grama y el segundo pedía la cantidad exacta de memoria para almacenar en unarreglo la lista de esas posiciones. Eso llevó no sólo a una mejora en la cantidad real de memoriautilizada por el algoritmo sino además, como efecto colateral de no utilizar realloc, a una mejoraen el tiempo de construcción, como se puede apreciar en la cuadro 2.1.

Texto (MB) Tiempo c/realloc (seg) Tiempo s/realloc (seg)1 3,63 2,632 6,13 5,643 7,73 8,704 10,34 11,945 11,04 15,126 26,83 18,177 32,65 21,528 36,59 24,819 42,37 27,90

100 49,47 31,36

Cuadro 2.1: Tiempo de construcción de un índice de qramas con � =8 para ADN.

2.3. Comparación entre índices

Para comparar los índices se tomaron en consideración sólo dos parámetros: Megabytes (MB) dememoria utilizados por el índice al momento de búsqueda y el tiempo que toma la construcción

11

Page 25: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

del índice. Tanto para ADN como para texto en inglés se utilizaron textos de prueba que variabanentre 1 y 30 MB, con diferencias de 1 MB uno de otro.

Para efectos prácticos se ha dividido la comparación en tres grupos: Árbol de Sufijos y Arreglo deSufijos, índices de q-gramas e índices de q-samples.

2.3.1. Árbol de Sufijos versus Arreglo de Sufijos

A continuación se presenta la comparación entre la implementación de un Árbol de Sufijos basadaen las recomendaciones de Stefan Kurtz [10], y Arreglos de Sufijos construidos utilizando elalgoritmo de quicksort (genérico) y utilizando las recomendaciones planteadas por Larsson ySadakane [11].

a)

0

50

100

150

200

250

300

350

400

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice, Árbol y Arreglo de Sufijos (ADN)

Árbol de SufijosArreglo de Sufijos

b)

0

50

100

150

200

250

300

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice, Árbol y Arreglo de Sufijos (Texto en inglés)

Árbol de SufijosArreglo de Sufijos

Figura 2.4: Comparación en espacio utilizado por Árboles y Arreglos de sufijos: a) ADN. b) Textoen inglés.

Se puede apreciar claramente que en ambos casos (índice de ADN y texto en inglés) el Arreglo deSufijos utiliza el mínimo en espacio (ocupando cuatro veces el tamaño del texto), seguido por elÁrbol de Sufijos propuesto por Stefan Kurtz (ocupando 12 veces el tamaño del texto para ADN y9.6 veces para texto en inglés).

En los gráficos de la figura 2.5 se presenta la comparación en tiempos de construcción del índice.Los resultados muestran que:

Para ADN el mínimo tiempo de construcción lo obtiene el Árbol de Sufijos propuestopor Stefan Kurtz, seguido por el Arreglo de Sufijos propuesto por Larsson y Sadakane yfinalmente el algoritmo genérico de construcción de un Arreglo de Sufijos.

12

Page 26: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Para el texto en inglés es claro que el peor en tiempo de construcción es el algoritmo genéricode construcción de un Arreglo de Sufijos; sin embargo no se puede decir a ciencia cierta si elmínimo tiempo de construcción se obtiene con el Arreglo de Sufijos de Larsson y Sadakaneo el Árbol de Sufijos de Stefan Kurtz.

a)

0

20

40

60

80

100

120

140

160

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, Árbol y Arreglo de Sufijos (ADN)

Á.S. KurtzA.S. Genérico

A.S. Larsson Sadakane

b)

0

20

40

60

80

100

120

140

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, Árbol y Arreglo de Sufijos (Texto en inglés)

Á.S. KurtzA.S. Genérico

A.S. Larsson Sadakane

Figura 2.5: Comparación en tiempo de construcción de los índices basados en árbol y arreglo desufijos: a) ADN. b) Texto en inglés.

Es claro que existe un compromiso entre el tiempo de construcción y el tamaño del índice, por lotanto el veredicto sobre qué estructura de datos elegir entre Árbol y Arreglo de Sufijos lo darán losresultados de la experimentación entre algoritmos de búsqueda sobre ambas estructuras de datos.

2.3.2. Índices de q-gramas

En la presente sección se compara el espacio y tiempo de construcción de un índice de q-gramaspara distintos valores de � . Continuando con el trabajo presentado en [14] se utiliza �G °�1R:hThShTRg[ ,para el índice de texto en inglés y �� K[�R:hThShTRg\ , para el índice de ADN.

Los gráficos de la figura 2.6 muestran la comparación en espacio utilizado para la construcción.Se puede apreciar que tanto para ADN (figura 2.6.a) y texto en inglés (figura 2.6.b) el tamaño delíndice es creciente según � .El tiempo de construcción también es creciente según � , como lo muestran los gráficos de lafigura 2.7. Se aprecia que para igualdad de condiciones ( �± [ ) el tiempo de construcción delíndice para ADN (figura 2.7.a) es mucho menor que el tiempo de construcción del índice para textoen inglés (figura 2.7.b).

13

Page 27: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

0

20

40

60

80

100

120

140

160

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−gramas (ADN)

q=6q=7q=8q=9

b)

0

20

40

60

80

100

120

140

160

180

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−gramas (Texto en inglés)

q=4q=5q=6

Figura 2.6: Comparación en espacio utilizado para la construcción de índices de q-gramas: a)ADN. b) Texto en inglés.

a)

0

20

40

60

80

100

120

140

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas (ADN)

q=6q=7q=8q=9

b)

0

20

40

60

80

100

120

140

160

180

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas (Texto en inglés)

q=4q=5q=6

Figura 2.7: Comparación en tiempo de construcción de índices de q-gramas: a) ADN. b) Texto eninglés.

14

Page 28: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

De todo lo anterior se puede concluir que el valor óptimo de � no se puede obtener de esta etapa, sinoque dependerá del óptimo encontrado al experimentar con los distintos algoritmos de búsqueda.

2.3.3. Índices de q-samples

En esta sección se compara el espacio y tiempo de construcción de un índice de q-samples paradistintos valores de tamaño de q-gramas ( � ) y separación de la toma de muestras ( � ).Los gráficos de la figura 2.8 muestran la comparación en espacio utilizado para la construcción.Se puede apreciar que tanto para ADN y texto en inglés el tamaño del índice es decrecientesegún � . Esto se debe a que se realizan menos descensos por el Árbol Trie y además menosalmacenamientos de posiciones (de los q-gramas).

Además, el gráfico que representa el espacio de construcción para texto en inglés muestra unacurva sublineal, eso sucede porque en textos pequeños el impacto del vocabulario es mayor queen textos grandes. Además, para textos pequeños es mayor la información que se almacena en losnodos (cadenas distintas) que en las hojas (posiciones de cada cadena); para textos grandes, alhaber más repeticiones de las cadenas, la curva se vuelve lineal.

Un fenómeno interesante se aprecia al comparar los mayores y menores espacios para � fijo quenecesitan los índices (figura 2.9). Intuitivamente pareciera que los índices con menor valor de� siempre superarán a los de mayor valor; sin embargo se muestra claramente que, para textosgrandes, más importante que la separación de los q-samples elegidos es el tamaño de éstos. Sinembargo, la diferencia entre los tamaños de índices es tan pequeña que no se puede ser concluyenteaún respecto a qué parámetros � y � utilizar.

El tiempo de construcción del índice de q-samples también es decreciente según � , como lomuestran los gráficos de la figura 2.10. Y, al igual a lo que sucede con los mejores y peoresespacios de índice (donde se eligió el mejor y peor tiempo para cada � fijo), para el tiempo deconstrucción la dependencia es mayor con respecto al tamaño de los q-samples que a la separaciónentre ellos (figura 2.11).

Sin embargo, como se muestra en el siguiente capítulo, mientras mayor es el valor de � (algoritmosde q-sampling y q-sampling aproximado), menor es el rango de acción de los algoritmos. Por lotanto el óptimo sólo se podrá obtener al comparar los algoritmos de búsqueda que utilizan el índicede q-samples.

15

Page 29: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

0

2

4

6

8

10

12

14

16

18

20

22

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−samples, q=6 (ADN)

h=6h=8

h=10

b)

0

5

10

15

20

25

30

35

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−samples, q=4 (Texto en inglés)

h=4h=6h=8

0

2

4

6

8

10

12

14

16

18

20

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−samples, q=7 (ADN)

h=7h=9

h=11

0

5

10

15

20

25

30

35

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−samples, q=5 (Texto en inglés)

h=5h=7h=9

0

2

4

6

8

10

12

14

16

18

20

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−samples, q=8 (ADN)

h=8h=10h=12

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−samples, q=6 (Texto en inglés)

h=6h=8

h=10

Figura 2.8: Comparación en espacio de índices de q-samples: a) ADN. b) Texto en inglés.

16

Page 30: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

0

2

4

6

8

10

12

14

16

18

20

22

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−samples (ADN)

q=6,h=6q=7,h=7q=8,h=8

b)

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20 25 30Ta

mañ

o de

l índ

ice

(MB

)MB de texto

Tamaño del índice de q−samples (Texto en inglés)

q=4,h=4q=5,h=5q=6,h=6

0

2

4

6

8

10

12

14

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−samples (ADN)

q=6,h=10q=7,h=11q=8,h=12

0

5

10

15

20

25

30

35

0 5 10 15 20 25 30

Tam

año

del í

ndic

e (M

B)

MB de texto

Tamaño del índice de q−samples (Texto en inglés)

q=4,h=8q=5,h=9

q=6,h=10

Figura 2.9: Mejor y peor espacio necesario para índices de q-samples: a) ADN. b) Texto en inglés.

17

Page 31: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

0

1

2

3

4

5

6

7

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas, q=6 (ADN)

h=6h=8

h=10

b)

0

5

10

15

20

25

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas, q=4 (Texto en inglés)

h=4h=6h=8

0

2

4

6

8

10

12

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas, q=7 (ADN)

h=7h=9

h=11

0

5

10

15

20

25

30

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas, q=5 (Texto en inglés)

h=5h=7h=9

0

2

4

6

8

10

12

14

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas, q=8 (ADN)

h=8h=10h=12

0

5

10

15

20

25

30

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas, q=6 (Texto en inglés)

h=6h=8

h=10

Figura 2.10: Comparación en tiempo de construcción de índices de q-samples: a) ADN. b) Textoen inglés.

18

Page 32: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

0

1

2

3

4

5

6

7

8

9

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas (ADN)

q=6,h=10q=7,h=11q=8,h=12

b)

0

2

4

6

8

10

12

14

16

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas (Texto en inglés)

q=4,h=8q=5,h=9

q=6,h=10

0

2

4

6

8

10

12

14

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas (ADN)

q=6,h=6q=7,h=7q=8,h=8

0

5

10

15

20

25

30

0 5 10 15 20 25 30

Tiem

po d

e co

nstru

cció

n (s

eg)

MB de texto

Tiempo de construcción, índice de q−gramas (Texto en inglés)

q=4,h=4q=5,h=5q=6,h=6

Figura 2.11: Mejor y peor tiempo de construcción para índices de q-samples: a) ADN. b) Texto eninglés.

19

Page 33: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Capítulo 3

Algoritmos de Búsqueda

En la primera parte de este capítulo se presentan los conceptos básicos para comprender losalgoritmos de búsqueda y la definición y cálculo de la distancia de edición. En las siguientessecciones se presentan los algoritmos divididos por tipo de enfoque.

3.1. Conceptos Básicos

3.1.1. Definiciones

Definición 2 Distancia de edición: Se define la distancia de edición entre dos cadenas � e x (enadelante ���¨��Rix1� ) como la cantidad de inserciones, reemplazos y/o borrados de caracteres que sele deben aplicar a � para que sea idéntico a x . Cuando se habla de un error, nos referimos a unaunidad de esta distancia.

Definición 3 Retropropagación: Técnica para encontrar soluciones basada en la búsqueda apartir de una de varias selecciones. Si ésta arroja un resultado negativo la búsqueda ”retrocede”hasta el punto de la elección y se realiza a partir de ese punto una nueva búsqueda utilizando otrapreferencia.

Definición 4 Reducción a búsqueda exacta: Técnica para encontrar soluciones basada en quebajo ciertas condiciones (que se verán más adelante en el lema 2) se realiza una búsqueda exactasobre pedazos del patrón, y luego se aplican condiciones de filtro y verificación sobre todas lasposiciones que reportan las diferentes búsquedas.

20

Page 34: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

3.1.2. Lemas

Algunos de los algoritmos de búsqueda presentados en esta tesis se basan en los siguientes lemas:

Lema 1 [3] Si un patrón calza con una cadena con � errores, entonces se puede dividir el patrónen � partes, alguna de las cuales aparecerá en la cadena con a lo más ���1����� errores. De no serasí, la suma de los errores de los � pedazos sería mayor que � (figura 3.1).

a) b) c)

Figura 3.1: División en dos partes de un patrón que calza en el texto con �, � . a), b) y c) muestranque, cualquiera sea la división, siempre aparece a lo menos un trozo con error a lo más ���1����� .Lema 2 [16] Sean A y B dos cadenas cuya distancia de edición es d(A,B) ¥K� .Sea . .�el�we4.H²i��²�hShTh³��´i��µ¶��e4.H´i��µ con � y m ' . Entonces, a lo menos s cadenas .�/{·ghShTh¸.s/¦¹aparecen en B. Más aún, su distancias relativas dentro de B no difieren de aquellas dentro deA en más de k; de otro modo, el patrón no calzaría con � errores (figura 3.2).

B

AA1 A2 A3x1 x2 x3 A4 x4 A5

Figura 3.2: Ejemplo del Lema 2: la distancia de edición entre A y B es de 3 y se aplica el lema con� P� . Esos pedazos aparecen en B sin error.

Lema 3 [9] Si P ocurre con k errores y terminando en ;»º¼º¼º / , entonces al menos � � 's���£��� '6�4�q-gramas de P ocurren en ;�/{�@½ª�>´i��elº¼º¼º / . Esto sucede porque cada error afectará � q-gramas delpatrón (figura 3.3).

Lema 4 [16] Sean A y B dos cadenas tal que ����.�Rg¾¿�s¥Q� , sea .+ Q.�e¶�we4.H²���²6hThSh��>ÀA��el.¢À , Á�.s/7R���/cadenas y � m ' . Entonces, a lo menos una cadena .0/ aparece en B con a lo más ���1����� errores.Esto es una extensión de los Lemas 1 y 2 para búsqueda aproximada (figura 3.4).

21

Page 35: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a) b)

Figura 3.3: Ejemplos del Lema 3 con �, =� : a) Si hay una búsqueda exacta ( �� =$ ) exitosa en eltexto, entonces todos los q-gramas de P aparecen en el el texto. b) Si hay una búsqueda aproximadacon �, -' exitosa, entonces se eliminan en el peor caso, ��� de los q-gramas.

a) A1x1

A2

A

B

b) A1x1

A2

A

B

c) A1x1

A2

A

B

Figura 3.4: Ejemplo del Lema 4 con �` �� y �# �� . a), b) y c) muestran que cualquiera sea ladivisión, siempre aparece a lo menos un trozo .�/ con error a lo más ���1����� .

22

Page 36: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

3.1.3. Cálculo de la Distancia de Edición

Para el cálculo de la distancia de edición se utilizó en esta tesis la técnica basada en programacióndinámica [18]: Se llena una matriz Ev º¼º¼º³Ã ÄUà Š º¼º¼º³Ã Æ«Ã , donde donde E©À4Å / representa el mínimo número deoperaciones que se necesitan para que �zelº¼º¼º À calce con x>elº¼º¼º / en forma exacta. El cálculo se realiza dela siguiente manera:EÇÀ¶Å  ±��RgE  Š/� K5EÇÀ¶Å /� � 5 � �4'X�EÇÀg��elÅ /7R:'ª�LEÇÀ4Å /{��eiRgEÇÀA��elÅ /{��ew�LÈ��¨�>ÀUR�xÉ/��Ê�Donde È���<�Ri?«� es 0 si <± ^? y 1 si son distintos. Esto significa que para el calculo de la matrizdinámica de distancia de edición entre el patrón y el texto compara si entre ellos se ha producidouna inserción ( 's�KE©ÀA��elÅ / ), borrado ( 's�KE©À4Å /{��e ) o modificación ( E©Àg��elÅ /{��e~�KÈV���>ÀURix§/¨�Ê� ) utilizandosolamente la columna anterior.

Dado que la inserción en una cadena es equivalente al borrado en la otra entonces se cumple que:EÇÀA��elÅ /{��eX¥ � 5 � �4'­�EÇÀg��elÅ /�R�'­�LEÇÀ4Å /{��e¶�Lo que lleva a modificar la recurrencia (para reducir el número de operaciones y ganar en eficiencia)a la siguiente fórmula (figura 3.5.a):EÇÀ¶Å /� si �¨�>Àv Kx§/�� entonces EÇÀA��elÅ /{��e sino '­� � 5 � �£EÇÀA��elÅ /�RgEÇÀ4Å /{��e�RgEÇÀA��elÅ /S��e4� [21]

a)

t e c i t o s0 1 2 3 4 5 6 7

t 1 0 1 2 3 4 5 6e 2 1 0 1 2 3 4 5s 3 2 1 1 2 4 4 4i 4 3 2 2 1 2 3 4s 5 4 3 3 2 2 3 3

b)

t e c i t o s0 0 0 0 0 0 0 0

t 1 0 1 1 1 0 1 1e 2 1 0 1 2 1 1 2s 3 2 1 1 2 2 2 1i 4 3 2 2 1 2 3 2s 5 4 3 3 2 2 3 3

Figura 3.5: a) Matriz de programación dinámica para calcular la distancia de edición entre243 :5l y24368 5 249 . b) La variación del cálculo, para buscar el patrón

243 :57 en el texto24368 5 249 .

Los algoritmos estudiados en esta tesis que utilizan este tipo de cálculo son retropropagaciónsimple [7] y partición en j pedazos (Árboles y Arreglos de Sufijos) [15] para la búsqueda; y

23

Page 37: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

partición en j pedazos (q-gramas) [13] en la construcción de los patrones de búsqueda.

El cálculo anterior se utiliza para la distancia de edición entre dos cadenas de caracteres, sinembargo al buscar interesa la distancia contra cualquier subcadena de ; , por lo tanto se debepermitir que cualquier posición del texto sea un potencial inicio de calce. Esto se logra haciendoE  Š/� Ë$ÌÁ�5Í|�$�R:hThSR � ( � es el tamaño del texto). En otras palabras, el patrón “vacío” calza sinerrores en cualquier posición del texto.

Para realizar el cálculo se procede de la siguiente manera (figura 3.5.b):EÇÀ¶Å  ±��RgE  Š/� $EÇÀ¶Å /� si �¨p�Ào �Î�/�� entonces EÇÀA��elÅ /{��e sino 'X� � 5 � �£EÇÀA��elÅ /�RgEÇÀ4Å /{��eiRgEÇÀA��elÅ /S��e4�Los algoritmos estudiados en esta tesis que utilizan este tipo de cálculo son los de retropopagaciónmodificada [21] para la búsqueda; q-sampling aproximado [17] en la construcción de los patronesde búsqueda y verificación; y partición en � pedazos [15, 13], partición en ���� pedazos [19, 14]y q-sampling [20] en la verificación de las posiciones reportadas en cada búsqueda.

La programación dinámica debe llenar la matriz de tal forma que antes de calcular el valor de unacelda se debe ya tener los valores de las celdas ubicadas inmediatamente arriba, a la izquierda yarriba-izquierda (figura 3.5). Se puede deducir de ahí que la matriz se puede recorrer por filas deizquierda a derecha o por columnas de arriba hacia abajo o diagoneales.

Esta técnica utiliza un espacio extra Ï*� � 5 � �gy �ÇyÐRÉy x�y���� . Esto debido a que si se recorre por columnas,sólo la anterior columna es necesaria para calcular la nueva (análogo por filas).

Para determinar un calce en una búsqueda aproximada con un � dado, la última fila de la matrizdebe contener algún valor menor o igual a � . Dado que los valores almacenados en las filas sonno decrecientes, para determinar que un patrón no calza con un texto sólo se debe verificar quetodos los valores de una fila sean mayores que � ; por lo tanto, no es necesario calcular los valoresde toda la matriz para eliminar una búsqueda. Lo mismo se aplica a las columnas si se calcula ladistancia de edición entre dos cadenas.

24

Page 38: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

3.2. Retropropagación

Los algoritmos estudiados en esta tesis y que utilizan esta técnica son los algoritmos deRetropropagación Simple [1, 7, 2] y Retropropagación Modificada [21, 5].

3.2.1. Retropropagación Simple

El algoritmo de búsqueda consiste en hacer retropropagación sobre el Árbol o Arreglo de Sufijosconstruído a partir del texto. Se debe determinar cuándo hay calce (y reportar todo el subárbol orango) o cuándo no es necesario seguir considerando una búsqueda.

Retropropagación Simple sobre Árboles de Sufijos

Se recorre el Árbol de Sufijos desde la raíz hacia las hojas, bajando por las ramas en ordenlexicográfico. Se calcula la distancia de edición entre el patrón y cada cadena representada por uncamino en el árbol, utilizando la matriz de distancia de edición de la figura 3.5.a.

Si el último valor de la columna es menor o igual al error buscado, quiere decir que hay un calcey por lo tanto se reporta todo el subárbol a partir de ese nodo. Luego se abandona la búsqueda porese nodo y se continúa desde el nodo anterior (retropropagación).

Puede suceder que mientras se baja por el árbol verificando nodo por nodo, se llegue a una hoja.En tal caso, se debe ir al texto y continuar el cálculo de la distancia de edición desde la posiciónque indica la hoja. En caso de calce se reporta esa posición.

Mientras se calcula la nueva columna perteneciente a un nodo (basta con llenar una nueva columnapor cada nodo), se puede verificar que algún valor de la columna sea menor o igual al error buscado,de no ser así se abandona la búsqueda por ese nodo y se regresa al nodo anterior (retropropagación).

Un ejemplo práctico se puede apreciar en la figura 3.6. Se busca el patrón FAL en el Árbol deSufijos del texto ALFALFA con un error ( �� -' ). En la figura las columnas representan el patrón ylas filas el texto que se forma al descender por el árbol.

25

Page 39: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

La matriz de distancia de edición se va llenando por columnas. En la figura 3.6.a se aprecia que laprimera letra (A) no elimina ese nodo (existe en esa columna un valor menor o igual a uno) y porlo tanto se verifican sus hijos. Al momento de verificar el patrón con el texto formado por el primernodo (A$) sí se descarta la búsqueda por ese nodo y se continúa por el siguiente (ALFA); aunqueen el dibujo la matriz está calculada para el patrón completo se debe notar que el texto AL calzacon el patrón FAL con un error (segunda columna, cuarta fila), por lo tanto se reporta ese sub-árbol(posiciones 0 y 3).

En figura 3.6.b se puede ver cómo el patrón FAL calza con un error en el texto FA (la última filade la última columna verificada es menor o igual que � ) y por lo tanto se reporta todo ese subárbol(posiciones 5 y 7).

En figura 3.6.c se puede ver cómo el comparar FAL con LFA no arroja calce pero tampoco descartaese nodo para seguir la búsqueda. Al bajar al nodo que representa el texto LFA$ sí es descartada labúsqueda por ese camino. Al bajar al nodo que representa el texto LFAL sí hay calce y se reportaese sub-árbol (que en este caso es una hoja con la posición 1).

En total se reportan las posiciones 0, 1, 2, 3 y 5.

Retropropagación Simple sobre Arreglo de Sufijos

La idea es simular una búsqueda sobre un Árbol de Sufijos utilizando el Arreglo de Sufijos.Para ello se debe ingresar en todos los intervalos del arreglo de sufijos (utilizando programacióndinámica para determinar la validez de ese intervalo y/o reportar un calce), delimitando losintervalos de acuerdo a la siguiente letra del texto.

Una forma sencilla es tomar el primer elemento del intervalo, ir al texto y ver qué letra lecorresponde y luego hacer búsqueda binaria en el intervalo para determinar dónde terminan lossufijos que empiezan con esa letra. Eso entrega el primer intervalo. Luego se mira la casilla que lesigue a ese primer intervalo en el arreglo y se realiza la misma operación hasta determinar todoslos intervalos. Finalmente se ingresa a cada intervalo, verificando en cada uno de ellos que sepueda continuar la búsqueda (o que se deba reportar el intervalo). Sólo en los intervalos en que seaválido continuar con la búsqueda se repite el proceso.

El algoritmo estudiado presentaba dos mejoras en su implementación en [15]:

26

Page 40: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

4

A L F A L F A

0 1 2 3 4 5 6

5 21

FA

6

03

A

LFA

LFA

$$ L $

L

L$

A $0 1 2

F 1 1 2A 2 1 2L 3 2 2

A L F A0 1 2 3 4

F 1 1 2 2 3A 2 1 2 3 2L 3 2 1 2 3

b)

4

A L F A L F A

0 1 2 3 4 5 6

5 21

FA

6

03

A

LFA

LFA

$$ L $

L

L$

F A0 1 2

F 1 0 1A 2 1 0L 3 2 1

c)

4

A L F A L F A

0 1 2 3 4 5 6

5 21

FA

6

03

A

LFA

LFA

$$ L $

L

L$

L F A $0 1 2 3 4

F 1 1 1 2 3A 2 2 2 1 2L 3 2 3 2 2

L F A L0 1 2 3 4

F 1 1 1 2 3A 2 2 2 1 2L 3 2 3 2 1

Figura 3.6: a), b) y c) son tres pasos sucesivos de una búsqueda con Retropropagación Simplesobre un Árbol de Sufijos.

27

Page 41: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a) 6 3 0 5 2 4 1 b) 6 3 0 5 2 4 1

Figura 3.7: Ejemplo de retropropagación sobre el arreglo de sufijos de la palabra alfalfa.

1. No comenzar en la primera casilla sino en la del medio. Así las búsquedas binarias se reducenmás rápidamente: se determina el intervalo que contiene la casilla del medio y se sigue conlos dos pedazos de la izquierda y la derecha.

2. Si el intervalo es muy corto no se hace búsqueda binaria sino secuencial.

Por ejemplo, para la palabra alfalfa el arreglo de sufijos se muestra en la figura 2.2. Si se realizala búsqueda del patrón alf sin errores (k=0) utilizando la retropropagación simple, entonces lospasos son los siguientes:

Primero: Se determinan los intervalos para una letra (se parte por la casilla del medio, en estecaso: 5), como se muestra en la figura 3.7.a.

Segundo: Se verifica la primera letra del patrón (a) para cada intervalo, lo cual elimina el segundoy tercer intervalo.

Tercero: Se repite el procedimiento para el primer intervalo, subdividiéndolo en intervalos para 2letras (comenzando por la casilla del medio, en este caso: 3), como se muestra en la figura 3.7.b.

Cuarto: Se verifica la segunda letra del patrón (l) en cada intervalo, lo cual elimina al primersubintervalo.

Quinto: Se repite el procedimiento para el primer subintervalo, pero en este caso aquél quedaintacto.

Sexto: Se verifica la tercera letra del patrón (f) en este subintervalo, como hubo calce se reportanlas posiciones 0 y 3.

3.2.2. Retropropagación Modificada

Esko Ukkonen observó en [21] que al realizar retropagación simple sobre un Árbol de Sufijosmuchas veces se reportaban posiciones que correspondían a la inserción al principio de otro calce.

28

Page 42: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Por ejemplo en la figura 3.6 se aprecia que retropropagación simple reporta para el patrón FALla posición del texto LFAL y del texto FAL; obviamente la interesante para una búsqueda es lasegunda, porque es más exacta. En índices sobre grandes textos eso influye de mala forma en eldesempeño del algoritmo, puesto que se referencian muchas posiciones que en la práctica no sonútiles.

Ukkonen plantea en [21] que el estado de una búsqueda en cierto punto del texto depende de loscaracteres leídos anteriormente, y además que las posiciones interesantes son las que evitan lainserción de caracteres extra al principio. Él llama prefijos viables a las subcadenas que pueden serprefijos interesantes de una ocurrencia aproximada ( �&Y�$ ) del patrón.

Para encontrar estos prefijos viables, Ukkonen propone eliminar la primera letra del prefijorepresentado por el camino recorrido en el árbol utilizando el suffix link, pasando transversalmenteentre los nodos del árbol. Además, se debe verificar que el nuevo prefijo pueda ser catalogadocomo prefijo viable y de ser así continuar desde ese punto la búsqueda; para ello se utiliza unanueva matriz F definida como:F  Š/� �F�À4Å /� si EÇÀ4Å /� KEÇÀA��elÅ />�M' entonces FzÀA��elÅ /

sino, si EÇÀA��elÅ /S��eÇ KEÇÀA��elÅ /{��ew�LÈ�� � À6R 2 /�� entonces F�ÀA��elÅ /{��ew�K'sino F�À4Å /{��e��M'F�À4Å / representa al tamaño de la cadena más corta de un texto ; que termina en

2 / cuya distanciade edición con las primeras � letras del patrón C es igual a EXÀ4Å / (figura 3.8). El tamaño del prefijoviable para una columna 5 es F©Ñ6Å / donde � es el mayor índice tal que EvÑ:Å /�¥K� .a)

a a b b b b b0 0 0 0 0 0 0 0

a 1 0 0 1 1 1 1 1b 2 1 1 0 1 1 1 1b 3 2 2 1 0 1 1 1b 4 3 2 1 0 1 1 1

b)

a a b b b b b0 0 0 0 0 0 0 0

a 1 1 1 0 0 0 0 0b 1 1 1 2 1 1 1 1b 1 1 1 2 3 2 2 2b 1 1 1 2 3 4 3 3

Figura 3.8: Si ;D "<@<@?B?A?A?A? y CÒ "<>?A?A? entonces en el algoritmo de Ukkonen a) representa a lamatriz E y b) representa a la matriz F .

El algoritmo que plantea Ukkonen en [21] se basa en el cálculo de columnas de las matrices C y Lindependientemente de cómo se llegó a un nodo, y en marcar los nodos ya visitados para no repetir

29

Page 43: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

una búsqueda. Para efectos de mejor entendimiento se explicará el algoritmo sobre un Árbol Triede Sufijos y luego se adaptará a un árbol.

Lo primero que se hace es marcar la raíz, para que cualquier búsqueda vía suffix link termineal llegar a ella, e inicializar las primeras columnas de C y L. Luego desde la raíz se procederecursivamente:

1. Para cada nodo hijo no eliminado se calculan las columnas CC y LL (los nuevos valores delas columnas, basándose en C y L) para la letra almacenada en ese nodo.

2. Se calcula el tamaño del prefijo viable, esto es el valor de LL(h) donde � es el mayor índicetal que CC(h) ¥ k.

3. Mientras la profundidad de ese nodo sea mayor que el tamaño del prefijo viable y ese nodono esté eliminado, se elimina el nodo y se pasa al nodo apuntado por su suffix link.

4. Si la profundidad del nodo actual es igual al tamaño del prefijo viable y el nodo actual noestá eliminado se verifica un calce (CC(m) ¥ k) y de ser así se agrega el nodo actual a lalista de nodos a reportar. Además, como continúa la búsqueda a partir de este nodo (porquerepresenta un prefijo de un texto interesante), se eliminan todos los nodos que van desde elactual a la raíz siguiendo el camino vía suffix link.

5. Se repite el algoritmo para el nodo actual pasando como parámetro las columnas CC y LL.

6. Finalmente se reportan todos los sub-árboles de los nodos almacenados en la lista de nodosa reportar (y por lo tanto es necesario memoria extra para almacenar esta lista) utilizada parano repetir posiciones reportadas.

Para adaptarlo a un Árbol de Sufijos es necesario tener en consideración que:

Cada nodo puede almacenar más de un carácter, por lo tanto se puede realizar más de uncálculo de CC y LL por nodo.

Luego de pasar de un nodo a otro vía suffix link buscando el prefijo viable puede suceder quela profundidad (

�) sea menor que el tamaño del prefijo viable ( � 3 � ) en ese nodo, por lo tanto

el siguiente cálculo de CC y LL se debe realizar desde la ( � 3 � � � )-ava letra de ese nodo.

Se deben realizar� �`� 3 � saltos vía suffix link para buscar el prefijo viable (paso 2); antes de

eliminar un nodo se debe verificar que el suffix link no apunte a sí mismo.

30

Page 44: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Antes de comenzar la eliminación de los nodos alcanzados vía suffix link (paso 4) se debenverificar primero todos los caracteres almacenados en el nodo actual. De no ser así se corre elriesgo de eliminar un nodo que representa un prefijo viable antes que el algoritmo lo verifique,perdiendo una posición interesante.

Un ejemplo del algoritmo aplicado sobre el Árbol de Sufijos del texto ALFALFA, buscando elpatrón FAL con un error se presenta en la figura 3.9:

En la figura 3.9.a se muestra el inicio del algoritmo, bajando por la rama de menor valorlexicográfico y calculando las columnas de C y L en cada nodo; las únicas diferencias con laretropropagación simple hasta este punto son el marcar los nodos como visitados (círculosgrises) y calcular el tamaño del prefijo viable (celdas destacadas) para cada nodo.

Se puede apreciar en la figura 3.9.b cómo el algoritmo abandonó una búsqueda por la ramaA$ porque el tamaño del prefijo viable es cero y por lo tanto debe ir eliminando nodos hastala raíz siguiendo los suffix link. La siguiente búsqueda es por el nodo que representa ALFA yse aprecia que este nodo reporta un calce con el texto AL y por lo tanto se agrega a la lista delos nodos a reportar.

En la figura 3.9.c se continúa la búsqueda ahora con el texto ALF, donde el tamaño delprefijo viable ( ' ) es mayor que la profundidad del árbol en ese punto ( � ), por lo tanto hay queabandonar ese nodo. La figura 3.9.d muestra la eliminación de los nodos vía suffix link hastaencontrar la profundidad deseada.

La figura 3.9.e muestra que a pesar de no continuar la búsqueda en el nodo que representael texto ALFA sí se utilizan sus columnas para calcular los nuevos valores de C y L. En estecaso el nodo reporta un calce y se agrega a la lista de nodos a reportar.

Dos situaciones interesantes se muestran en la figura 3.9.f: la primera es al marcar el nodoactual como visitado y sabiendo que se continuará la búsqueda desde ese punto, se eliminanlos nodos entre él y la raíz alcanzados vía suffix link; como ese nodo ya está eliminado no secontinúa la iteración. La segunda es la continuación de la búsqueda a partir de los hijos delnodo actual, calculando los nuevos valores de las columnas utilizando sólo las columnas desu padre sin importar los anteriores cálculos.

La figura 3.9.g muestra que el nodo que representa al texto FA$ calza con un error en elpatrón, por lo tanto se agrega a la lista de nodos a reportar y se eliminan los nodos entre él yla raíz via suffix link; como el primero (A$) ya está eliminado no se continúa la iteración.

Finalmente, la figura 3.9.h muestra que el nodo que representa al texto FAL calza sin error enel patrón, por lo tanto se agrega a la lista de nodos a reportar y se eliminan los nodos entre ély la raíz via suffix link; como el primero (ALFA) ya está eliminado no se continúa la iteración.

31

Page 45: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Luego se reportan los nodos pertenecientes a la lista, teniendo cuidado de no reportar dos veces elmismo sub-árbol.

Archie Cobbs propone en [5] una modificación al algoritmo de Ukkonen: generar los prefijosviables usando el Árbol de Sufijos sólo como lectura, utilizando una tabla de hashing paraalmacenar la información adicional con los nodos del árbol, y luego utilizar búsqueda exacta paraencontrar las posiciones de ellos.

Se utiliza la matriz de programación dinámica definida en la figura 3.5.b y el algoritmo trabajafila a fila en � rondas. En cada ronda se generan los candidatos extendiendo vertical (borrado) ydiagonalmente (reemplazo) a los candidatos de la ronda anterior; y horizontalmente (inserción) alos candidatos pertenecientes a la ronda actual (cada nuevo candidato para una ronda 5 significa laverificación de la matriz dinámica hasta la i-ésima fila); si todos los valores en esa fila son mayoresa � el candidato se desecha. Inicialmente (ronda 0) el único candidato es la cadena vacía.

Para filtrar los candidatos se utilizan dos reglas: suffix preemption y cosuffix preemption. Laprimera se refiere a que se eligen los candidatos que representen a los sufijos más largos; para ellose sigue el camino desde el nodo a la raíz vía suffix link y si se encuentra otro sufijo con la mismadistancia de edición se elimina el más corto. La segunda se refiere a que si un candidato es sufijo deotro y además posee una distancia de edición mayor, debe ser eliminado del conjunto de candidatos.

Este algoritmo no se estudió en la presente tesis porque dado que Ukkonen planteó el inspeccionarmenor cantidad de nodos en [21] y experimentalmente su algoritmo no logró una real mejora dela retropropagación simple, el algoritmo planteado por Cobbs en [5] seguirá el mismo camino,sino peor. Además, en [16] se demuestra que la implementación de este algoritmo es por lo menos5 veces peor en tiempo de búsqueda que los algoritmos de retropropagación simple, sin contarademás el espacio extra que utiliza.

3.3. Reducción a Búsqueda Exacta

Los algoritmos estudiados en esta tesis que utilizan esta técnica de búsqueda son los algoritmos departición en �H�L pedazos [19, 14], para Arreglos de Sufijos e índices de q-gramas; y el algoritmoq-sampling [20], para índices de q-samples.

32

Page 46: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

LFA

L

1

$

4

A

$

6

$ L

03

FA

$ L

5 2

LC112

011

C L122

002 LFA

b)

LFA

L

1

$

4

A

$

6

$ L

03

FA

$ L

5 2

LC112

011

LFA

LC121

002

c)

LFA

L

1

$

4

L002

A

$

6

$ L

03

FA

$ L

5 2

LFAC L012

111

C121

d)

C L012

111

A

$

6

$ L

03

FA

$ L

5 2

LFA

LFA

L

1

$

4

e)

C L012

111

A

$

6

$ L

03

FA

$ L

5 2

LFA

LFA

L

1

$

4

C L101

022

f)

C L

1 33

1

1

0

A

$

6

$ L

03

FA

$ L

5 2

LFA

LFA

L

1

$

4

C L101

022

g)

C L

1 33

1

1

0

A

$

6

$ L

03

FA

$ L

5 2

LFA

LFA

L

1

$

4

C L101

022

h)

A

$

6

$ L

03

FA

$ L

5 2

LFA

LFA

L

1

$

4

C L101

022

C L

1 33

1

0

0

Figura 3.9: Las figuras a),..., h) muestran estados sucesivos del algoritmo de Ukkonen sobre elÁrbol de Sufijos para el texto ALFALFA y el patrón FAL con �� -' . Por claridad se etiquetaron losnodos en vez de los arcos.

33

Page 47: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

3.3.1. Partición en Ó�Ô�Õ pedazos

Basándose en el lema 2, Shi [19] divide el patrón en �Ì�� bloques disjuntos (con � la distanciade edición entre el patrón y el texto buscado y ¿Y�$ ). Luego realiza una búsqueda exacta de cadauno de los ���� trozos, aplica un filtro a las posiciones reportadas por ellos y quienes superan esaetapa son verificados directamente en el texto.

El filtro aplicado a las posiciones reportadas corresponde a cuatro restricciones que se debencumplir:

1. Al menos bloques deben aparecer en el texto (figura 3.10).

2. La ocurrencia de los bloques debe mantener el orden en el texto (figura 3.11).

3. No debe haber traslape de bloques (figura 3.12).

4. La distancia entre el segmento de texto al que corresponde el primer bloque y el quecorresponde al último no debe ser mayor a m+k (con � el largo del patrón) (figura 3.13).

a) P

T

b) P

T

Figura 3.10: Condición 1 del algoritmo de Shi para �, +' y � � : a) no la cumple, b) sí la cumple

a) P

T

b) P

T

Figura 3.11: Condición 2 del algoritmo de Shi para �, +' y � � : a) no la cumple, b) sí la cumple

Se busca en el índice la secuencia de bloques que cumplan las cuatro restricciones y en ese casose verifica que el patrón calce en el texto con a lo más � errores; para ello se utiliza la matrizde programación dinámica descrita descrita en la figura 3.5.b, y se verifica desde pos-k hastapos+m+k, donde pos es la posición de inicio del patrón en el texto.

34

Page 48: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a) P

T

b) P

T

Figura 3.12: Condición 3 del algoritmo de Shi para �, +' y � � : a) no la cumple, b) sí la cumple

a) P

T

b) P

T

Figura 3.13: Condición 4 del algoritmo de Shi para �, +' y � � : a) no la cumple, b) sí la cumple

Ricardo Baeza-Yates y Gonzalo Navarro proponen en [14] una simplificación, basándose en ellema 2: dividen el patrón en �&�c' partes, por lo que no es necesario verificar las tres últimascondiciones anteriores (es decir, H -' ).3.3.2. Ö -Sampling

Erkki Sutinen y Jorma Tarhio proponen en [20] un nuevo esquema de búsqueda utilizando uníndice de q-samples como estructura de datos para almacenar el texto.

La idea principal es utilizar el lema 2 pensando que los errores ocurren en el texto y . serán lasocurrencias de C en ; . En este caso los q-samples ( ;~elżº¼º¼º¼Å ׫RÊ;�ÑB��elżº¼º¼º¼Å ÑB�1×gR�;�²lÑ«��elżº¼º¼º¼Å ²lÑB�1×AR:hThSh ) del índicecorresponderán a los bloques .�/ y el espacio entre q-samples a ��/ , y se quiere que al menos deestos q-samples aparezcan en P.

Se sabe además que un patrón posee ( � �Q�¿�c' ) q-gramas, y que el mínimo tamaño de unaocurrencia de C en ; es de � �0� ; por lo tanto la mayor distancia que nos asegura que se encontrarán de los q-gramas de C en ; es:

�* Ø � �L�W�#�v�M'��� Ù35

Page 49: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

pues esto garantiza que habrán al menos ( ���� ) q-samples dentro de cualquier ocurrencia. Este �es la distancia que separa los q-samples y además, por definición de índice de q-samples, � m � .Pero la mayoría de las veces � es un parámetro que no es posible modificar en tiempo de búsqueda,por lo tanto las condiciones de ésta se deben realizar sobre el patrón y no sobre el índice. Por lotanto la condición utilizada es: � Ø � �L�¿�Ú�v�K'� �L� Ù Y�$Por otro lado, basándose en el lema 3 en que . es el texto y ¾ el patrón, se divide el patrón enzonas de búsqueda Û�/� ÒC_®¼5l�_��'�R:hThShTRU��5~�-'U���*���,� �¿�Q'«¯�Üi5 m $ (figura 3.14) y se aplica elsiguiente algoritmo:

Se buscan todos los q-gramas del bloque Û�/ en el índice, sin error.

Por cada posición�

que reporte calce del q-grama en ese bloque, se actualiza un contadorÝ ® � ��5l��¯¢ Ý ® � ��57�1¯��-' . Notar que no se almacenarán las posiciones en que no hayacalce.

T

P

Q1 Q3Q0 Q2

Figura 3.14: Bloques de búsqueda de algoritmos sobre q-samples.

Luego, para todos los valores en queÝ ®¼5£¯ m , se verifica el texto con la matriz de programación

dinámica definida en la figura 3.5.b desde ( 5f�L������ ) hasta ( 5��±��� � �±� ).3.4. Método Intermedio

Los siguientes algoritmos dividen el problema de buscar un patrón C en el texto ; con � errores abuscar � pedazos del patrón en ; con ���1����� errores, basándose en los lemas 1 y 4.

Los algoritmos que utilizan esta técnica son los algoritmos de partición en � pedazos [15, 13] y elalgoritmo de q-sampling aproximado [17].

36

Page 50: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

3.4.1. Partición en Þ pedazos

La idea de este algoritmo es dividir el problema de buscar un patrón con � errores en buscar �patrones con error ���1����� , para así optimizar el tiempo de búsqueda ahorrando ya sea tiempo debúsqueda o tiempo de filtrado.

Los casos extremos de esta técnica son �, =' (retropropagación simple) y �_ +��� ' (reducción abúsqueda exacta); sin embargo no se puede asegurar que cualquiera de ellos sea el valor óptimo. En[15] se demuestra que el valor óptimo de � se encuentra cuando �� +Ï_� � �»ß{à)á>â � � . La figura 3.15muestra el compromiso entre búsqueda y verificación presente en la partición de una búsqueda en� pedazos.

En esta tesis se presenta un estudio del valor experimental de � para distintas estructuras dedatos: búsqueda sobre Arreglos de Sufijos (adaptable a árboles) [15] y búsqueda sobre índices deq-gramas [13].

ãäãäããäãäããäãäããäãäããäãäããäãäããäãäãåäååäååäååäååäååäåæäææäææäææäæçäççäççäççäçèäèäèèäèäèèäèäèèäèäèèäèäèèäèäèèäèäèèäèäèéäééäééäééäééäééäééäé ê�ê�ê�ê�ê�ê�êê�ê�ê�ê�ê�ê�êê�ê�ê�ê�ê�ê�êê�ê�ê�ê�ê�ê�ê

ë�ë�ë�ë�ë�ëë�ë�ë�ë�ë�ëë�ë�ë�ë�ë�ëë�ë�ë�ë�ë�ëì�ì�ì�ì�ì�ìì�ì�ì�ì�ì�ìì�ì�ì�ì�ì�ìí�í�í�í�í�íí�í�í�í�í�íí�í�í�í�í�íî�î�î�î�î�îî�î�î�î�î�îî�î�î�î�î�îî�î�î�î�î�îï�ï�ï�ï�ï�ïï�ï�ï�ï�ï�ïï�ï�ï�ï�ï�ïï�ï�ï�ï�ï�ï

ð�ð�ð�ð�ðð�ð�ð�ð�ðð�ð�ð�ð�ðð�ð�ð�ð�ðñ�ñ�ñ�ñ�ññ�ñ�ñ�ñ�ññ�ñ�ñ�ñ�ññ�ñ�ñ�ñ�ñ

ò�ò�ò�ò�ò�òò�ò�ò�ò�ò�òò�ò�ò�ò�ò�òò�ò�ò�ò�ò�òò�ò�ò�ò�ò�òó�ó�ó�ó�óó�ó�ó�ó�óó�ó�ó�ó�óó�ó�ó�ó�óó�ó�ó�ó�ó

ô�ô�ô�ô�ôô�ô�ô�ô�ôô�ô�ô�ô�ôô�ô�ô�ô�ôô�ô�ô�ô�ôõ�õ�õ�õõ�õ�õ�õõ�õ�õ�õõ�õ�õ�õõ�õ�õ�õ

öäööäö÷÷ ø�øù�ùúäúäúäúäúäúúäúäúäúäúäúúäúäúäúäúäúúäúäúäúäúäúúäúäúäúäúäúúäúäúäúäúäúúäúäúäúäúäúúäúäúäúäúäúúäúäúäúäúäúûäûäûäûäûäûûäûäûäûäûäûûäûäûäûäûäûûäûäûäûäûäûûäûäûäûäûäûûäûäûäûäûäûûäûäûäûäûäûûäûäûäûäûäûûäûäûäûäûäû üäüüäüüäüüäüüäüýýýýý þäþþäþþäþ

þäþÿäÿÿäÿÿäÿÿäÿ����

�����

BUSQUEDA VERIFICACION

Figura 3.15: La partición en � pedazos se puede ver como un compromiso entre retropropagaciónsimple y reducción a búsqueda exacta.

Ricardo Baeza-Yates y Gonzalo Navarro presentan en [15] un algoritmo basado en la combinaciónde un Árbol o un Arreglo de Sufijos con una partición del patrón:

Se parte el patrón en j pedazos, basándose en el lema 1.

Se busca cada una de ellos en el índice usando la retropropagación simple [7].

Para cada posición reportada, se verifica el calce usando la matriz de programación dinámicadescrita en la figura 3.5.b.

37

Page 51: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Un algoritmo parecido es el planteado por Gene Myers plantea en [13] el concepto de vecindad deun patrón C : la lista de todas las cadenas C�� tal que la distancia de edición entre C y C�� es menorque � .La matriz de programación dinámica descrita en la figura 3.5.a es utilizada para construir, a partirdel alfabeto del texto, todas las posibles cadenas de la vecindad. Una heurística es verificar cadavez que se le agregue una letra a la cadena si todavía pertenece a la vecindad; de no ser así se cortala construcción por esa rama y se realiza la retropropagación.

Se plantea en [13] la utilización de un índice de q-gramas para la búsqueda; por lo tantosólo se pueden buscar patrones de tamaño a lo más ����� . Para patrones más largos, el patrón esdividido (para dar con el tamaño necesario) binariamente en < / partes iguales (con < número naturaldependiente del problema e 5 el nivel de partición), cada parte se busca con ���1�É< / � errores (lema 1).

Luego, todas las subcadenas generadas a partir de la vecindad del patrón son buscadas sin error enel índice y todas las posiciones reportadas son verificadas jerárquicamente utilizando la matriz dedistancia de edición descrita en la figura 3.5.b.

La idea de la verificación jerárquica es dividir el patrón en � pedazos (Myers plantea en [13] que� debe ser potencia de dos); para buscar un patrón entonces se deberán buscar sus mitades, parabuscar cada mitad sus cuartos y así sucesivamente. Por cada pedazo encontrado se verifica si elsubpatrón de la jerarquía superior está presente en una vecindad del texto encontrado, de no serasí no se continúa la búsqueda. La figura figura 3.16 muestra un ejemplo usando verificaciónjerárquica (con <� -� ). La aparición de la cadena bbb con ���1�§�)� errores genera la verificación dela cadena aaabbb en el texto con ���1���U� errores; la aparición de esa cadena genera la verificacióndel patrón completo con � errores.

aaabbbcccdddaaabbb cccddd

aaa bbb ccc ccc

Figura 3.16: Partición jerárquica de un patrón en 4 piezas. Sólo son verificados los pedazos ennegrita, de abajo hacia arriba.

38

Page 52: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

3.4.2. Ö -Gramas Aproximados

Este algoritmo [17] utiliza, al igual que el algoritmo de q-sampling, un índice de q-samples paraalmacenar el texto y sus posiciones; y, al igual que el algoritmo presentado por Myers [13], generauna vecindad para el patrón de búsqueda.

Está basado en el lema 4, donde . es el texto (los .�/7Ri5W I'�R:hThShTRl� son los q-samples) y ¾ es elpatrón. Para garantizar que al menos � q-samples aparezcan en toda ocurrencia del patrón C sedebe cumplir que: �G¥ Ø � �`�¿�#�v�K'� ÙEl algoritmo descrito en [17] es el siguiente:

Se divide el patrón en bloques Û�/ (figura 3.14) al igual que el algoritmo q-Sampling.

Se crea un contadorÝ ®� ¢���0�Ú5£¯ , inicialmente

Ý ®� ­���0�Z5�¯� ±��� 3 �±'U� , que corresponde alnúmero de errores que posee el q-sample   (  � ��9 U��� ) y

3un parámetro ajustable en tiempo

de búsqueda con � mK3�m ��������� . Notar que inicialmente cada q-sample posee tantos erroresque descarta su calce.

Se recorre todo el2  §5 3 para comparar los q-samples con el bloque Û�/ usando la matriz de

programación dinámica definida en la figura 3.5.b, simulando que el bloque ÛW/ es el texto ylos caminos del

2  É5 3 el patrón de búsqueda (por lo tanto se llena la matriz por filas y no porcolumnas); y calculando la menor distancia de edición (alineamiento) que posee el q-sample� dentro del bloque Û (en adelante ? 3 ������RiÛ�� ).Al llegar a una hoja se verifica que el error sea a lo más

3, en tal caso se reporta el q-sample y

su error; es decir, se actualizan todos los valores deÝ ¤l��ÀA�@/� Ý ¤l��ÀA�@/A��� 3 �G'U�U�_? 3 ���£��¤:RiÛ�/¨� ;

donde ��¤ es el q-sample que comienza en la posición��9 � K )� . Notar que al llegar a una hoja

el número de posiciones a las cuales se les actualiza el contadorÝ ¤¶��Àg�@/ puede ser mayor que

uno.

Dado que todos los valores de una fila a otra no decrecen, si todos éstos son mayores que3,

entonces se abandona la búsqueda por esa rama.

Finalmente, al igual que en el algoritmo q-Sampling [20], se debe verificar completamente elpatrón en todas las áreas donde se encuentre un calce potencial. Para ello se utiliza la matriz deprogramación dinámica definida en la figura 3.5.b. A diferencia del algoritmo de q-Sampling, eneste caso las áreas “interesantes” son donde

Ý ¤¶��Àg�@/�¥K� .39

Page 53: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Un ejemplo de este algoritmo se presenta en las figuras siguientes; se presenta el índice deq-samples (utilizando un trie para su construcción) con parámetros �^ � y � J , parael texto “usted se encuentra en la mitad de la tesis” y el patrón “miniencuentro” con �� -' (y por lo tanto

3 $ ó3 �' ).

La figura 3.17 presenta la búsqueda por la rama izquierda de cada uno de los bloques ÛW/ delalgoritmo; en este caso Û Â “mini encuent” y Û¿eo “cuentro” (el tamaño de Û¿e es menorpuesto que toma sólo las últimas letras del patrón). Al bajar desde la raíz por la rama que representaal q-grama “ad d” se puede apreciar que la búsqueda es abandonada antes de llegar a las hojas,puesto que todos los valores de la fila de su matriz de distancia de edición son mayores quecualquiera de los valores permitidos de

3y por lo tanto ningún q-sample es reportado. Lo mismo

sucede al bajar por la rama que representa al q-grama “a te”.

El mismo esquema de búsqueda se muestra en la figura 3.18, para las ramas centrales del índice.En este caso sí hay calces para (

3 �' ) pero no para (3 "$ ) y por lo tanto en el primer caso se

deben actualizar los valores deÝ ¤l��ÀA�@/ .

Se puede apreciar que el primer bloque calza con el texto “e en” (representado por la rama deltrie); para

3 -' esto genera el reporte del q-sample '��,� , y por lo tantoÝ e£��Àv =�T�ª�!'U��� 3 � 'U��� ' .

Por otro lado el segundo bloque calza con el texto “ntra” para3 Ò' ; por lo tanto se reporta el

q-sample �����X��'� ±�~� ' . Entonces se tiene queÝ e£��Àv Ý e£��À���� 3 � 'U��� '� ��S�X�Í����� 3 � 'U���!� .

La figura 3.19 muestra la aplicación del algoritmo para las ramas ubicadas a la derecha del índice.Nuevamente la búsqueda se detiene antes de llegar a las hojas dado que todos los valores de la filaen que se detiene son mayores que cualquiera de los valores permitidos de (

3).

Se debe notar que se debe verificar la posición de un q-sample � si y sólo siÝ e£��ÀG¥ � ; lo cual

depende directamente de los valores de � y3. El siguiente cuadro muestra si se verifica o no para

distintos valores de estos parámetros:� 3 Ý e£��À ¿Chequeo?1 1 0 SI2 1 2 NO2 0 NO EXISTE NO

En [17] no se hace mayor referencia a los valores que deben tomar � y3; es parte del desarrollo de

esta tesis encontrar los valores óptimos para ambos parámetros puesto que existe un compromisopara ellos:

40

Page 54: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������

���������������������������������

���

���

’a’

’d’

’d’’ ’

’ ’

’t’’e’

’e’

’e’’ ’

’n’

’n’

’a’

’e’’t’

’u’’s’’ ’

’ ’’a’

’t’’r’

’l’

0

211473528

m i n i e n c u e n t0 0 0 0 0 0 0 0 0 0 0 0 0

a 1 1 1 1 1 1 1 1 1 1 1 1 1d 2 2 2 2 2 2 2 2 2 2 2 2 2

c u e n t r o0 0 0 0 0 0 0 0

a 1 1 1 1 1 1 1 1d 2 2 2 2 2 2 2 2

m i n i e n c u e n t0 0 0 0 0 0 0 0 0 0 0 0 0

a 1 1 1 1 1 1 1 1 1 1 1 1 12 2 2 2 2 1 2 2 2 2 2 2 2

t 3 3 3 3 3 2 2 3 3 3 3 3 2

c u e n t r o0 0 0 0 0 0 0 0

a 1 1 1 1 1 1 1 12 2 2 2 2 2 2 2

t 3 3 3 3 3 3 3 3

Figura 3.17: Primera búsqueda del algoritmo de q-sampling aproximado, con �P ' , �± � y�K IJ ; para el texto “usted se encuentra en la mitad de la tesis y el patrónmini encuentro”.

41

Page 55: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������� ��

’a’

’d’

’d’’ ’

’ ’

’t’’e’

’e’

’e’’ ’

’n’

’n’

’a’

’e’’t’

’u’’s’’ ’

’ ’’a’

’t’’r’

’l’

0

211473528

m i n i e n c u e n t0 0 0 0 0 0 0 0 0 0 0 0 0

e 1 1 1 1 1 1 0 1 1 1 0 1 12 2 2 2 2 1 1 1 2 2 1 1 2

e 3 3 3 3 3 2 1 2 2 3 2 2 2n 4 4 4 3 4 3 2 1 2 3 3 2 3

c u e n t r o0 0 0 0 0 0 0 0

e 1 1 1 0 1 1 1 12 2 2 1 1 2 2 2

e 3 3 3 2 2 2 3 3n 4 4 4 3 2 3 3 4

m i n i e n c u e n t0 0 0 0 0 0 0 0 0 0 0 0 0

n 1 1 1 0 1 1 1 0 1 1 1 0 1t 2 2 2 1 1 2 2 1 1 2 2 1 0r 3 3 3 2 2 2 3 2 2 2 3 2 1a 4 4 4 3 3 3 3 3 3 3 3 3 2

c u e n t r o0 0 0 0 0 0 0 0

n 1 1 1 1 0 1 1 1t 2 2 2 2 1 0 1 2r 3 3 3 3 2 1 0 1a 4 4 4 4 3 2 1 1

Figura 3.18: Segunda búsqueda del algoritmo de q-sampling aproximado con �P ' , � � y�K IJ ; para el texto “usted se encuentra en la mitad de la tesis y el patrónmini encuentro”.

42

Page 56: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

������������������������������������������������������������������������������������������������������������������������������������������������������������

�������������������������������������������� ��������������������������������������������’a’

’d’

’d’’ ’

’ ’

’t’’e’

’e’

’e’’ ’

’n’

’n’

’a’

’e’’t’

’u’’s’’ ’

’ ’’a’

’t’’r’

’l’

0

211473528

m i n i e n c u e n t0 0 0 0 0 0 0 0 0 0 0 0 01 1 1 1 1 0 1 1 1 1 1 1 1

l 2 2 2 2 2 1 1 2 2 2 2 2 2a 3 3 3 3 3 2 2 2 3 3 3 3 3

c u e n t r o0 0 0 0 0 0 0 01 1 1 1 1 1 1 1

l 2 2 2 2 2 2 2 2a 3 3 3 3 3 3 3 3

m i n i e n c u e n t0 0 0 0 0 0 0 0 0 0 0 0 0

u 1 1 1 1 1 1 1 1 1 0 1 1 1s 2 2 2 2 2 2 2 2 2 1 1 2 2t 3 3 3 3 3 3 3 3 3 2 2 2 2

c u e n t r o0 0 0 0 0 0 0 0

u 1 1 0 1 1 1 1 1s 2 2 1 1 2 2 2 2t 3 3 2 2 2 2 3 3

Figura 3.19: Tercera búsqueda del algoritmo de q-sampling aproximado, con �+ ' , �M � y�K IJ ; para el texto “usted se encuentra en la mitad de la tesis y el patrónmini encuentro”.

43

Page 57: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Si se elige un valor de3

pequeño, la búsqueda en las vecindades (dependientes de3) será

menos costosa que para grandes valores; pero generará mayor cantidad de verificaciones alsubestimar el número real de errores de los q-samples del texto.

Para una búsqueda dada, con3

fijo, mientras mayor es el valor de � , mayor es el tamaño delas secuencias buscadas y por lo tanto menor el error por pedazo. Por lo tanto el costo deencontrar un q-sample relevante disminuye, pero las verificaciones en el texto aumentan.

44

Page 58: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Capítulo 4

Comparación Experimental

En el presente capítulo se presenta la experimentación desarrollada en esta tesis; para ello primerose explicará el experimento a realizar y el valor esperado teóricamente de los resultados, luego semostrarán los resultados obtenidos y se compararán con la teoría.

4.1. Mecanismo de Experimentación

Se considera que el tiempo que toma cada experimento es una variable aleatoria. Si se tiene quepÌ/ es el tiempo que tardó la i-ésima prueba de un experimento, entonces por ley de los grandesnúmeros el promedio de variables aleatorias ��pGeAR�hShThSRÊp������ � posee una distribución normal para �grande con media y varianza d ² � � , donde y d son la media y la varianza del tiempo que tomael experimento.

Por lo tanto, si se estima como ! ! ��¨pÍeAR:hThShTR�p"���Ê� �y d (en su estimador no sesgado) como!d� # $ �/&%�e p ²/ � � ! ²� ��'con un 95 % de probabilidad el valor real estará entre [

! #�P� !d��(' � R ! ��+� !d��)' � ]. Entonces, serepetirá el proceso � veces hasta que � !d�� ' � � ! ¥M$�R¸$�O para tener una confianza de, al menos un95 %.

45

Page 59: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

5

10

15

20

25

10 20 30 40 50 60 70 80 90 100

Tiem

po d

e bú

sque

da (s

eg)

Tamaño del patrón (caracteres)

Búsqueda secuencial, texto sin indizar

Sin Indizar

Figura 4.1: Tiempo de búsqueda secuencial, con matriz de programación dinámica, sobre 30 MBde texto para todo NTodos los experimentos se realizaron en un computador con procesador AMD Athlon de 1.2 Ghzde velocidad, con 512 MB de memoria RAM, disco duro de 40 GB y sistema operativo Linux.Para la experimentación se utilizaron dos tipos de textos: ADN del homo sapiens [6] y texto eninglés perteneciente al Wall Street Journal y obtenido de TREC-3 [8].

Los patrones son tomados de 1 MB de los trozos de textos anteriores no utilizados en la búsqueda.Procesados para dar con el tamaño de patrón entre 1 y 100 en distancias de a 5 caracteres.

Todas las comparaciones de esta tesis se realizaron además contra los tiempos que obtiene labúsqueda secuencial (sin indización, directamente sobre el texto) tanto para ADN como para textoen inglés. La gráfica que resulta de esa búsqueda es independiente del texto y se encuentra en lafigura 4.1.

En los experimentos, esta curva sirve para descartar búsquedas (toda búsqueda que tome mástiempo que el secuencial se descarta) y, en algunos casos, es omitida al quedar fuera del rangode tiempos de búsqueda de los problemas.

4.2. Comparación de algoritmos de retropropagación

Para realizar la comparación de tiempo promedio de búsqueda entre los algoritmos deretropropagación simple [7] y modificado [21] se utilizaron dos bases de textos de tamaño30 MB; la primera obtenida de la base de ADN [6] y la segunda de texto en inglés [8] del Wall

46

Page 60: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Street Journal (en adelante WSJ). Ambos algoritmos fueron implementados utilizando como índicela implementación de Árbol de Sufijos planteada por Stefan Kurtz [10]. Otras implementaciones deárboles de sufijos fueron descartada porque como mínimo utilizan 30 veces el tamaño del texto [10].

Se desea comparar los tiempos de búsqueda de cada algoritmo:

Teóricamente el algoritmo de retropropagación simple tomará tiempo promedio Ï_� � ² � � � ;donde � � representa a la lista de todas las cadenas en la � -vecindad del patrón que seencuentren en el texto.

Teóricamente el algoritmo de retropropagación modificado tomará en promedio tiempoÏ_� � ² �H�+*©� donde � es el conjunto de cadenas mínimas (prefijos viables) de la � -vecindaddel patrón que se encuentran en el texto ( �Í (Ï*�-,/.021 � � R � ´g��e d ´ ��� ); y * es el tamaño de lasalida. Además �¿¥�� � .

En [21] se muestra además que, para trabajar, el algoritmo de retropropagación modificado necesitaÏ_� � ² �)� espacio extra.

Intuitivamente se espera que el algoritmo modificado obtenga un mejor rendimiento en tiempo debúsqueda que el simple, pero con una penalización del espacio extra a utilizar.

Los resultados de la búsqueda para patrones de tamaño diez ( � ':$ ) se pueden apreciar enel cuadro 4.1. Para mayores tamaños de patrón el algoritmo de retropropagación modificadoarroja tiempos de búsqueda superiores a 20 segundos por patrón, lo cual lo hace incomparableal resto de los algoritmos. El espacio extra utilizado en cada búsqueda se encuentra en el cuadro 4.2.

Tasa de error NAlgoritmo 0.10 0.20 0.30 0.40

Simple (DNA) 0.01673 0.05950 0.42446 2.06218Modificado(DNA) 0.05069 0.11307 0.53554 0.78089

Simple (WSJ) 0.00752 0.08911 0.46802 1.51030Modificado(WSJ) 3.37164 16.60018 17.80415 34.32671

Cuadro 4.1: Tiempos de búsqueda del algoritmo de retropropagación simple y modificado para� -'6$ .Se esperaba que el algoritmo de retropropagación modificado tuviera un mejor rendimiento que elsimple, pagando un bajo sobrecosto por ello. Sin embargo los resultados arrojan que el primero

47

Page 61: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

m k/m Espacio extra (KB) para ADN Espacio extra (KB) para texto en inglés10 0.10 5356 392910 0.20 5535 393110 0.30 5623 394610 0.40 6324 3989

Cuadro 4.2: Espacio extra utilizado por el algoritmo de retropropagación modificado.

sólo es superior para búsqueda de ADN con � ('6$ y N m ��$ % del tamaño del patrón. Además,se debe pagar el sobrecosto en espacio utilizado para búsqueda (para ADN entre un 16 % y un20 % del tamaño del texto y un 13 % del tamaño para texto en inglés).

Las razones para ello son tres:

Como se mostró en el capítulo 2.2.1, la operación de seguir el suffix link hacia el siguientenodo no es atómica en el Árbol de Sufijos utilizado, por lo tanto cada paso de un nodo a otroutilizando un suffix link es más costoso que lo esperado teóricamente.

El algoritmo modificado de retropropagación marca los nodos visitados en cada búsqueda. Elárbol planteado por Stefan Kurtz no provee una estructura para almacenar esa información y,por lo tanto, se debió crear una estructura adicional, que utiliza un bit por nodo para marcarlovisitado o no.

Además, el algoritmo modificado necesita más espacio para almacenar la lista de nodos areportar, mientras el algoritmo simple los reporta al momento de encontrarlos.

Si se toma en cuenta que el algoritmo de retropropagación modificada sólo obtiene un mejorrendimiento para búsqueda sobre ADN (donde el tamaño del alfabeto es pequeño) y con un altoerror (con poca utilidad en la práctica) se ha decidido que el algoritmo óptimo para trabajar sobreel Árbol de Sufijos planteado por Stefan Kurtz es el de retropropagación simple.

4.3. Comparación entre Árbol y Arreglo de Sufijos utilizandoRetropropagación Simple

Con el presente experimento se desea elegir entre un Árbol y un Arreglo de Sufijos como laestructura de datos más eficiente para aplicar algoritmos de búsqueda aproximada. Para ello, secomparará el tiempo medio de búsqueda utilizado por el algoritmo de retropropagación simple

48

Page 62: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

0

1

2

3

4

5

0.1 0.15 0.2 0.25 0.3 0.35 0.4

Tiem

po d

e bú

sque

da (s

eg)

Radio de error (k/m)

Árbol de Sufijos v/s Arreglo de Sufijos (ADN)

Árbol. m=10Árbol. m=15

Arreglo. m=10Arreglo. m=15

b)

0

1

2

3

4

5

0.1 0.15 0.2 0.25 0.3 0.35 0.4

Tiem

po d

e bú

sque

da (s

eg)

Radio de error (k/m)

Árbol de Sufijos v/s Arreglo de Sufijos (Texto en inglés)

Árbol. m=10Árbol. m=15

Arreglo. m=10Arreglo. m=15

Figura 4.2: Comparación en tiempo de búsqueda sobre árbol y arreglo de sufijos para � %'6$ y� -'UO : a) ADN, b) texto en inglés.

sobre el árbol propuesto por Stefan Kurtz y definido en la sección 3.2.1 y por el algoritmo deretropropagación simple sobre un Arreglo de Sufijos definido en la sección 3.2.1.

Teóricamente se espera que la búsqueda, tanto sobre ADN como texto en inglés (WSJ) sea demejor rendimiento sobre un árbol que sobre un arreglo de sufijos, puesto que éste último paga unfactor de penalización de Ï_��ßSà�á � � al realizar la búsqueda por rangos.

Intuitivamente lo que se busca es saber si vale la pena pagar el espacio extra del índice que utilizaun Árbol de Sufijos en base al tiempo medio de respuesta de una búsqueda aproximada sobre eseíndice.

Gráficamente, se presentan los tiempos de búsqueda para distintos tamaños de patrón ( � ) enfunción de la tasa de error ( N ). En la figura 4.2 se encuentran los gráficos para � (':$ y � ='UO ;en la figura 4.3 para � D�É$ y � c��O y en la figura 4.4 para � ��$ y � c��O . Para mayorestamaños de patrón no se graficó puesto que, como dice al principio del capítulo, se descarta todotiempo de búsqueda superior al logrado con búsqueda secuencial (para � '6$ la búsquedasecuencial toma 2.97 segundos y para � �'UO toma 4.19 segundos, llegando a los 12.10 segundospara � PO)$ ).En los gráficos se puede observar que los resultados distan bastante de los esperados teóricamente.La única configuración de parámetros en que la búsqueda sobre Árbol de Sufijos posee unrendimiento superior comparado con la búsqueda sobre un Arreglo de Sufijos se encuentra cuandoel tamaño del patrón es igual a diez ( � �'6$ ) y lo buscado es ADN para tasa de error mayor al30 % y texto en inglés cuando el error es 10 % (figura 4.2). Más aún, la diferencia es mínima.

49

Page 63: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

0

2

4

6

8

10

12

0.1 0.15 0.2 0.25 0.3 0.35 0.4

Tiem

po d

e bú

sque

da (s

eg)

Radio de error (k/m)

Árbol de Sufijos v/s Arreglo de Sufijos (ADN)

Árbol. m=20Árbol. m=25

Arreglo. m=20Arreglo. m=25

b)

0

2

4

6

8

10

12

0.1 0.15 0.2 0.25 0.3 0.35 0.4

Tiem

po d

e bú

sque

da (s

eg)

Radio de error (k/m)

Árbol de Sufijos v/s Arreglo de Sufijos (Texto en inglés)

Árbol. m=20Árbol. m=25

Arreglo. m=20Arreglo. m=25

Figura 4.3: Comparación en tiempo de búsqueda sobre árbol y arreglo de sufijos para � c�)$ y� ���O : a) ADN, b) texto en inglés.

a)

0

5

10

15

20

0.1 0.12 0.14 0.16 0.18 0.2

Tiem

po d

e bú

sque

da (s

eg)

Radio de error (k/m)

Árbol de Sufijos v/s Arreglo de Sufijos (ADN)

Árbol. m=30Árbol. m=35

Arreglo. m=30Arreglo. m=35

b)

0

5

10

15

20

0.1 0.15 0.2 0.25 0.3 0.35 0.4

Tiem

po d

e bú

sque

da (s

eg)

Radio de error (k/m)

Árbol de Sufijos v/s Arreglo de Sufijos (Texto en inglés)

Árbol. m=30Árbol. m=35

Arreglo. m=30Arreglo. m=35

Figura 4.4: Comparación en tiempo de búsqueda sobre árbol y arreglo de sufijos para � ��$ y� ��O : a) ADN, b) texto en inglés.

50

Page 64: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Los tiempos de búsqueda para ADN son similares tanto utilizando un arreglo como un árbol desufijos; sin embargo el espacio extra utilizado para indizar por este último (12 veces el tamañodel texto, contra 4 veces del arreglo) lo hacen no utilizable en la práctica para búsquedas enigualdad de condiciones de espacio en disco y tiempo de búsqueda esperado. Para texto en inglésel rendimiento de la búsqueda sobre árbol de sufijos es realmente bajo comparado con la búsquedasobre arreglos, más aún si se considera el espacio extra utilizado para la indización (9.6 vecessobre 4 veces del arreglo).

Ese fenómeno posee su explicación en la sección 2.2.1. El Árbol de Sufijos presentado por StefanKurtz [10] está diseñado para búsqueda exacta y en profundidad, con un costo alto para pasar anodos hermanos. Por esta razón y, dado que el texto en inglés posee un alfabeto mucho más grandeque el ADN (por lo tanto posee mayor probabilidad de realizar saltos laterales), que el rendimientode la búsqueda sobre árboles de sufijos para este tipo de texto es malo.

Si se quisiera mejorar el rendimiento para este tipo de árbol se tendría que agregar la informaciónsobre hijos y hermanos a cada nodo (en vez de simularla), lo cual es justamente el tipo deredundancia de información que Stefan Kurtz plantea eliminar en [10] para obtener Árboles deSufijos que no utilicen gran cantidad de espacio.

Por lo tanto, se puede concluir que la estructura de datos que otorga un mejor rendimiento comoíndice de texto, tanto en tiempo promedio de búsqueda como de espacio, es el Arreglo de Sufijos(salvo para búsqueda sobre ADN y patrones de tamaño 10, donde son equivalentes).

4.4. Búsqueda de la Partición Óptima al particionar en 3Pedazos

En el experimento anterior se determinó que la estructura de datos que posee un mejor rendimientopara búsqueda aproximada en texto es el Arreglo de Sufijos. Esta estructura es la utilizada eneste experimento para determinar el (o los) valores óptimos de � al particionar el problema en �pedazos, y realizando una búsqueda con ��������� errores.

Teóricamente, se demostró en [15] que el valor óptimo de � se encuentra cuando� %Ï*� � �ÇßSà�á â � � ��� . Por lo tanto, la cantidad óptima de pedazos (� ) dependerá directamente deltamaño del patrón ( � ) y del tamaño del alfabeto ( d ) e inversamente del tamaño del texto ( � ).

51

Page 65: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Cuando el alfabeto es uniformemente distribuído, 'U�§d es la probabilidad que dos caracteresobtenidos al azar calcen. En la práctica esa condición de uniformidad rara vez se cumple y, por lotanto, se debe calcular dicha probabilidad directamente. Si

� / es la frecuencia relativa de apariciónde un carácter dado en el texto, entonces la probabilidad que al obtener dos caracteres al azar deltexto éstos sean iguales a ese carácter es

� ²/ .Como la aparición de un carácter es independiente uno de otro, entonces la probabilidad que altomar cualquier par de caracteres estos sean iguales es la suma de los cuadrados de las frecuenciasrelativas. Por lo tanto se tiene que: d! '$ � ²/y, por lo tanto, para las colecciones de tamaño 30 MB utilizadas, se tendrá en ADN un valor ded` =�1R JV'UO (porque el alfabeto, además de A,C,G y T posee la letra N que significa cualquiera delas anteriores), y para texto en inglés de dG �'6[VR [5464 .Intuitivamente, se esperará un compromiso entre el tiempo utilizado para la búsqueda y el utilizadopara verificación por el algoritmo. Si el patrón es pequeño una búsqueda de pedazos muy pequeñosgenerará una retropropagación de bajo costo, pero de alta cantidad de posiciones a verificar. Elfenómeno inverso ocurrirá si el patrón es demasiado largo.

4.4.1. Partición Óptima para ADN

La experimentación se realizó con particiones �� °'�R:hThShTRAO , realizando la búsqueda de patrones detamaño 10 a 55 caracteres con tasa de error entre un 10 % y un 35 %. Los valores encontradosexperimentalmente se muestran en la figura 4.5.

Como se puede apreciar en los gráficos, la partición óptima es menor a la esperada teóricamente;esto principalmente porque en teoría no se consideró la constante de orden, dependientedirectamente de � como se demostró en [15]. Las altas variaciones que muestran ciertas series devalores se explican porque al truncar el valor de � éste produce búsqueda de patrones más grandesy con mayor error que los esperados si no se truncara.

En los gráficos se aprecia una dependencia directa del valor � óptimo con respecto al error de labúsqueda (� es creciente con respecto a ��� � para un � fijo). El cuadro 4.3 presenta los valoresóptimos de partición para cada caso.

52

Page 66: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

0.05

0.1

0.15

0.2

10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.10

j=1j=2j=3j=4j=5

0

0.2

0.4

0.6

0.8

1

10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.15

j=1j=2j=3j=4j=5

0

0.5

1

1.5

2

10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.20

j=1j=2j=3j=4j=5

0

2

4

6

8

10

10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.25

j=1j=2j=3j=4j=5

0

2

4

6

8

10

12

14

5 10 15 20 25 30 35

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.30

j=1j=2j=3j=4j=5

0

2

4

6

8

10

12

14

5 10 15 20 25

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.35

j=1j=2j=3j=4j=5

Figura 4.5: Tiempo de búsqueda del algoritmo partición en j pedazos para ADN con �1� � entre0.10 y 0.35.

53

Page 67: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

m 7 k/m 0.1 0.15 0.2 0.25 0.3 0.35 � �ÇßSà�á98 Å :Êe<; �£��$ Ý ¾¿�10 1 1 1 1 1 1 0.89815 1 1 1 1 1 1 1.34720 1 2 2 2 2 2 1.79725 2 2 2 2 2 2 2.24630 2 2 2 2 2 — 2.69535 2 2 2 3 3 — 3.14440 3 3 3 3 3 — 5.59345 3 3 3 3 3 — 4.04250 3 3 3 3 3 — 4.49255 3 3 3 3 — — 4.941

Cuadro 4.3: Partición óptima para ADN: a la izquierda experimentalmente y a la derechateóricamente.

La estimación de la partición óptima que mejor representa los datos experimentales obtenidos es:ß{à)á�â1� � ���W �$�R³�@OÉ��[ � �$�R O)[)��[����JVR�����\�'la cual predice todos los datos anteriores con exactitud a excepción del caso � DO)OVRA�! %'6� , enque estima el valor óptimo como �Ì P� cuando en realidad es �Ì +� , y la diferencia de tiempos debúsqueda entre ambos es notable.

Por lo demás, en la realidad es imposible obtener el valor de � óptimo puesto que ese valor dependetambién del patrón de búsqueda.

4.4.2. Partición Óptima para Texto en Inglés

La experimentación se realizó con particiones �� °'�R:hThShTRg[ , realizando la búsqueda de patrones detamaño 10 a 55 caracteres con tasa de error entre un 10 % y un 35 % del tamaño del patrón.

Los valores esperados teóricamente no distan en gran magnitud de los obtenidos experimentalmentepara búsqueda sobre un arreglo de sufijos construído a partir de texto en inglés. El cuadro 4.4muestra la diferencia entre el valor obtenido teóricamente y el obtenido experimentalmente. Ladiferencia entre ellos es que, al igual que para la búsqueda de ADN, en el cálculo del valor teóricode la partición óptima se ha omitido el valor de la constante dependiente directamente de � . Losvalores que no se presentan son aquellos donde ninguna partición mejoró la búsqueda directa en eltexto sin indexar.

54

Page 68: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

m 7 k/m 0.1 0.15 0.2 0.25 0.3 0.35 � �»ß{à)á e<=�Å =?>?> ����$ Ý ¾¿�10 1 1 1 1 1 1 1.63115 1 1 2 2 2 2 2.44620 2 2 2 2 2 2 3.26225 3 2 3 2 2 3 4.07730 2 3 3 3 3 3 4.89235 2 3 3 3 3 3 5.70840 3 4 3 4 4 4 6.52345 3 4 5 4 5 4 7.33850 3 4 4 5 4 5 8.15455 3 5 4 5 6 5 8.969

Cuadro 4.4: Partición óptima para texto en inglés: a la izquierda experimentalmente y a la derechateóricamente.

La estimación de la partición óptima que mejor representa los datos experimentales obtenidos es:ßSà�á â � � �£�¿ K��RÐ�É\�$�� � �$�RgO�J)\�$��0��VRg[�'���$La cual predice todos los datos anteriores con una precisión de 80 %. En promedio la penalizacióndel error de predicción es 0.52 segundos, siendo el peor caso ( � �O)$�RA�& c'6� ) en que supera los2 segundos. Si se descuenta ese punto el promedio de error baja a 0.43 segundos.

Un resultado importante de estos experimentos es que, salvo para pocos valores de la búsquedaaproximada, el algoritmo que obtiene los mejores resultados hasta el momento es el de particiónen j pedazos con un valor de � intermedio entre ' (retropropagación simple) y �¿�+' (partición abúsqueda exacta).

4.5. Comparación de algoritmos de búsqueda sobre índices deq-gramas

Con este experimento se pretende elegir el algoritmo óptimo de búsqueda aproximada que trabajasobre un índice de q-gramas; para ello se compara experimentalmente los tiempos de búsqueda delos algoritmos de partición en � pedazos propuesto por Gene Myers [13] y de partición en �¿� pedazos propuestos por Fei Shi [19] (para #Y�' ) y Gonzalo Navarro con Ricardo Baeza-Yates[14] (para � -' ).

55

Page 69: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

0.02

0.04

0.06

0.08

0.1

10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.10

j=1j=2j=3j=4j=5j=6

0

0.05

0.1

0.15

0.2

10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.15

j=1j=2j=3j=4j=5j=6

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.20

j=1j=2j=3j=4j=5j=6

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.25

j=1j=2j=3j=4j=5j=6

0

0.5

1

1.5

2

10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.30

j=1j=2j=3j=4j=5j=6

0

0.5

1

1.5

2

2.5

3

10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Partición óptima para k/m = 0.35

j=1j=2j=3j=4j=5j=6

Figura 4.6: Tiempo de búsqueda del algoritmo partición en j pedazos para texto en inglés con �1� �entre 0.10 y 0.35.

56

Page 70: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Estos experimentos se realizaron para índices construídos a partir de 30 MB de cadenas ADN ytexto en inglés (WSJ) respectivamente, patrones de tamaño variable entre 10 y 55 caracteres y tasade error entre un 10 % y un 15 % (experimentalmente se comprobó que para mayor tasa de errorlos tiempos de búsqueda son demasiado altos). Además, se pretende encontrar el tamaño óptimode los q-gramas para cada tipo de texto (ADN o inglés) como resultado de dicha experimentación.

Teóricamente, y como resultado de los experimentos de la sección 4.4, se espera que el algoritmode partición en � pedazos supere en rendimiento a los algoritmos de partición a búsqueda exacta;y entre ellos que el algoritmo planteado para ÚY�' supere el de � r' , debido a su filtrado deresultados que permite una verificación de menor cantidad de candidatos a calce.

Para ADN se ha encontrado que mientras mayor es el valor de � , mejor es el rendimiento de losalgoritmos; en este caso particular el óptimo se encuentra con �� @4 (salvo para � �'UO dondeel óptimo es �� �[ ). Los valores para �� D'6$ no mejoraban la situación de su antecesor y valoresmayores a éste sólo la empeoraban.

Los resultados experimentales para partición en � pedazos se encuentran en la figura 4.7 y parapartición a búsqueda exacta se encuentra en la figura 4.8 para Í �' y figura 4.9 para !Y%' . Endichos gráficos, la línea etiquetada como “Sin Indizar” presenta el tiempo de búsqueda directa enel texto sin indizar.

Los experimentos muestran que, para ADN, el algoritmo de partición a búsqueda aproximadapresenta una mayor estabilidad que los de partición a búsqueda exacta; eso es debido a suadaptabilidad al valor de � en cada índice, no así los otros que dependen sólo del valor del error.Por esta razón, la partición en j pedazos genera una menor cantidad de posiciones a verificar. La nomonotonía de los gráficos de partición en búsqueda exacta se debe a que la partición deja pedazospequeños que se deben buscar y que generan demasiados posiciones a verificar.

Por otro lado las condiciones de filtro que impone Fei Shi en su algoritmo [19] se llevan todo eltiempo de procesamiento en la búsqueda y son impracticables para patrones de menor tamaño.

Se puede apreciar en las figuras 4.10 y 4.11 la comparación entre todos los algoritmos que realizanbúsqueda sobre índices de q-gramas. En conclusión se puede afirmar que para tasa de error de un10 % del tamaño del patrón, los mejores algoritmos de búsqueda son los de partición en j=k+1pedazos (con � ¥���O y �* A4 ) y partición en j pedazos (con � m ��$ y �* A4 ). Sin embargo lascondiciones cambian al incrementarse el error; siendo, para N� $VRS'UO los algoritmos de particiónen búsqueda exacta los de mejor rendimiento: �* �����' para � ¥+��$ y �, ������ para � m ��O ,

57

Page 71: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

1

2

3

4

5

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda intermedia sobre q−gramas, k/m=0.1

q=6q=7q=8q=9

Sin Indizar

0

5

10

15

20

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda intermedia sobre q−gramas, k/m=0.15

q=6q=7q=8q=9

Sin Indizar

Figura 4.7: Tiempo de búsqueda del algoritmo partición en j pedazos para ADN con �1� � �$�RT'6$y �1� � $�RS'6O .

0

1

2

3

4

5

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda exacta (j=k+1) sobre q−gramas, k/m=0.1

q=6q=7q=8q=9

Sin Indizar

0

1

2

3

4

5

6

7

8

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda exacta (j=k+1) sobre q−gramas, k/m=0.15

q=6q=7q=8q=9

Sin Indizar

Figura 4.8: Tiempo de búsqueda del algoritmo partición para búsqueda exacta (�� °�¿�+' ) paraADN con �1� � �$�R�'6$ y ��� � $�RS'6O .

0

5

10

15

20

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e co

nstru

cció

n (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda exacta (j=k+2) sobre q−gramas, k/m=0.10

q=7q=8q=9

Sin Indizar

0

50

100

150

200

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda exacta (j=k+3) sobre q−gramas, k/m=0.1

q=7q=8q=9

Sin Indizar

Figura 4.9: Tiempo de búsqueda del algoritmo partición para búsqueda exacta (�Ì +�����RA�Y+' )para ADN con �1� � �$�RT'6$ ; � �� y � �� .

58

Page 72: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

1

2

3

4

5

6

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Búsqueda aproximada sobre índice de q−gramas: q=8, k/m=0.10

j=k+1j=k+2j=k+3

IntermedioSin Indizar

0

1

2

3

4

5

6

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e co

nstru

cció

n (s

eg)

Tamaño de patrón (caracteres)

Búsqueda aproximada sobre índice de q−gramas: q=9, k/m=0.10

j=k+1j=k+2j=k+3

IntermedioSin Indizar

Figura 4.10: Algoritmos de búsqueda aproximada sobre índices de q-gramas para ADN con ��� � $�RT'6$ .

0

1

2

3

4

5

6

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Búsqueda aproximada sobre índice de q−gramas: q=8, k/m=0.15

j=k+1j=k+2j=k+3

IntermedioSin Indizar

0

1

2

3

4

5

6

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Búsqueda aproximada sobre índice de q−gramas: q=8, k/m=0.15

j=k+1j=k+2j=k+3

IntermedioSin Indizar

Figura 4.11: Algoritmos de búsqueda aproximada sobre índices de q-gramas para ADN con ��� � $�RT'UO .ambos sobre un índice construído con parámetro �� B4 .La explicación al fenómeno anterior es, por un lado, la dependencia de los algoritmos de particióna búsqueda exacta del valor de � (lo que hace que el algoritmo de �� �&�c' sea creciente y�_ =����� decreciente según � ); y por otro lado, la búsqueda ineficiente de la vecindad que deberealizar el algoritmo de partición a búsqueda intermedia cuando el error no es bajo.

Para texto en inglés, se puede apreciar en las figuras 4.12, 4.13 y 4.14 que el índice de q-gramascon el parámetro �L I[ es el óptimo para realizar una búsqueda aproximada. Los valores para�� �J no mejoraban la situación de su antecesor y valores mayores a éste sólo la empeoraban.

59

Page 73: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

5

10

15

20

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda intermedia sobre q−gramas, k/m=0.1

q=4q=5q=6

Sin Indizar

0

5

10

15

20

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda intermedia sobre q−gramas, k/m=0.15

q=4q=5q=6

Sin Indizar

Figura 4.12: Tiempo de búsqueda del algoritmo partición en j pedazos para texto en inglés con�1� � $VRS'6$ y �1� � �$�R�'UO .

0

1

2

3

4

5

6

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e co

nstru

cció

n (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda exacta (j=k+1) sobre q−gramas, k/m=0.1

q=4q=5q=6

0

1

2

3

4

5

6

7

8

9

10

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e co

nstru

cció

n (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda exacta (j=k+1) sobre q−gramas, k/m=0.15

q=4q=5q=6

Figura 4.13: Tiempo de búsqueda del algoritmo partición para búsqueda exacta (�_ �����' ) paratexto en inglés con �1� � $�RT'6$ y ��� � �$VRS'UO .Además, la figura 4.15 muestra que para texto en inglés los mejores algoritmos de búsqueda sobreíndice de q-gramas son los basados en partición a búsqueda exacta. Para tasa de error de un 10 % eltamaño del patrón los algoritmos de mejor rendimiento son los de partición en �, ���� ' pedazospara � ¥M��O y partición en �W P���±� para � m ��O .Al incrementar la tasa de error al 15 % del tamaño del patrón, se nota en la gráfica que elrendimiento óptimo de cada algoritmo se ha movido a un menor tamaño de patrón, siendo ahora elpunto de inflexión � ��)$ .La explicación de este fenómeno es simple: dado un alfabeto de gran tamaño, la construcción de lavecindad de un patrón que debe realizar el algoritmo de partición a búsqueda intermedia posee un

60

Page 74: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

5

10

15

20

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda exacta (j=k+2) sobre q−gramas, k/m=0.10

q=4q=5q=6

Sin Indizar

0

5

10

15

20

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Algoritmo de búsqueda exacta (j=k+3) sobre q−gramas, k/m=0.1

q=4q=5q=6

Sin Indizar

Figura 4.14: Tiempo de búsqueda del algoritmo partición para búsqueda exacta (�� P�v�Z�RA�YP' )para texto en inglés con �1� � �$�RT'6$ ; H P� y � � .

0

1

2

3

4

5

6

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Búsqueda aproximada sobre índice de q−gramas: q=6, k/m=0.10

j=k+1j=k+2j=k+3

IntermedioSin Indizar

0

1

2

3

4

5

6

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Búsqueda aproximada sobre índice de q−gramas: q=6, k/m=0.15

j=k+1j=k+2j=k+3

IntermedioSin Indizar

Figura 4.15: Algoritmos de búsqueda aproximada sobre índices de q-gramas para texto en inglés.

61

Page 75: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

alto costo y lo hace ineficiente. Dado un valor creciente de � , si no hay una condición de filtro paralas posiciones de texto a verificar, entonces estas serán demasiadas y harán al algoritmo ineficiente(porque los algoritmos de partición en �W P���± pedazos no se adaptan al valor de � ).4.6. Comparación de algoritmos de búsqueda sobre índices de

q-samples

El presente experimento persigue tres objetivos: encontrar experimentalmente los tiempos debúsqueda del algoritmo de q-sampling presentado en [20]; encontrar los valores óptimos de losparámetros

3y � del algoritmo de q-sampling aproximado presentado en [17] y por último comparar

ambos algoritmos y elegir el mejor entre ellos para este tipo de índice.

4.6.1. Algoritmo de q-sampling

Como se presentó en la sección 3.3.2, este algoritmo se basa en la idea que los errores se encuentranen el texto (no en el patrón) y, por lo tanto, si uno divide el patrón en bloques no disjuntos entoncesalgunos q-gramas de esos bloques aparecerán en el texto sin error.

Para que eso suceda se debe cumplir una condición sobre la cantidad de q-gramas del patrón quedeben aparecer en el texto: � Ø � �L�¿�Ú�v�K'� �L� Ùsiguiendo las especificaciones de [20], se almacena en un arreglo una referencia a cada uno de losq-samples del texto y el número de bloques que calzarían en ese punto. Sólo los q-samples con unvalor mayor a serán verificados.

Es claro que si W =$ entonces se verificará todo el texto, lo cual es equivalente a la búsqueda sinindexar. Además, dado que � m � el máximo valor de se obtendrá cuando �` "� ; entonces setendrá que: � �L�W�]�v�M'� �`�&Y�$De donde fácilmente se llega a la siguiente desigualdad:� �`���K'���M' Y±�

62

Page 76: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Dado que �� � N entonces se tendrá: � �4's�]N»�f�M'� N&�K' Y±�Lo anterior será la condición para determinar el rango de acción de este algoritmo. Mientrasmayor sea el valor de N (que va entre 0 y 1) menor es el valor de � para el cual esta desigualdadse cumple. Es por esta desigualdad que, sabiendo que valores de � menores a 3 son inútiles en lapráctica, este algoritmo no soporta búsquedas para tamaños de patrón pequeños ni tasa de error alto.

Para el desarrollo de esta experimentación fueron construídos dos índices a partir de 30 MB decadenas ADN y texto en inglés (WSJ) respectivamente. Los patrones utilizados poseían tamañovariable entre 10 y 100 caracteres y la tasa de error fue de 10 % (para tasas mayores el algoritmono es utilizable en ese rango de tamaño de patrones).

El algoritmo presenta bajos tiempos de búsqueda para las condiciones en que sí es aplicable, debidoprincipalmente al tamaño sublineal del índice y, por construcción, a que no realiza verificaciónde cercanía de posiciones de texto. Los valores del tiempo de búsqueda están resumidos en losgráficos de la figura 4.16.

Se puede apreciar que los mejores tiempos de búsqueda se obtienen cuando los valores de� y � son iguales. Esto es lo esperado teóricamente, puesto que eso minimiza el valor de para � y � fijos y, por lo tanto, la cantidad de verificaciones en texto que se deben realizarson menores. Por otro lado, mientras mayor es el tamaño del patrón, menos importante es elvalor de � para la maximización de ; sin embargo, mientras mayor es el valor de � (y por lotanto del � óptimo) menor es la cantidad de posiciones de texto que se verificará (por construcción).

Un fenómeno interesante es que este algoritmo tenga mejor desempeño sobre texto en inglés quesobre cadenas de ADN (figura 4.16). La explicación es simple: para iguales tamaños de patrones,la probabilidad de aparición de un q-grama del patrón en el índice es mayor para cadenas de ADNque para texto en inglés.

4.6.2. Algoritmo de q-sampling aproximado

Al margen de los parámetros utilizados por el resto de los algoritmos de búsqueda aproximadaestudiados en esta tesis, como son el tamaño del patrón y la tasa de error, este algoritmo presentapara su funcionamiento dos nuevas variables: la cantidad de q-samples del texto que debenaparecer en el patrón (� ) y el error permitido en la búsqueda aproximada (

3) del q-sample dentro

63

Page 77: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

0

1

2

3

4

5

10 20 30 40 50 60 70 80 90 100

Tiem

po d

e bú

sque

da (s

eg)

Tamaño del patrón (caracteres)

Tiempo de búsqueda de algoritmo de q−sampling (ADN)

q=6,h=6q=6,h=7q=7,h=7

Sin Indizar

b)

0

0.5

1

1.5

2

10 20 30 40 50 60 70 80 90 100

Tiem

po d

e bú

sque

da (s

eg)

Tamaño del patrón (caracteres)

Tiempo de búsqueda de algoritmo de q−sampling (Texto en inglés)

q=4,h=4q=4,h=5q=4,h=6q=4,h=7q=5,h=5q=5,h=6q=5,h=7q=6,h=6q=6,h=7

Figura 4.16: Comparación en tiempo de búsqueda sobre índice de q-samples para el algoritmo deq-sampling ( N �$�RT'6$ ): a) ADN, b) texto en inglés.

de los bloques no disjuntos del patrón (para mayor información refiérase a la sección 3.4.2).

Los valores teóricos que se manejan para ambos parámetros son � Y $ y la condición�Ú¥^� ½©�>´«�>×l��eÀ � para el primero y � m�3,m ���1����� para el segundo, lo cual obviamente genera unespacio de búsqueda bastante extenso para los óptimos, puesto que la única forma de encontrarloses experimentando con todas las combinaciones posibles de ellos.

Pero se posee una información extra: el tiempo de una búsqueda directa en el texto (sin indexar)para patrones de hasta 55 caracteres. Por lo tanto si el menor tiempo de búsqueda para un par(3 Rl� ) es mayor que el máximo tiempo de búsqueda sin indexar (experimentalmente cercano a 13

segundos) entonces se puede descartar ese par (3 Rl� ).

En esta sección se presentará primero una reducción en el espacio de los parámetros con el finde encontrar más rápidamente los óptimos; luego una búsqueda experimental de los mismos paratexto en inglés y cadenas de ADN por separado, y finalmente se mostrará los valores óptimos delos parámetros.

Reducción del espacio de búsqueda

Para este experimento se construyeron dos índices de q-samples a partir de 30 MB de cadenasADN y texto en inglés (WSJ) respectivamente. Los patrones utilizados poseían tamaño variableentre 10 y 55 caracteres y la tasa de error fue de 10 % a 40 %, los valores de

3iteraban entre 0 y

20 y los de � entre 1 y 6; comprobando en tiempo de ejecución si cumplían con las condiciones

64

Page 78: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

descritas anteriormente.

En las figuras 4.17,4.18 y 4.19 se puede notar claramente la reducción del espacio de búsqueda enbase a los parámetros

3y � ; notar que para búsqueda en texto en inglés se debe cumple que Á��

y3 � � la búsqueda tendrá valores dentro de los esperados. La explicación de estos valores es

simple: para mayores valores de3

la vecindad de los q-gramas del patrón se expande en demasíay, por lo tanto, la búsqueda aproximada toma demasiado tiempo.

Para cadenas de ADN no es fácil reducir a priori el espacio de búsqueda, como lo muestran losgráficos de las figuras 4.20, 4.21 y 4.22. Por lo tanto los valores óptimos de los parámetros

3y � se

buscarán en todo el espacio.

Búsqueda óptima para cadenas de ADN

Teóricamente, se esperaba que el algoritmo de q-sampling aproximado tuviera parámetros óptimosdistintos para cadenas de ADN, ésto por el tamaño del alfabeto y la probabilidad de calce y erroren la búsqueda. Sin embargo, los valores óptimos fueron similares que los encontrados para textoen inglés, como se puede observar en el cuadro 4.5.

q=6,h=6 q=7,h=7 q=8, h=8óptimo segundo óptimo segundo óptimo segundo

m j e j e j e j e j e j e15 1 1 - - 1 1 - - 1 1 - -20 2 1 2 2 1 2 - - 1 2 - -25 3 1 3 0 2 1 2 2 2 1 2 230 3 1 3 2 3 1 3 2 2 2 2 135 4 1 3 1 3 1 3 2 3 1 3 240 5 1 4 1 4 1 4 2 3 1 3 245 6 0 6 1 5 1 5 2 4 1 4 250 6 1 5 1 5 1 4 1 4 1 4 255 6 1 5 1 5 1 4 1 5 1 4 1

Cuadro 4.5: Valores óptimos de � y3

para el algoritmo de q-gramas aproximados para ADN.

Se puede apreciar en el cuadro que, salvo contadas excepciones, el tiempo óptimo de búsqueda setendrá con el mayor valor de � posible y

3 ' . En caso de error al elegir los parámetros óptimos,la penalización por equivocarse es en cada caso:

65

Page 79: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (Texto en inglés) q=4 h=4

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (Texto en inglés) q=4 h=5

j=1j=2j=3j=4j=5j=6

Figura 4.17: Tiempos de búsqueda mínimos para distintos valores de3

y � con �Z �� , texto eninglés

66

Page 80: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (Texto en inglés) q=5 h=5

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (Texto en inglés) q=5 h=6

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (Texto en inglés) q=5 h=7

j=1j=2j=3j=4j=5j=6

Figura 4.18: Tiempos de búsqueda mínimos para distintos valores de3

y � con �Z ^O , texto eninglés 67

Page 81: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (Texto en inglés) q=6 h=6

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (Texto en inglés) q=6 h=7

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (Texto en inglés) q=6 h=8

j=1j=2j=3j=4j=5j=6

Figura 4.19: Tiempos de búsqueda mínimos para distintos valores de3

y � con �Z �[ , texto eninglés 68

Page 82: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (ADN) q=6 h=6

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (ADN) q=6 h=7

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (ADN) q=6 h=8

j=1j=2j=3j=4j=5j=6

Figura 4.20: Tiempos de búsqueda mínimos para distintos valores de3

y � con �� K[ , ADN

69

Page 83: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (ADN) q=7 h=7

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (ADN) q=7 h=8

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (ADN) q=7 h=9

j=1j=2j=3j=4j=5j=6

Figura 4.21: Tiempos de búsqueda mínimos para distintos valores de3

y � con �� J , ADN

70

Page 84: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (ADN) q=8 h=8

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (ADN) q=8 h=9

j=1j=2j=3j=4j=5j=6

0

5

10

15

20

25

30

35

40

45

50

0 5 10 15 20

Tiem

po d

e bú

sque

da (s

eg)

e

Tiempos mínimos de búsqueda de algoritmo de q−gramas aproximados (ADN) q=8 h=10

j=1j=2j=3j=4j=5j=6

Figura 4.22: Tiempos de búsqueda mínimos para distintos valores de3

y � con �� K\ , ADN

71

Page 85: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

�0 �[�RA�, [ : 0.995 segundos (170 % de tiempo extra con respecto al óptimo).�0 PJVRA�, �J : 0.661 segundos (230 % de tiempo extra con respecto al óptimo).�0 �\�RA�, \ : 0.483 segundos (180 % de tiempo extra con respecto al óptimo).

Los gráficos de la figura 4.23 confirman lo anterior y además muestran que para tamaños pequeñosde patrón el algoritmo pierde efectividad.

Si se consideran los gráficos de la figura 2.9 se notará que los índices de q-samples para valoresde �Ò J>RA� J y �Ò \�RA� \ presentan valores similares de espacio necesario paraalmacenamiento. Además, el gráfico de la figura 4.23 muestra que, salvo una excepción, entreambos se reparten los tiempos óptimos de búsqueda para tasa de error 10 % (tasas mayores poseensimilar comportamiento a 10 %).

Búsqueda Óptima para Texto en Inglés

En los gráficos de la subsección anterior se determinó que el óptimo del parámetro3

se encuentracuando

3 � � . El siguiente experimento intenta determinar los valores óptimos de los parámetros �y3

para todo tamaño de patrón ( � ) y tasa de error ( NZ �1� � ).

El cuadro 4.6 presenta el par3 Rl� óptimo para búsqueda aproximada en un índice de q-samples

construído para texto en inglés; utilizando el algoritmo de q-sampling aproximado para distintosvalores de � y � ; mostrando además la segunda mejor opción de elección de parámetros. Se puedeapreciar claramente que, salvo contadas excepciones, el valor óptimo de � sería el máximo posibley el óptimo de

3sería

3 (' , y cuando lo anterior no se cumple para la primera opción de óptimo,lo es para la segunda.

En caso de error al elegir los parámetros óptimos, la penalización por equivocarse es en cada caso:�0 �1RA�, K� : 0.995 segundos (60 % de tiempo extra con respecto al óptimo).�0 POVRA�, �O : 0.414 segundos (44 % de tiempo extra con respecto al óptimo).�0 �[�RA�, [ : 0.228 segundos (32 % de tiempo extra con respecto al óptimo).

El gráfico de la figura 4.23 muestra además los tiempos de búsqueda del algoritmo para distintosvalores de � y � y tasa de error de 10 % (para valores mayores de tasa de error el algoritmo posee

72

Page 86: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

q=4,h=4 q=5,h=5 q=6, h=6óptimo segundo óptimo segundo óptimo segundo

m j e j e j e j e j e j e10 1 1 - - 1 1 - - - - - -15 2 1 2 0 2 1 2 0 1 1 - -20 3 1 3 0 2 1 2 2 2 1 2 225 5 0 5 1 3 1 2 1 3 1 3 030 6 0 6 1 4 1 3 1 4 1 3 135 6 0 6 1 5 0 5 1 5 1 4 140 6 1 5 1 6 0 5 1 6 0 6 145 6 1 5 1 6 1 5 1 6 1 5 150 6 1 5 1 6 1 5 1 6 1 5 155 6 1 5 1 6 1 5 1 6 1 5 1

Cuadro 4.6: Valores óptimos de � y3

para el algoritmo de q-gramas aproximados para texto eninglés.

similar comportamiento). En él se muestra que la búsqueda en un índice de q-samples para �Ì ��posee un pobre rendimiento comparado con los índices de �W +O y �� Q[ ; y, por lo tanto, el índicede q-samples con �� K� será descartado para cualquier valor de � .Además, se nota que el índice de q-samples con parámetros �G ÒO y �` O sólo es óptimo paratamaños de patrones menores a 20. Para patrones de mayor tamaño los índices óptimos utilizan�� P[ y �Í ���RAOVRg[ . Obviamente existe un compromiso entre el espacio necesario para construir elíndice y el tiempo de búsqueda, con diferencias máximas de 0.4 segundos para cada búsqueda.

4.6.3. Parámetros óptimos

Por lo tanto, se concluye que los parámetros óptimos para utilizar el algoritmo de q-samplingaproximado son:

ADN: �� PJ>RA�_ PJ y �� \VRA�* \texto en inglés: �� POVRg�_ PO si �ä� �)$ y �� [�Rg�* [�RgJVRg\ si � m �)$

73

Page 87: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

10

15

20

25

30

35

40

45

50

55

60

65

10 15 20 25 30 35 40 45 50 55

j*10+

e

Tamaño de patrón (caracteres)

Parámetros óptimos de búsqueda de algoritmo de q−gramas aproximados (Texto en inglés)

q=4, h=4q=4, h=5q=4, h=6q=5, h=5q=5, h=6q=5, h=7q=6, h=6q=6, h=7q=6, h=8

0.4

0.5

0.6

0.7

0.8

0.9

1

0 10 20 30 40 50

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Tiempos óptimos de búsqueda de algoritmo de q−gramas aproximados (Texto en inglés)

q=4, h=4q=4, h=5q=4, h=6q=5, h=5q=5, h=6q=5, h=7q=6, h=6q=6, h=7q=6, h=8

10

15

20

25

30

35

40

45

50

55

60

65

10 15 20 25 30 35 40 45 50 55

j*10+

e

Tamaño de patrón (caracteres)

Parámetros óptimos de búsqueda de algoritmo de q−gramas aproximados (ADN)

q=6, h=6q=6, h=7q=6, h=8q=7, h=7q=7, h=8q=7, h=9q=8, h=8q=8, h=9

q=8, h=10

0

0.1

0.2

0.3

0.4

0.5

0.6

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da

Tamaño de patrón (caracteres)

Tiempos óptimos de búsqueda de algoritmo de q−gramas aproximados (ADN)

q=6, h=6q=6, h=7q=6, h=8q=7, h=7q=7, h=8q=7, h=9q=8, h=8q=8, h=9

q=8, h=10

Figura 4.23: Valores óptimos de3

y � para el algoritmo de q-sampling aproximado y sus tiemposde búsqueda para distintos valores de � y � . Arriba: texto en inglés, abajo: ADN.

74

Page 88: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Además, para búsqueda sobre índices construídos en base a texto en inglés y cadenas de ADN, losvalores óptimos de los parámetros � y

3para este algoritmo de búsqueda serán:� �L�¿�Ú�v�K'� m �_Y � �`�W�]�v�K'���M'3 -'

4.6.4. Comparación entre algoritmos de q-sampling y q-sampling aproxima-do

En las secciones anteriores se determinaron el espacio útil del algoritmo de q-sampling y losvalores óptimos de los parámetros del algoritmo de q-sampling aproximado. En esta sección secompararán ambos algoritmos sobre dos índices de q-samples construídos a partir de 30 MB deADN y texto inglés respectivamente.

Teóricamente se esperaba que para ambos casos el algoritmo de mejor rendimiento fuerael algoritmo de q-sampling aproximado, puesto que en ese algoritmo se obtiene un mejorrendimiento utilizando búsqueda aproximada que búsqueda exacta (lo cual es la base del algoritmode q-sampling). Sin embargo, la gráfica de la figura 4.24 es elocuente en mostrar que el algoritmo deq-sampling posee un rendimiento superior para búsquedas de texto en inglés en este tipo de índices.

Con esto se muestra que, tal como sucedió en la búsqueda sobre arreglos de sufijos de texto eninglés, para búsquedas con tasa de error igual al 10 % lo más efectivo es reducir el problemaa búsqueda exacta, dado que la alta probabilidad de error al buscar el patrón generará pocasposiciones donde verificarlo.

Notar que para el algoritmo q-sampling aproximado su óptimo no es la reducción del problema abúsqueda exacta, debido a que está pensado para realizar búsqueda aproximada de los bloques delpatrón. Si se realiza búsqueda exacta entonces la combinación de � y

3no descartará los suficientes

q-samples para una posterior verificación.

Como conclusión de este experimento se puede afirmar que el mejor algoritmo para búsqueda detexto en inglés sobre índices de q-samples es q-sampling (figura 4.24.b) y para búsqueda de ADNes q-gramas aproximados (figura 4.24.a).

75

Page 89: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

a)

0

0.5

1

1.5

2

10 20 30 40 50 60 70 80 90 100

Tiem

po d

e bú

sque

da (s

eg)

MB de texto

Comparación de algoritmos de búsqueda sobre índices de q−samples (ADN)

q−sampling q=6,h=6q−sampling q=7,h=7

q−sampling aprox. q=7,h=7q−sampling aprox. q=8,h=8

Sin Indizar

b)

0

0.5

1

1.5

2

10 20 30 40 50 60 70 80 90 100

Tiem

po d

e bú

sque

da (s

eg)

MB de texto

Comparación de algoritmos de búsqueda sobre índices de q−samples (Texto en inglés)

q−sampling q=4,h=4q−sampling q=5,h=5

q−sampling aprox. q=5,h=5q−sampling aprox. q=6,h=6q−sampling aprox. q=6,h=7q−sampling aprox. q=6,h=8

Sin Indizar

Figura 4.24: Búsqueda sobre índices de q-samples: a) ADN b) texto en inglés.

4.7. Comparación de algoritmos sobre distintos tipos de índices

En la sección 4.3 se comparó el algoritmo de retropropagación simple sobre árboles y arreglosde sufijos, determinando que el índice para el cual se tiene el mejor rendimiento es el arreglode sufijos. Luego en la sección 4.4 se determinó la partición óptima de patrones para búsquedaaproximada sobre arreglos de sufijos. La sección 4.5 nos presenta el mejor algoritmo para búsquedasobre índices de q-gramas y la sección 4.6 presentó los óptimos para búsqueda sobre índice deq-samples. Por lo tanto, como último experimento de esta tesis se presentará una comparaciónexperimental en tiempo de búsqueda de los algoritmos óptimos para cada estructura de datosutilizada como índice.

Los resultados de la comparación de algoritmos de búsqueda aproximada con una tasa de errorbaja se resumen en los gráficos de la figura 4.25; en ella se nota claramente que el rendimientomás eficiente se obtiene utilizando un arreglo de sufijos (y algoritmo de partición en � pedazos).Al aumentar la tasa de error, los índices de q-gramas y arreglos de sufijos pierden efectividad y losíndices de q-samples aumentan la suya, como se puede notar en los gráficos de las figuras 4.25 y4.26.

Para la búsqueda aproximada sobre texto en inglés no se tiene mucho donde elegir: para tasa deerror superior al 15 % el tamaño del patrón tanto la utilización de índices de q-gramas como deíndices de q-samples para la búsqueda aproximada arroja tiempos aún mayores a la búsqueda depatrones directamente en el texto sin indexar. Para tasas de error pequenas la figura 4.27 muestraque el mejor rendimiento se obtiene al utilizar arreglos de sufijos como índice y como segundaopción dependerá del tamaño del patrón para elegir entre índices de q-gramas y q-samples.

76

Page 90: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

0.2

0.4

0.6

0.8

1

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Comparación de algoritmos de búsqueda aproximada para ADN, k/m=0.1

Arreglo de sufijosÍndices de q−gramas

Índices de q−samplesSin Indizar

0

1

2

3

4

5

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Comparación de algoritmos de búsqueda aproximada para ADN, k/m=0.15

Arreglo de sufijosÍndices de q−gramas

Índices de q−samplesSin Indizar

0

2

4

6

8

10

12

14

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Comparación de algoritmos de búsqueda aproximada para ADN, k/m=0.2

Arreglo de sufijosÍndices de q−gramas

Índices de q−samplesSin Indizar

Figura 4.25: Comparación de algoritmos de búsqueda aproximada sobre ADN y tasa de error entre10 % y 20 % del tamaño del patrón 77

Page 91: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

2

4

6

8

10

12

14

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Comparación de algoritmos de búsqueda aproximada para ADN, k/m=0.25

Arreglo de sufijosÍndices de q−gramas

Índices de q−samplesSin Indizar

0

2

4

6

8

10

12

14

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Comparación de algoritmos de búsqueda aproximada para ADN, k/m=0.3

Arreglo de sufijosÍndices de q−gramas

Índices de q−samplesSin Indizar

0

2

4

6

8

10

12

14

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Comparación de algoritmos de búsqueda aproximada para ADN, k/m=0.35

Arreglo de sufijosÍndices de q−gramas

Índices de q−samplesSin Indizar

Figura 4.26: Comparación de algoritmos de búsqueda aproximada sobre ADN y tasa de error entre25 % y 35 % del tamaño del patrón 78

Page 92: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

0

0.2

0.4

0.6

0.8

1

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Comparación de algoritmos de búsqueda aproximada para texto en inglés, k/m=0.1

Arreglo de sufijosÍndices de q−gramas

Índices de q−samplesSin Indizar

0

0.2

0.4

0.6

0.8

1

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Comparación de algoritmos de búsqueda aproximada para texto en inglés, k/m=0.15

Arreglo de sufijosÍndices de q−gramas

Índices de q−samplesSin Indizar

0

2

4

6

8

10

12

14

10 15 20 25 30 35 40 45 50 55

Tiem

po d

e bú

sque

da (s

eg)

Tamaño de patrón (caracteres)

Comparación de algoritmos de búsqueda aproximada para texto en inglés, k/m=0.20

Arreglo de sufijosÍndices de q−gramas

Índices de q−samplesSin Indizar

Figura 4.27: Comparación de algoritmos de búsqueda aproximada sobre texto en inglés y tasa deerror entre 10 % y 20 % del tamaño del patrón 79

Page 93: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Capítulo 5

Conclusiones

En la presente tesis se han estudiado cuatro esquemas distintos de indización de texto orientadoa la búsqueda aproximada: árboles y arreglos de sufijos, e índices de q-gramas y q-samples. Paracada uno de ellos se estudiaron algoritmos basados en la retropropagación, reducción a búsquedaexacta y un esquema intermedio entre ambos.

La figura 5.1 resume los resultados de la primera parte de esta tesis, donde se comparan los tiemposde búsqueda que se lograría utilizando cada uno de los índices estudiados. En ella se divide elespacio requerido en tres categorías de tamaño del índice:

Baja: Menor o igual al tamaño del texto.

Media: Hasta 4 veces el tamaño del texto.

Alta: Sobre 4 veces el tamaño del texto.

Y el tiempo de búsqueda en tres categorías:

Baja: Menos de 0.1 segundo.

Media: Entre 0.1 y 1 segundos.

Alta: Sobre 1 segundo.

La principal conclusión que se puede obtener de este mapa es que si se posee 4 veces el tamañodel texto entonces se debe ocupar un arreglo de sufijos para obtener el más alto rendimiento debúsqueda. Sin embargo, de no ser así, se debe ocupar un índice de q-samples, con un compromiso

80

Page 94: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

en el tiempo de búsqueda.

La segunda conclusión importante es el descarte definitivo de un árbol de sufijos como estructurade indización de texto para problemas de búsqueda aproximada, puesto que el espacio utilizado nose refleja en una mejora del tiempo de búsqueda.

Las figuras 5.2 y 5.3 resumen la segunda parte de este estudio: la comparación entre los distintosalgoritmos de búsqueda aproximada para distinta capacidad de almacenamiento. Para ello se divideel espacio necesario en tres categorías de tamaño de patrón:

Baja: Entre 10 y 20 caracteres.

Media: Entre 25 y 35 caracteres.

Alta: Sobre 40 caracteres.

Y en tres categorías de tasa de error de la búsqueda:

Baja: Entre 10 % y 15 % el tamaño del patrón.

Media: Entre 20 % y 25 % el tamaño del patrón.

Alta: Entre 30 % y 35 % el tamaño del patrón.

La principal conclusión es elocuente: el algoritmo que obtiene el mejor rendimiento de búsquedaes el de partición en � pedazos para una gran parte del universo de búsqueda si se tiene la capacidadde almacenamiento suficiente. Sólo para búsqueda sobre patrones de ADN y con una alta tasa deerror el óptimo se tendrá utilizando el algoritmo de q-sampling aproximado.

Por lo tanto, se recomienda utilizar en los problemas de búsqueda aproximada un índice basadoen arreglo de sufijos, con el algoritmo de búsqueda partición en � pedazos, donde el valor de� se calcula con la fórmula descrita en la sección 4.4. Si se desea utilizar un índice de q-gramasentonces la recomendación es utilizar un algoritmo de partición en � �&�� pedazos, con variable en tiempo de búsqueda según el tamaño del patrón.

Como trabajo a futuro sería interesante un estudio particular sobre los índices de q-gramas, puestoque los estudiados en esta tesis fueron índices sin compresión ni optimización para búsqueda(para ser comparables al resto de los índices). Sin embargo se podría tal vez obtener mejoresrendimientos al comprimir las posiciones del texto (para su posterior verificación) o si se realiza

81

Page 95: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

arreglo desufijos

arbol desufijos

indice deq-gramasq-samples

indice de

Tamanodel indice

Tiempo de busqueda

alto

medio

bajo

bajo medio alto

Figura 5.1: Mapa: tamaño del índice versus tiempo de búsqueda

paralelismo de bits (optimización en la implementación, no en el algoritmo) como lo planteanGene Myers en [13] (para el índice) y Gonzalo Navarro con Ricardo Baeza-Yates en [15] (para labúsqueda).

Además, con las formulas obtenidas en el capítulo 4.6.3 se puede estudiar el comportamientodel índice de q-samples para tamaños de texto superiores a 30 MB. Ésto, y una mejoría en laverificación representará un gran avance en el campo de la biología computacional.

Otro trabajo a futuro interesante sería investigar las restricciones planteadas por Fei Shi en [19]para el algoritmo de partición en �W P���# pedazos, experimentando sobre el compromiso entre eltiempo que toma cumplir cada restricción y el número de candidatos que dicha restricción rechaza.La conclusión de dicho trabajo sería una recomendación sobre relajar o no dichas condiciones parabúsqueda sobre ADN o texto de lenguaje natural.

82

Page 96: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

(Ingles)

busquedasecuencial

particion en j pedazos sobrearreglos desufijos

particion en j pedazos sobrearreglos desufijos

particion en j pedazos sobrearreglos desufijos

particion en j pedazos sobrearreglos desufijos

particion en j pedazos sobrearreglos desufijos

particion en j pedazos sobrearreglos desufijos

particion en j pedazos sobrearreglos desufijos

particion en j pedazos sobrearreglos desufijos

q−gramasaproximados(ADN)

Tamanodel patron

media

baja

bajo medio alto

Tasa de error

alta

Figura 5.2: Mapa: tamaño del patrón versus tasa de error para espacio de índice medio

busquedasecuencial

busquedasecuencial

busquedasecuencial

busquedasecuencial

busquedasecuencial

busquedasecuencial

busquedasecuencial

busquedasecuencial

busquedasecuencial

q−gramasaproximados

busquedasecuencial

q−gramasaproximados

busquedasecuencial

q−gramasaproximados

q−gramasaproximados

q−gramasaproximados

Ingles

Ingles

Ingles

ADN

ADN

ADNq−sampling

q−sampling

Tamanodel patron

media

baja

bajo medio alto

Tasa de error

alta

Figura 5.3: Mapa: tamaño del patrón versus tasa de error para espacio de índice bajo

83

Page 97: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Bibliografía

[1] R. BAEZA-YATES Y G. GONNET. Efficient text searching of regular expressions. En “ICALP89, Lectures Notes in Computer Science 372”, páginas 46–62. Springer-Verlag (1989).

[2] R. BAEZA-YATES Y G. GONNET. A fast algorithm on average for all-against-all sequencematching. En “Proc. 6th Symposium on String Processing and Information Retrieval(SPIRE’99)”, páginas 16–23. IEEE CS Press (1999).

[3] R. BAEZA-YATES Y G. NAVARRO. Faster approximate string matching. Algorithmica 23(2),127–158 (1999).

[4] R. BAEZA-YATES, G. NAVARRO, E. SUTINEN Y J.TARHIO. Indexing methods for approxi-mate text retrieval. Informe técnico TR/DCC-97-2, Dept. of Computer Science, Univ. of Chile(1999). ftp://ftp.dcc.uchile.cl/pub/users/gnavarro/sequidx.ps.gz.

[5] A. COBBS. Fast approximate matching using suffix trees. En “Proc. 6th Annual Symposiumon Combinatorial Pattern Matching (CPM’95)”, páginas 41–54 (1995).

[6] GENBANK. Dna homosapiens. http://www.ncbi.nlm.nih.gov. Aproximadamente50 MB de texto plano. (2000).

[7] G. GONNET, R. BAEZA-YATES Y T. SNIDER. “Information Retrieval: Data Structuresand Algorithms”, capítulo 3: New indices for text: Pat trees and Pat arrays, páginas 66–82.Prentice-Hall, Englewood Cliffs, NJ (1992).

[8] D. HARMAN. Overview of the Third Text REtrieval Conference. En “Proc. Third TextREtrieval Conference (TREC-3)”, páginas 1–19 (1995). NIST Special Publication 500-207.

[9] P. JOKINEN Y E. UKKONEN. Two algorithms for approximate string matching in statictexts. En “Proc. 2nd Annual Symposium on Mathematical Foundations of Computer Science(MFCS’91)”, tomo Vol. 16, páginas 240–248 (1991).

[10] S. KURTZ. Reducing the space requeriment of suffix trees. Informe técnico 98-03, TechnischeFakultät, Universität Bielefeld (diciembre 1998).

84

Page 98: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

[11] J. LARSSON Y K. SADAKANE. Faster suffix sorting. Informe técnico LU-CS-TR:99-214,Department of Computer Science, Lund University, Sweden (1999).

[12] C. MARTÍNEZ. Tries. http://www-assig.fib.upc.es/ C eda/. Material Docente(2000).

[13] G. MYERS. A sublinear algorithm for approximate keyword searching. Algorithmica Vol.12(No 4/5), 345–374 (1994). Versión preliminar: Tech. Report TR-90-25, Dept. of Comp.Sci., Univ. of Arizona, 1990.

[14] G. NAVARRO Y R. BAEZA-YATES. A practical � -gram index for text retrieval allowing errors.CLEI Electronic Journal Vol. 1(No 2) (1998). http://www.clei.cl.

[15] G. NAVARRO Y R. BAEZA-YATES. A hybrid indexing method for approximate stringmatching. Journal of Discrete Algorithms (JDA) Vol. 1(No 1), 205–239 (2000). Specialissue on Matching Patterns.

[16] G. NAVARRO, R. BAEZA-YATES, E. SUTINEN Y J. TARHIO. Indexing methods forapproximate string matching. IEEE Data Engineering Bulletin 24(4), 19–27 (2001).

[17] G. NAVARRO, E. SUTINEN, J. TANNINEN Y J. TARHIO. Indexing text with approximate � -grams. En “Proceedings of the 11st Annual Symposium on Combinatorial Pattern Matching(CPM’2000)”, LNCS 1848, páginas 350–363 (2000).

[18] P. SELLERS. The theory and computation of evolutionary distances: pattern recognition. J.of Algorithms 1, 359–373 (1980).

[19] F. SHI. Fast approximate string matching with � -blocks sequences. En “Proc. 3rd SouthAmerican Workshop on String Processing (WSP’96)”, páginas 257–271. Carleton UniversityPress (1996).

[20] E. SUTINEN Y J. TARHIO. Filtration with � -samples in approximate string matching. En“Proc. 7th Annual Symposium on Combinatorial Pattern Matching (CPM’96)”, LNCS 1075,páginas 50–61 (1996).

[21] E. UKKONEN. Approximate string matching over suffix trees. En “Proc. 4th AnnualSymposium on Combinatorial Pattern Matching (CPM’93)”, páginas 228–242 (1993).

85

Page 99: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Apéndice A

Código de la variante de Kurtz para Árbolesde Sufijos

A continuación se presenta la implementación que plantea StefanKurtz en [10] para simular sus árboles de sufijos. Lo primero sonlas funciones macro que utiliza y luego las funciones de cálculode profundidad y el cálculo del suffix link.

1 #define GETCHILD(B) ((((*(B)) << 2) & MAXINDEX) | \2 ((*((B)+1)) >> 30))3 #define GETBROTHER(B) ((*((B)+1)) & (MAXINDEX | NILBIT))4 #define LEAFBROTHERVAL(V) ((V) & (MAXINDEX | NILBIT))5 #define GETHEADPOS(B) (*((B)+3) & MAXTLEN)6 #define GETLEAFINDEX(V) ((V) >> 1)7 #define GETBRANCHINDEX(V) (V)8 #define NODEADDRESS(N) ((Uint) ((N) - state->branchtab))

La siguiente es la función para obtener la profundidad de unnodo:

1 static Uint getdepth(Uint *btptr)2 {3 Uint thirdval = *(btptr+2);4 if(thirdval & SMALLDEPTHMARK)5 return thirdval & SMALLDEPTH;6 else7 return thirdval & MAXTLEN;8 }

86

Page 100: jbustos/Pub/tesis.pdf · Agradecimientos Esta tesis fue totalmente nanciada por el Proyecto Fondecyt (Chile) 1-990627 (investigador principal Ricardo Baeza-Yates): Diseæo y AnÆlisis

Las siguientes son las funciones para obtener el suffix link deun nodo en tiempo de búsqueda:

1 Uint getlargelinkafterconstruction(struct MccState *state,2 Uint *btptr,Uint depth)3 {4 Uint succ;5 if(depth == 1) return 0;6 if(ISSMALLDEPTH(depth))7 return (((*(btptr+2) & LOWERLINKPATT) >> SMALLDEPTHBITS) |8 ((*(btptr+3) & MIDDLELINKPATT) >> SHIFTMIDDLE) |9 ((state->leafbrother[GETHEADPOS(btptr)] & EXTRAPATT)

10 >> SHIFTHIGHER)) << 1;11 succ = GETCHILD(btptr);12 while(!NILPTR(succ))13 {14 if(ISLEAF(succ))15 succ=LEAFBROTHERVAL(state->leafbrother[GETLEAFINDEX(succ)]);16 else17 succ=GETBROTHER(state->branchtab + succ);18 }19 return succ & MAXINDEX;20 }21

22 Uint f(struct MccState *state, Uint *btptr, Uint depth)23 {24 Uint suffixlink;25 if(ISLARGE(*btptr))26 suffixlink=getlargelinkafterconstruction(state,btptr,depth);27 else28 suffixlink=NODEADDRESS(btptr) + SMALLINTS;29 return suffixlink;30 }

87