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

Slides:



Advertisements
Presentaciones similares
Procesamiento de cadenas
Advertisements

Teoría – Alejandro Gonzalez
Presentado por: Yuli Dominguez. Portal Educa Panamá. Sistema de numeración.
INTEGRANTES: NOVOA TAFUR, EINSTEIN MANUEL RODRÍGUEZ POSTIGO, JULIO CESAR.
Búsqueda binaria Integrantes: Humberto Raíz Walter Gómez Isabel Hernández.
PPTCES047MT22-A16V1 Clase Medidas de dispersión y muestreo MT-22.
Bioestadística Distribuciones muestrales para variables cuantitativas.
TUTORIA 1 Lógica para la Computación TUTORIA 1 Facultad de Ciencias Naturales y Matemáticas.
MICROSOFT ACCESS. Definición de una Base de Datos: un programa que permite gestionar y organizar una serie de datos. Por ejemplo, para la gestión de los.
Unidad 1 Principios de electrónica digital
REFERENCIAS BIBLIOGRAFICAS
Mg.Ing.Meregildo Silva Ramírez1
Tema: Análisis de una red trocal multiservicio para encriptación de información sobre MPLS basada en el estándar IETF con el protocolo GETVPN Autor:
Búsqueda de punto de corte óptimo para la estratificación de riesgo según EuroSCORE en el Cardiocentro “Ernesto Che Guevara” Dra. Vielka González Ferrer.
COMPONENTES DE INTERNET
Objetivo: Conocer y aplicar el método científico.
Ingreso , proceso y salida de datos
DE PRIMERO Y SEGUNDO GRADO Diseño: M. en C. Juan Adolfo Alvarez Mtz.
Briefings in Bioinformatics 3 (2002):
ESTRATEGIAS DE ENSEÑANZA
Instituto Profesional Virginio Gómez
Metodología de la Investigación Cualitativa
Bases de Datos Bibliográfica Computer Data Base
Ciclos condicionales y exactos Estructura de control de ciclos
INFORMÁTICA II (METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS)
INVESTIGACIÓN DE OPERACIONES
Estrategia de IAP Equity-LA II Santiago, marzo 2014.
Datapath para las instrucciones de brinco
Búsqueda rápida en .Q Búsqueda rápida en .Q COMENZAR.
Investigando ando Título del trabajo.
FUNCIONES EN EXCEL 2007.
5. Fundamentos de algoritmos
Números Índices Un número de índice mide cuánto ha cambiado una variable con el tiempo. Se calcula encontrando el cociente del valor actual entre un valor.
UNIDAD II INTERNET.
Unidad 7: Nivel Interno Algunos Conceptos Importantes
ARQUITECTURA DE HARD WARE COMPONENTES EN BLOQUES DEL PROCESADOR
TIPO DE DATOS EN ACCESS 2010 TEXTO, MEMO, NUMERO, FECHA/HORA, MONEDA, AUTONUMERACION, SI/NO, OBJETO OLE, HIPERVINCULO, DATOS ADJUNTADOS, CALCULADO Y ASISTENTES.
Introducción ( Arial 28-30) Referencias (más importantes- máximo 5)
SISTEMA DE ESCALAS Y PERFILES DE VALORACIÓN DE PUESTOS DE HAY
Seminario de Titulación (4)
Pipelining Introducción.
MODULAR SIMULTÁNEO TIPOS DE SIMULADORES
Evaluación Económica Financiera de Proyectos
salto de piedra a piedra programación lineal
Aplicaciones de RECURSIVIDAD
T E M A S D E A N Á L I S I S Análisis Vertical Análisis Horizontal.
BLOQUE I – DISEÑAS Y ELABORAS ALGORITMOS PARA LA SOLUCIÓN DE PROBLEMAS. TEMAS: III.- Algoritmos.
Agentes que planifican. 1. Introduccion En la actualidad todas la mayoría de actividades en un empresa o compañía, como en el hogar o el medio ambiente.
Titulo del trabajo INTRODUCCION El propósito de la introducción es iniciar al lector en el tema, exponiendo de manera muy general los eventos más resaltantes.
ANALISIS DE VARIANZA
METODOLOGÍA DE LA INVESTIGACIÓN (SAMPIERI)
INFORMÁTICA II (PSEUDOCODIGO Y METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS) Ing. José David Ortiz Salas.
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
UNIVERSIDAD DE LOS ANDES CENTRO DE INVESTIGACIONES PSICOLÓGICAS
INFORME DE AYB Y EVENTOS HOTEL CARTAGENA
ANÁLISIS DE LA SITUACIÓN DE SALUD
METODOS DE ORDENAMIENTO CHRISTIAN MICHAEL OBANDO GARCES JOAO ADRIAN BARIONUEVO.
Universidad Nacional Autónoma de Honduras.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
FACTORES DE RIESGO # de Enero de 2015 Recuerda: MUY PRONTO INICIAREMOS CON EL LEVANTAMIENTO DE LOS ANÁLISIS DE RIESGO DE NUESTRAS OPERACIONES ¿Que.
MICROSOFT ACCESS. Definición de una Base de Datos: un programa que permite gestionar y organizar una serie de datos. Por ejemplo, para la gestión de los.
HERNANDEZ RUIZ ROCIO KRUSKAL WALLIS. PRUEBAS K PARA MUESTRAS INDEPENDIENTES Este contraste permite decidir si puede aceptarse la hipótesis de que k muestras.
PRUEBAS DE CAJA NEGRA. -Internationa Software Testing Qualification Board (ISTQB) Internationa Software Testing Qualification Board (ISTQB) Técnica de.
Técnica: Mapas mentales
ALGORITMO DE ORDENAMIENTO POR BURBUJA. El método de la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista.
Diseñas y elaboras algoritmos para la solución de problemas
Estrategia algorítmica
La combinación de Correspondencia es un proceso a través del cual los datos de una lista de direcciones son insertados y colocados en una carta o documento.
Sustentación de Paper Curso : MN 463 Sección : “C” Docente : Morales-Tarqui Oswaldo Morla Alumno : Josué Gabriel Díaz Saavedra Código : D Fecha.
Transcripción de la presentación:

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

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).

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?

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

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

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

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.

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

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.

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

Metodología Gráfico de comportamiento

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

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

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

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

Boyer – Moore – Horspool Ver BoyerMooreHorspool.swf

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

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.

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

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.

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.

Shift – OR Ver Shift OR.swf

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.

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).

Variante propuesta Ver Variante.swf

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.

Variante propuesta Comportamiento esperado Comportamiento esperado del algoritmo propuesto

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];

Resultados Con implementación original

Resultados Con implementación modificadas