La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Análisis de rendimiento de dos algoritmos de búsqueda secuencial de texto con sus respectivas variantes Mauricio Ulate Quirós 983660.

Presentaciones similares


Presentación del tema: "Análisis de rendimiento de dos algoritmos de búsqueda secuencial de texto con sus respectivas variantes Mauricio Ulate Quirós 983660."— Transcripción de la presentación:

1 Análisis de rendimiento de dos algoritmos de búsqueda secuencial de texto con sus respectivas variantes Mauricio Ulate Quirós 983660

2 Planteamiento del problema
Algoritmos de búsqueda secuencial de texto que se aplican a documentos que no tienen una estructura definida. Útil cuando se quiere ubicar las ocurrencias de alguna palabra o alguna frase dentro de un contexto grande (ex. Un libro).

3 Problema a tratar ¿El análisis y combinación de elementos de dos algoritmos de búsqueda con características y rendimiento muy diferente pueden dar como resultado un algoritmo que refleje los elementos de rendimiento positivo de cada uno o inclusive superarlos?

4 Algoritmos más comunes
Fuerza bruta. Familia de algoritmos Boyer – Moore. Familia de algoritmos de corrimiento.

5 Objetivo general Comparar el rendimiento de dos algoritmos de búsqueda secuencial con un tercer algoritmo correspondiente a una variante de los primeros.

6 Objetivos específicos
Identificar los diferentes algoritmos. Seleccionar los dos algoritmos que presenten el mejor rendimiento. Implementar los algoritmos seleccionados.

7 Objetivos específicos
Diseñar un modelo de prueba para comparar los algoritmos. Relacionar los elementos de los algoritmos que causen el comportamiento óptimo de los mismos. Diseñar e implementar un algoritmo con base a los elementos abstraídos del punto anterior.

8 Objetivos específicos
Comparar el rendimiento de los tres algoritmos en cuestión. Interpretar los resultados obtenidos.

9 Metodología (resumen)
Investigación bibliográfica Identificar algoritmos. Selección de algoritmos Implementación de algoritmos. Análisis de elementos clave de cada algoritmo. Generar una variante.

10 Metodología Diseño de pruebas
Sacar 1000 conjuntos de 1000 caracteres del texto. Se generan subgrupos de 1000 elementos de entre 2 y 20 caracteres de longitud. Generar promedios de cada algoritmo con respecto al tamaño de la subhilera. Comparar el rendimiento. Interpretar los resultados

11 Metodología Gráfico de comportamiento

12 Algoritmos a comparar Boyer – Moore – Horspool Shift – OR
Variante con base en los dos algoritmos anteriores.

13 Familia de algoritmos Boyer – Moore
No analiza todos los caracteres del texto. Preprocesa la subhilera a buscar para calcular saltos en el análisis.

14 Boyer – Moore – Horspool
Problema: Buscar la hilera GCAGAGAG en el texto GCATCGCAGAGAGTATACAGTACG

15 Boyer – Moore – Horspool
Preanálisis de la consulta GCAGAGAG Se calcula la distancia mínima entre el último caracter y la ocurrencia de cada caracter del alfabeto de la hilera principal. Tabla de corrimiento del caracter erróneo bmBc

16 Boyer – Moore – Horspool
Ver BoyerMooreHorspool.swf

17 Boyer – Moore – Horspool
Desventajas Lee varias veces algunos caracteres de la hilera principal

18 Shift – OR Permite análisis paralelo.
Permite encontrar de una sola pasada dos ocurrencias de la subhilera ABRACADABRA en la hilera ABRACADABRACADABRA Funciona como una máquina de estados.

19 Shift – OR Problema: Buscar la hilera GCAGAGAG en el texto GCATCGCAGAGAGTATACAGTACG

20 Shift – OR Preanálisis Para cada caracter de la subhilera se saca su patrón de aparición en la misma. Cada aparición se denota con 0 y el resto en 1. Caracteres que no se encuentren en este alfabeto tendrán asignados un patrón de sólo 1's.

21 Shift – OR Preanálisis Subhilera GCAGAGAG, se invierte y se indica las apariciones de cada caracter. Para la búsqueda, se toma el estado actual, se le hace corrimiento a la izquierda de 1 bit y se le aplica la operación OR con el patrón correspondiente al caracter actual.

22 Shift – OR Ver Shift OR.swf

23 Shift – OR Desventajas Cuando aparece un elemento que corresponde al alfabeto de la hilera principal pero no es parte del alfabeto de la hilera buscada, el patrón de estados se devuelve a 1's, anulando cualquier avance. Hasta que no aparezca de nuevo el primer caracter de la hilera buscada el patrón de estados seguirá en 1's.

24 Variante propuesta Algoritmo que aproveche las cualidades de ambos algoritmos expuestos anteriormente. Capacidad de salto (Familia Boyer - Moore) Paralelismo y análisis sin repetición. (Familia de algoritmos de corrimiento).

25 Variante propuesta Ver Variante.swf

26 Variante propuesta Ventajas Desventajas
Aparente disminución en cantidad de comparaciones. Aumentan los saltos y mejora su posición de inicio Desventajas Requiere hacer todo el pre – análisis de ambos algoritmos base.

27 Variante propuesta Comportamiento esperado
Comportamiento esperado del algoritmo propuesto

28 Problemas encontrados
Diferencia entre teoría e implementación. void HORSPOOL(char *x, long m, char *y, long n) { long j, bmBc[ASIZE], k, h; char c; //bool found = false; /* Preprocessing */ preBmBc(x, m, bmBc); /* Serching */ j = 0; while (j <= (n-m)) { c = y[j+m-1]; if ((x[m-1] == c) && (memcmp(x, y+j, m-1) == 0)) { if (FILEDEBUG) { debug << j << " "; } j += bmBc[c];

29 Resultados Con implementación original

30 Resultados Con implementación modificadas


Descargar ppt "Análisis de rendimiento de dos algoritmos de búsqueda secuencial de texto con sus respectivas variantes Mauricio Ulate Quirós 983660."

Presentaciones similares


Anuncios Google