¿Existe un algoritmo / procedimiento sistemático para evaluar si un idioma es regular?
En otras palabras, dado un idioma especificado en forma algebraica (piense en algo como ), pruebe si el idioma es regular o no. Imagine que estamos escribiendo un servicio web para ayudar a los estudiantes con todas sus tareas; el usuario especifica el idioma y el servicio web responde con "regular", "no regular" o "No sé". (Nos gustaría que el servicio web responda "No sé" con la menor frecuencia posible). ¿Hay algún buen enfoque para automatizar esto? ¿Es esto manejable? ¿Es decidible (es decir, es posible garantizar que nunca necesitemos responder "No sé")? ¿Existen algoritmos razonablemente eficientes para resolver este problema y poder proporcionar una respuesta que no sea "no sé"
El método clásico para demostrar que un idioma no es regular es el lema de bombeo. Sin embargo, parece que requiere una visión manual en algún momento (por ejemplo, para elegir la palabra que se va a bombear), por lo que no tengo claro si esto puede convertirse en algo algorítmico.
Un método clásico para demostrar que un lenguaje es regular sería utilizar el teorema de Myhill-Nerode para derivar un autómata de estado finito. Esto parece un enfoque prometedor, pero requiere la capacidad de realizar operaciones básicas en idiomas en forma algebraica. No me queda claro si existe una forma sistemática de realizar simbólicamente todas las operaciones que puedan ser necesarias, en idiomas en forma algebraica.
Para hacer esta pregunta bien planteada, debemos decidir cómo el usuario especificará el idioma. Estoy abierto a sugerencias, pero estoy pensando en algo como esto:
donde es una expresión de palabras y es un sistema de desigualdades lineales sobre las variables de longitud, con las siguientes definiciones:S
Cada uno de es una expresión de palabras. (Estos representan variables que pueden tomar cualquier palabra en .)Σ ∗
Cada uno de es una expresión de palabras. (Aquí representa el reverso de la cadena .)x r x
Cada uno de es una expresión de palabras. (Implícitamente, , por lo que representan un solo símbolo en el alfabeto subyacente).Σ = { a , b , c , ... } a , b , c , ...
Cada uno de es una expresión de palabra, si es una variable de longitud.η
La concatenación de expresiones de palabras es una expresión de palabras.
Cada uno de es una variable de longitud. (Representan variables que pueden tomar cualquier número natural).
Cada uno de es una variable de longitud. (Estos representan la longitud de una palabra correspondiente).
Esto parece lo suficientemente amplio como para manejar muchos de los casos que vemos en los ejercicios de libros de texto. Por supuesto, puede sustituir cualquier otro método textual para especificar un idioma en forma algebraica, si tiene una mejor sugerencia.
Respuestas:
La respuesta es no. Decidir si una gramática libre de contexto dada genera un lenguaje regular es un problema indecidible.
Actualización . Di esta respuesta negativa a la pregunta general.
dado que los lenguajes sin contexto son soluciones de ecuaciones algebraicas en los lenguajes: vea el Capítulo II, Teoremas 1.4 y 1.5 en el libro de J. Berstel Transductions and Context-Free Languages .
Sin embargo, la misma pregunta es decidible para lenguajes deterministas libres de contexto, un resultado no trivial debido a Stearns [1] y mejorado por Valiant [2]:
[1] RE Stearns, una prueba de regularidad para máquinas pushdown, información y control 11 323- 340 (1967). DOI: 10.1016 / S0019-9958 (67) 90591-8.
[2] LG Valiant. Regularidad y problemas relacionados con los autómatas deterministas de empuje J. ACM 22 (1975), pp. 1-10.
Hay otro resultado positivo, más cercano a las especificaciones dadas en la segunda parte de la pregunta. Recuerde que los subconjuntos semilineales de son exactamente los conjuntos definibles en la aritmética de Presburger. También están los subconjuntos racionales de . En particular, un subconjunto de definido por inecuaciones lineales es racional. Ahora, dado un subconjunto racional de , es decidible si el lenguaje es regular. De hecho, se sabe [Ginsburg-Spanier] que es regular si y solo si es un subconjunto reconocible deNk Nk Nk R Nk
S. Ginsburg y EH Spanier., Semigrupos, fórmulas de Presburger e idiomas , Pacific J. Math. 16 (1966), 285-296.
S. Ginsburg y EH Spanier. Conjuntos regulares limitados , Proc. de la matemática estadounidense. Soc. 17 , 1043-1049 (1966).
Esto no resuelve la segunda parte de la pregunta, que podría ser indecidible debido a las variables de la palabra, pero da un fragmento razonable para comenzar.
fuente