calcular el NFA mínimo para un DFA

17

Hace muchos años escuché que calcular el mínimo NFA (autómata finito no determinista) de un DFA (determinista) era una pregunta abierta, en oposición a la dirección inversa que se conoce desde hace décadas y está bien investigada con un eficiente ( n lg n ) algoritmo. ¿Alguien ha ideado un algoritmo?O(nortelgnorte)

Una búsqueda rápida me dio este documento que demuestra que definitivamente es un problema difícil. Aparentemente, no se da ningún algoritmo.

[1] Los problemas mínimos de la NFA son difíciles / Tao Jiang y B. Ravikumar

La siguiente pregunta me recordó este problema en el sitio CS.SE para el cual un algoritmo de minimización DFA-> NFA estaría estrechamente relacionado. La siguiente pregunta me parece a nivel de investigación. Sugerí migrarlo a TCS y escribí una respuesta sugiriendo un ataque estadístico / empírico.

[2] ¿Cuáles son las condiciones para que un NFA para su DFA equivalente tenga un tamaño máximo?

vzn
fuente
44
El documento que cita muestra la integridad de PSPACE. En particular, el problema está en PSPACE, que inmediatamente sugiere un algoritmo. ¿Qué tipo de algoritmos estás buscando? ¿Prácticas y / o heurísticas? ¿Límites más conocidos en el exponente del tiempo de ejecución? ¿Algo más?
Joshua Grochow
8
No es tan inusual, en realidad. Antes de que se supiera que el problema era completo para PSPACE, todos los intentos de desarrollar algoritmos eficientes fallaron, por lo que se publicó muy poco. Después de que se sabía que el problema era completo para PSPACE, nadie intentó desarrollar algoritmos eficientes, porque sabían que iban a fallar, por lo que se publicó aún menos.
Jeffε
44
(1) ¿Qué significa "viceversa dirección que se conoce desde hace décadas y está bien investigada con un algoritmo eficiente O (n lg n)"? El DFA mínimo para un NFA con n estados puede tener un tamaño exponencial en n, por lo que requeriría una codificación de salida no trivial. (2) No existe tal cosa como "el" NFA mínimo para un lenguaje regular dado. Compare esto con la existencia del mínimo DFA.
Tsuyoshi Ito
1
JEFFE tiene un buen punto, pero estoy seguro de que hay muchos problemas completos de Pspace que todavía tienen algoritmos sofisticados que aprovechan la estructura del problema además de simplemente enumerar todas las soluciones posibles, ¿verdad? Admito, no puedo pensar en nada fuera de mi cabeza. ¿tal vez tu puedas? Supongo que sería otra pregunta interesante para plantear aquí.
vzn
2
un+

Respuestas:

25

Este es realmente un problema obstinado y bien estudiado. En cuanto a los resultados positivos, un algoritmo exacto de Kameda y Weiner, un enfoque heurístico de Polák y un enfoque reciente con solucionadores SAT de Geldenhuys et al. se me ocurre. Pero parece haber resultados mucho más negativos que descartan otros enfoques posibles (por ejemplo, algoritmos de aproximación, casos especiales, modelos menos potentes de NFA, ...) Consulte a continuación algunas referencias.

T. Kameda y P. Weiner. Sobre la minimización del estado de autómatas finitos no deterministas. IEEE Transactions on Computers, C-19 (7): 617–627, 1970.

A. Malcher. Minimizar autómatas finitos es computacionalmente difícil. Theoretical Computer Science 327: 375-390, 2004.

L. Polák. Minimalizaciones de NFA utilizando el autómata universal. Revista Internacional de Fundaciones de Ciencias de la Computación, 16 (5): 999-1010, 2005.

G. Gramlich y G. Schnitger. Minimización de NFA y expresiones regulares. Simposio sobre aspectos teóricos de la informática (STACS 2005), LNCS 3404, pp. 399–411.

H. Gruber y M. Holzer. Inaproximidad del estado no determinista y la complejidad de la transición suponiendo P <> NP. Desarrollos en teoría del lenguaje (DLT 2007), LNCS 4588, pp. 205–216.

H. Gruber y M. Holzer. Complejidad computacional de la minimización de NFA para lenguajes finitos y unarios. Teoría y aplicaciones de lenguaje y autómatas (LATA 2007), págs. 261–272.

H. Björklund y W. Martens. La frontera de trazabilidad para la minimización de NFA. Coloquio internacional sobre autómatas, idiomas y programación (ICALP 2008), LNCS 5126, págs. 27–38.

J. Geldenhuys, B. van der Merwe, L. van Zijl: Reducción de autómatas finitos no deterministas con solucionadores SAT. Métodos de estado finito y procesamiento del lenguaje natural (FSMNLP 2009), LNCS 6062, 81–92.

EDITAR (8 de junio de 2015)

Actualización: El siguiente documento presenta un algoritmo heurístico para reducir el tamaño de los autómatas no deterministas de Büchi, junto con experimentos con autómatas aleatorios. Como afirman en la conclusión, su método se aplica también a los NFA: "Si bien presentamos nuestros métodos en el contexto de los autómatas de Büchi, la mayoría de ellos trivialmente se trasladan al caso más simple de autómatas sobre palabras finitas".

Richard Mayr, Lorenzo Clemente. Minimización avanzada de autómatas. POPL 2013. Informe técnico ampliado EDI-INF-RR-1414.

Su herramienta de línea de comandos Reduce v1.2 se puede invocar con la opción "-finite" para reducir un NFA determinado. La implementación es de código abierto y se publica bajo la Licencia Pública General de GNU.

Hermann Gruber
fuente
3
¿Sabes si hay implementaciones de código abierto de alguna de estas patadas?
jmite
Hola Hermann, muchas gracias por toda la información! Sé que dado un NFA, es difícil encontrar el NFA equivalente más pequeño. Pero, ¿qué pasa con lo siguiente? Dado un DFA, encuentre el NFA equivalente más pequeño. ¿Esto es dificil? Que duro
Michael Wehar
Lo siento, ya veo! El primer documento enumerado aborda esto: springerlink.com/content/y61724u571v487x5 Además, otro documento que enumeró aborda esto para idiomas regulares finitos: hermann-gruber.com/data/lata07-final.pdf ¡ Gracias por aclarar esto para mí! :)
Michael Wehar