Algoritmos de coincidencia de patrones permutados en cadenas de múltiples pistas
Autores: Hendrian, Diptarama; Ueki, Yohei; Narisawa, Kazuyuki; Yoshinaka, Ryo; Shinohara, Ayumi
Idioma: Inglés
Editor: MDPI
Año: 2019
Acceso abierto
Artículo científico
2019
Algoritmos de coincidencia de patrones permutados en cadenas de múltiples pistas
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Software
Palabras clave
Algoritmos
Búsqueda de patrones
Cadenas de múltiples pistas
Knuth-Morris-Pratt
Boyer-Moore
Horspool
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 33
Citaciones: Sin citaciones
Una cadena de múltiples pistas es una tupla de cadenas de la misma longitud. Dado el patrón y el texto de dos cadenas de múltiples pistas, el problema de coincidencia de patrones permutados es encontrar las posiciones de ocurrencia de todas las permutaciones del patrón en el texto. En este documento, proponemos varios algoritmos para la coincidencia de patrones permutados. Nuestro primer algoritmo, que se basa en el algoritmo de Knuth-Morris-Pratt (KMP), tiene un tiempo teórico de cálculo rápido con como tiempo de preprocesamiento y como tiempo de coincidencia, donde , , , , y denotan la longitud del texto, la longitud del patrón, el número de cadenas en la pista múltiple, el tamaño del alfabeto y el número de ocurrencias del patrón, respectivamente. Luego mejoramos el algoritmo basado en KMP utilizando un autómata, que tiene un mejor tiempo de ejecución experimental. Los siguientes algoritmos propuestos se basan en el algoritmo de Boyer-Moore y el algoritmo de Horspool que intentan realizar la coincidencia de patrones. Estos algoritmos son los más rápidos en la práctica. Además, proponemos una extensión del algoritmo de AC-autómata que puede resolver la coincidencia de diccionario en múltiples pistas, que es una tarea para encontrar múltiples patrones de múltiples pistas en un texto de múltiples pistas. Finalmente, proponemos algoritmos de filtrado que pueden realizar la coincidencia de patrones permutados rápidamente en la práctica.
Descripción
Una cadena de múltiples pistas es una tupla de cadenas de la misma longitud. Dado el patrón y el texto de dos cadenas de múltiples pistas, el problema de coincidencia de patrones permutados es encontrar las posiciones de ocurrencia de todas las permutaciones del patrón en el texto. En este documento, proponemos varios algoritmos para la coincidencia de patrones permutados. Nuestro primer algoritmo, que se basa en el algoritmo de Knuth-Morris-Pratt (KMP), tiene un tiempo teórico de cálculo rápido con como tiempo de preprocesamiento y como tiempo de coincidencia, donde , , , , y denotan la longitud del texto, la longitud del patrón, el número de cadenas en la pista múltiple, el tamaño del alfabeto y el número de ocurrencias del patrón, respectivamente. Luego mejoramos el algoritmo basado en KMP utilizando un autómata, que tiene un mejor tiempo de ejecución experimental. Los siguientes algoritmos propuestos se basan en el algoritmo de Boyer-Moore y el algoritmo de Horspool que intentan realizar la coincidencia de patrones. Estos algoritmos son los más rápidos en la práctica. Además, proponemos una extensión del algoritmo de AC-autómata que puede resolver la coincidencia de diccionario en múltiples pistas, que es una tarea para encontrar múltiples patrones de múltiples pistas en un texto de múltiples pistas. Finalmente, proponemos algoritmos de filtrado que pueden realizar la coincidencia de patrones permutados rápidamente en la práctica.