Decidabilidad de las lenguas de gramáticas y autómatas

16

Tenga en cuenta que esta es una pregunta relacionada con el estudio en un curso de CS en una universidad, NO es tarea y se puede encontrar aquí en el examen de otoño de 20112.

Aquí están las dos preguntas que estoy viendo en un examen anterior. Parecen estar relacionados, el primero:

Dejar

FINITECFG={<G>∣G is a Context Free Grammar with |L(G)|<}

Demuestre que es un lenguaje decidible. FINITECFG

y...

Dejar

FINITETM={<M>∣M is a Turing Machine with |L(M)|<}

Demuestre que es un lenguaje indecidible. FINITETM

Estoy un poco perdido sobre cómo abordar estos problemas, pero tengo algunas ideas que creo que pueden estar en la dirección correcta. Lo primero que sé es que el lenguaje , dondeAREX

AREX={<R,w>∣R is a regular expression with wL(R)}

es un lenguaje decidible (la prueba está en la Teoría de la computación de Michael Sipser , p. 168). La misma fuente también demuestra que una Gramática libre de contexto se puede convertir en una expresión regular, y viceversa. Por lo tanto, también debe ser decidible, ya que puede convertirse en una expresión regular. Esto, y el hecho de que es la ONU -decidable, parece estar relacionada con este problema.ACFGATM

Lo único que se me ocurre es pasar G a las máquinas de Turing para (después de convertir G a una expresión regular) y . Luego acepta si G lo hace y rechaza si G no. Como es indecidible, esto nunca sucederá. De alguna manera siento que estoy cometiendo un error aquí, pero no estoy seguro de qué es. ¿Podría alguien echarme una mano por favor? A T M A T MAREXATMATM

HermanoJack
fuente
55
"una gramática libre de contexto se puede convertir en una expresión regular y viceversa" Eso no es cierto (a menos que lo interprete como "existe un CFG que se puede convertir en una expresión regular", pero no creo que eso sea lo que usted significaba). Las gramáticas regulares se pueden convertir en expresiones regulares. No existe un algoritmo para convertir CFG en expresiones regulares por la sencilla razón de que la mayoría de los lenguajes libres de contexto (es decir, todos los lenguajes libres de contexto que no son también lenguajes regulares) no pueden describirse utilizando una expresión regular.
sepp2k

Respuestas:

9
  1. Convierta G a la forma Chomsky Normal . De esta manera, la única derivación vacía sería el símbolo de inicio que no aparece en ningún otro lado y, por lo tanto, si hay alguna producción que eventualmente pueda generarse, la gramática es infinita. Si no existe tal producción, cada símbolo solo podrá generar un conjunto finito de cadenas, y luego la gramática es finita. Por lo tanto, construya un gráfico dirigido donde cada producción sea un nodo y cada símbolo dentro de una producción sea un borde dirigido a ese símbolo. Si el gráfico tiene algún ciclo, el CFG es infinito, de lo contrario no lo es. Por lo tanto, una máquina de Turing para podría construirse haciendo exactamente eso, y luego F IFINITECFG es decidible.FINITECFG

  2. Suponga que es decidible. Digamos que H es una máquina de Turing que tiene alguna cadena como entrada y uso de sí mismo como una entrada a F I N I T E T H . Si F I N I T E T M devuelve verdadero (es decir, H solo acepta un lenguaje finito), entonces HFINITETMHFINITETMFINITETMHHacepta la entrada, lo que lleva a una contradicción ya que el conjunto de entrada es infinito (la longitud de la entrada no tiene límites, por lo que aceptar cualquier posible cadena como entrada significa aceptar un conjunto infinito de cadenas). Si devuelve falso (es decir , el lenguaje de H es infinito), entonces H rechaza la entrada, lo que significa que el lenguaje de H es finito porque no acepta ninguna entrada (es decir, su idioma está vacío), lo que lleva a una contradicción también. De esta manera, la suposición de que H existe conduce a la contradicción, y esta suposición se basa en la suposición de que F I N I TFINITETMHHHH es decidible. Entonces, por contradicción, tenemos que F I N I T E T M no es decidible.FINITETMFINITETM

La misma fuente también demuestra que una Gramática libre de contexto se puede convertir en una expresión regular, y viceversa.

Realmente dudo que Sipser diga eso, probablemente leíste mal o lo entendiste mal. Esto significaría que las gramáticas libres de contexto generan exactamente los mismos idiomas que las gramáticas lineales derechas. Esto es falso Las gramáticas lineales derechas que se generan son un subconjunto adecuado de las gramáticas sin contexto dp. Dicho esto, la forma en que trataste de usar idiomas regulares para responder las preguntas simplemente te lleva a ninguna parte.

Como puede ver arriba en mis pruebas, las dos preguntas son de hecho dos preguntas muy distintas y no relacionadas. Simplemente sucede que fueron redactados de manera similar.

Victor Stafusa
fuente
1
Tengo algunos problemas después de la prueba dos. OK, entonces pasas de H a G, ¿sí? Si G devuelve verdadero que H es finito, eso tiene sentido. Sin embargo, no entiendo que el conjunto de entrada sea infinito, ¿a qué entrada se refiere?
BrotherJack
1
@BrotherJack La entrada de puede ser de cualquier longitud, su longitud no tiene límites. Podría ser una cadena con solo un símbolo o podría ser una entrada de un millón de terabytes de longitud. De esta manera, las posibles entradas para H son un conjunto infinito porque podemos hacerlo arbitrariamente grande. HH
Victor Stafusa
1
OKAY. Eso parece tener sentido. ¿Sería exacto referirse a esa entrada como "cualquier posible cadena dentro del lenguaje de entrada H"?
BrotherJack
1
@BrotherJack: edité la respuesta para aclarar ese punto.
Victor Stafusa
1
Excelente explicación! Muchas gracias por tu tiempo.
BrotherJack
2

Otra forma de decidir es a través del lema de bombeo.FINITECFG

El lema de bombeo dice que cada CFL tiene un número N (que puede calcularse a partir de la gramática, o al menos un límite superior puede calcularse fácilmente), de modo que cualquier x L que sea más largo que N puede "bombearse ".LNxLN

Esto significa que si es finito, todas las palabras que L son más cortos que N .LLN

N2NLL

Sonó.
fuente