Por desgracia, tu problema es indecidible. El enfoque con el que me topé (¡que podría ser excesivo, por lo que cualquiera que tenga un enfoque más conveniente debería dar un paso adelante!) Primero usa un argumento diagonal para demostrar que hay un CSL unario Xque no es regular (en contraste con el resultado positivo para CFL unarias), y luego se reduce del problema de detención para las máquinas de Turing, dado un TM METRO , construyendo un CSG sol que simula METRO en una longitud de cinta más corta que la cadena de análisis w , reconociendo X si METRO detiene sin sobrepasar sus límites y no analizar de otra manera, para que sol analice con éxito todo w ∈ Xque son lo suficientemente largos si METRO detiene (de modo que L ( G ) difiere de X en solo un número finito de cadenas y, por lo tanto, no puede ser regular), de lo contrario, sol reconoce el lenguaje vacío (que es claramente regular).
La clave de este enfoque es la observación de que los CSG no solo se ocupan de cuestiones gramaticales como la estructura de las frases; de hecho, las secuencias de derivación de CSG pueden llevar a cabo cálculos arbitrarios no deterministas limitados por el espacio (de hecho, hay P S P A C ECSL completos) antes de llegar a la tarea de alinearse con la cadena de análisis. Esto se observa más fácilmente a través de conversiones estándar entre CSG y gramáticas monotónicas (que continúa funcionando cuando se restringe a alfabetos unarios), y el uso de producciones monotónicas simples para simular transiciones de máquina de Turing en cadenas de derivación que representan etapas en un historial de cómputo. A lo largo de esta respuesta, voy a suponer que el lector puede intuir la mayoría de los detalles cuando se requiere un CSG para simular un cálculo dado. (Supongo que el autor de la pregunta se siente cómodo con todo esto, pero lo revisaré por completo. Sin embargo, no dude en solicitar una aclaración en los comentarios).
En primer lugar, necesitamos nuestro CSG unario no regular. ( EDITAR: entonces, esto fue excesivo: las CSL unarias no regulares se pueden exhibir fácilmente, por ejemplo, a través del lema de bombeo en cualquier idioma que exhiba la no regularidad más básica. Vea los comentarios para ver ejemplos. En retrospectiva, use un argumento diagonal fue como llevar una cabeza nuclear a una pelea con cuchillos. Examina esta construcción si tienes curiosidad, de lo contrario, salta a la reducción).
Deje ser una enumeración de DFA sobre el alfabeto { 1 } , de modo que el número de estados en D i aumente en i . Describimos un CSG G X en términos de su comportamiento al analizar la cadena 1 n ∈ { 1 } ∗ :re1, D2, . . .{ 1 }reyoyosolX1norte∈ { 1 }∗
- No determinista generar una cadena de no terminales "en blanco", que consideramos como la "cinta". Uno de los no terminales en blanco debe ser un no terminal separado "en blanco + cabeza de lectura-escritura + estado de inicio". Si la cadena de análisis no es 1 n, entonces esta derivación terminará fallando. Describimos el resto del proceso en términos del cálculo determinista simulado por la única derivación posible.norte1norte
- Imprima en la cinta una codificación de seguida del número i en binario, donde se elige i = n - c y c para que siempre tengamos suficiente espacio en nuestra cinta para hacer lo que necesitamos. (Esto es posible ya que el espacio requerido para codificar tanto D i como i crece logarítmicamente en i ).reyoyoi = n - cCreyoyoyo
- Evaluar en la entrada 1 i . Esto no requiere una cinta representativa de D i : puede almacenar un solo estado, que cambia de acuerdo con las transiciones de D i a medida que disminuye i .reyo1yoreyoreyoyo
- Si rechaza 1 i , sobrescriba toda la cinta con no terminales que producen 1 . De lo contrario fallar.reyo 1yo1
Tomamos . Claramente X ≠ L ( D i ) para cualquier i , ya que 1 i + c ∈ X ⇔ 1 i + c ∉ L ( D i ) .X= L ( GX)X≠ L ( Dyo)yo1i + c∈ X⇔ 1i + c∉ L ( Dyo)
El siguiente paso es diseñar una reducción del problema de detención al problema del autor de la pregunta. (Si omitió la sección anterior, deje que sea una CSL unaria arbitraria no regular generada por CSG G X ).XsolX
Sea una TM arbitraria. Convertimos M en un CSG G que se comporta de la siguiente manera en la cadena de análisis 1 n :METROMETROsol1norte
- Genere espacios no terminales en blanco, el más a la izquierda es el espacio en blanco separado + cabezal de lectura-escritura no terminal, y también genere un no límite "límite" en cada lado. Nuevamente, si generamos un número incorrecto de no terminales, entonces fallamos.n - 2
- Simule en el espacio entre los límites no terminales. Si M alguna vez cambia a uno de los estados límite, terminamos la simulación y asumimos que M nunca se detiene.METROMETROMETRO
- Si se detiene, se comportan como G X . Si tuviéramos que terminar la simulación, entonces fallar.METROsolX
Tenga en cuenta que si logra ejecutarse para siempre dentro de los límites, entonces G nunca puede generar una cadena de análisis y fallará. Si M se detiene, entonces hay una cierta cantidad de espacio n que es suficiente para contener el cálculo completo de M , por lo tanto, G analiza 1 m siempre que m ≥ n + 2 y 1 m ∈ X , y por lo tanto X es la unión de L ( G ) y un lenguaje finito, de donde L ( G )METROsolMETROnorteMETROsol1metrom ≥ n + 21metro∈ XXL ( G )L ( G )No es regular. Por otro lado, si nunca se detiene, entonces L ( G ) = ∅ es claramente regular.ML(G)=∅
Un algoritmo para decidir si es regular o no determinaría si M se detiene o no en una cinta en blanco, lo cual es indecidible. Se sigue que el problema del autor de la pregunta es indecidible.L(G)M