Como he estudiado, decidir la regularidad de los lenguajes libres de contexto es indecidible.
Sin embargo, podemos probar la regularidad utilizando el teorema de Myhill-Nerode que proporciona una condición necesaria y suficiente. Entonces el problema debería ser decidible.
¿Dónde está mi error?
Respuestas:
Myhill – Nerode proporciona una caracterización de los idiomas regulares, pero eso no es suficiente para mostrar que el problema es decidible. "Decidible" significa que hay un algoritmo (más formalmente, una máquina de Turing) que termina para cada entrada y, por supuesto, siempre da la respuesta correcta. Entonces, en este caso, necesitaría dar un algoritmo que, dado un lenguaje como entrada, determina si la relación Myhill-Nerode tiene un número finito de clases de equivalencia. Resulta que esto no se puede hacer para lenguajes libres de contexto; detalles en su libro de texto de idiomas formales favorito.
Si desea decidir si un lenguaje general es regular, una sutileza adicional es que debe tener cuidado con la entrada de su algoritmo. La entrada debe ser una cadena finita; de lo contrario, incluso solo leer la entrada sería un algoritmo sin terminación. En el caso de los lenguajes sin contexto, puede usar una gramática como representación finita de un lenguaje infinito. Para idiomas más generales, necesitarías ... bueno, algo más general. Sin embargo, en última instancia, si quieres lidiar con todos los idiomas, estás condenado. Sobre cualquier alfabeto finito, hay innumerables idiomas pero solo contablemente muchas cadenas finitas. Eso significa que no puedes describir todos los idiomas usando cadenas finitas. 1Por lo tanto, intentar escribir un algoritmo para determinar si los lenguajes arbitrarios dados como entrada son regulares en realidad falla antes de que comience. No es solo que no puedas escribir el algoritmo: ¡ni siquiera puedes escribir la entrada!
Tenga en cuenta que esto no significa que usted, un ser humano, no pueda usar Myhill – Nerode para determinar si los idiomas son regulares. Sólo significa que no se puede escribir un conjunto de instrucciones precisas para contar conmigo cómo hacerlo. En algún momento, cualquier conjunto de instrucciones de este tipo tendría que decir algo como "Y luego jugar con eso para ver qué funciona" o "A partir de ahí, debes resolverlo por tu cuenta".
fuente