Algoritmos conocidos para pasar de un DFA a una expresión regular


28

Me preguntaba si hay un algoritmo `` mejor '' (explicaré en qué sentido) comenzar desde un DFA y construir una expresión regular r tal que L ( A ) = L ( r ) , que la del libro de Hopcroft y Ullman (1979). Allí, los conjuntos R k i j se utilizan para representar conjuntos de cadenas que llevan el DFA del estado q i al q j sin pasar por ningún estado con un número superior a k . Esta construcción, aunque obviamente correcta y muy útil, es bastante técnica.ArL(A)=L(r)Rijkqiqjk

Estoy escribiendo una monografía sobre la teoría de autómatas algebraicos y no quiero distraer a mi audiencia con demasiados detalles técnicos (al menos no con detalles que son irrelevantes para los resultados que quiero mostrar), pero sí quiero incluir un prueba de la equivalencia entre DFA y expresiones regulares en aras de la integridad. Para el registro, estoy usando autómatas Glushkov para pasar de una expresión regular a un DFA. Parecía más intuitivo que las transiciones , que no definí en absoluto (de nuevo, porque no las necesito).ε

¿Qué otros algoritmos se sabe que van de un DFA a una expresión regular? Valoro la simplicidad sobre la eficiencia (eso es `` mejor '' para mí en este caso), pero eso no es un requisito.

¡Gracias de antemano por tu ayuda!


1
No es un algoritmo diferente, pero el algoritmo puede expresarse algebraicamente, utilizando la potencia k de una matriz de expresiones regulares en el álgebra apropiada. Quizás encuentres esto más elegante / conciso. Estoy buscando una referencia. Rijkk
Max

1
El algoritmo es esencialmente una variante del algoritmo Floyd-Warshall para el problema de todos los pares de la ruta más corta, por lo que puede encontrar la presentación en términos de multiplicación de matrices al buscar estas palabras clave. Rijk
Jan Johannsen

2
Estoy de acuerdo. Básicamente es el algoritmo Floyd-Warshall. También se puede derivar utilizando técnicas de programación dinámica estándar (al igual que Floyd-Warshall puede).
david

Estoy seguro de que respondí una pregunta como esta antes, pero no puedo encontrarla.
Raphael

@Max, ¿podrías encontrar una referencia? Estoy interesado en la representación matricial, en realidad debería ser más atractiva para los algebristas.
Janoma

Respuestas:


17

Dos construcciones más: Brzozowski-McCluskey, también conocida como eliminación del estado [1], y eliminación gaussiana en un sistema de ecuaciones usando el Lema de Arden. La mejor fuente de estos es probablemente el libro de Jacques Sakarovitch [2].

[1] J. Brzozowski, E. McCluskey Jr., Técnicas de gráficos de flujo de señal para diagramas de estado de circuito secuenciales, Transacciones IEEE en computadoras electrónicas EC-12 (1963) 67–76.

[2] J. Sakarovitch, Elementos de la teoría de autómatas. Cambridge University Press, 2009.


2
Encuentro que el enfoque de resolver ecuaciones usando el Lema de Arden es el más simple y fácil de explicar, por eso lo presento de esa manera en una clase de teoría introductoria.
Jan Johannsen

El método de un sistema de ecuaciones suena brillante. Desafortunadamente, la biblioteca de mi universidad no tiene el libro que mencionas (Sakarovitch), pero voy a buscar en otro lado.
Janoma

44
La comparación de construcciones también se encuentra en el artículo de Sakarovitch "El lenguaje, la expresión y el (pequeño) autómata", CIAA 2005, LNCS 3845, Springer (2006) 15-30. Ver infres.enst.fr/~jsaka/PUB/Files/LESA.pdf
Hermann Gruber

2
Además, tenga en cuenta que el orden en que se procesan los estados puede afectar en gran medida el tamaño de la expresión regular resultante. Esto es siempre cierto: ya sea que lo hagas con el lema de Arden, McNaughton-Yamada, la eliminación del estado u otra variante. Existen varias heurísticas simples para elegir un buen pedido de eliminación.
Hermann Gruber

15

El libro de Kozen "Automata & Computability" menciona una generalización elegante de este algoritmo de Floyd-Warshall. Como mencionó que es atractivo para los algebraistas, puede que le resulte útil. Lo encontrará en la página 58-59 de ese texto. (Creo que google books tiene una vista previa).

2×2

[abcd]=[(a+bdc)(a+bdc)bd(d+cab)ca(d+cab)]

i,jij

n×na,b,c,dm×mm×(nm)(nm)×m(nm)×(nm)2×22×2

nTfF(T)s,fsT

m=1Rijk

Otra derivación de las estructuras de álgebra de Kleene sobre matrices aparece en el Teorema de integridad de álgebras de Kleene y el álgebra de eventos regulares de Kozen.


12

Con mucho, el mejor procedimiento que he visto es el mencionado por Sylvain. En particular, parece producir expresiones más concisas que otras.

Escribí este documento explicando el método para estudiantes el verano pasado. Se relaciona directamente con una conferencia específica; La referencia mencionada es la definición típica de expresiones regulares. Se contiene una prueba del Lema de Arden; falta uno para la corrección del método. Como supe en la conferencia, no tengo una referencia, lamentablemente.


También prefiero esa prueba. Me parece elegante y fácil de explicar. Incluso el lema de Arden no es difícil. Creo que este será el método que incluiré en mi documento.
Janoma

+
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.