Construcción del autómata Aho-Corasick para coincidencia de subcadenas

Fuentes: Construction of the Aho-Corasick automaton for substring matching

El autómata Aho-Corasick es una estructura de datos que permite la coincidencia simultánea de múltiples patrones dentro de una secuencia de texto. Este artículo técnico detalla la construcción de dicho autómata a partir de un árbol de prefijos (trie), destacando su capacidad para procesar entradas en tiempo lineal. El sistema funciona mediante transiciones basadas en caracteres y utiliza enlaces de sufijo (suffix links) para recuperar el estado correcto cuando una transición falla, permitiendo continuar la búsqueda desde el sufijo más largo que coincide con algún patrón existente. La construcción de estos enlaces se realiza mediante un recorrido en anchura (BFS) del trie, optimizando la eficiencia del algoritmo. Además, se introduce el concepto de enlaces de salida (output links), que gestionan la emisión de coincidencias cuando un nodo representa el final de un patrón y su sufijo también es un patrón válido. El texto incluye pseudocódigo para la implementación de estos enlaces y explica cómo el autómata permite identificar todas las ocurrencias de los patrones en una entrada, siendo una herramienta fundamental en áreas como la bioinformática y el procesamiento de lenguaje natural.