¿Cómo puedo convertir la máquina Turing que reconoce el lenguaje

19

Según este artículo de Wikipedia , las gramáticas sin restricciones son equivalentes a las máquinas de Turing. El artículo señala que puedo convertir cualquier máquina de Turing en una gramática sin restricciones, pero solo muestra cómo convertir una gramática en una máquina de Turing.

¿Cómo puedo hacer eso y convertir la máquina de Turing que reconoce el lenguaje en una gramática sin restricciones? He intentado reemplazar las reglas de transición con reglas gramaticales, pero una máquina de Turing también puede tener muchas configuraciones diferentes de estados ...L

Ava Petrofsky
fuente

Respuestas:

9

Codificamos el contenido de la cinta de la máquina de Turing en forma de sentencias; Un conjunto especial de no terminales codifica el estado actual. Solo puede haber uno de ellos en forma de sentencia en cualquier momento, colocado a la derecha del símbolo al que apunta el TM actualmente.

La segunda idea crucial es que tenemos que revertir el proceso: los TM toman la palabra como entrada y la convierten a o 0 , o no terminan. La gramática, sin embargo, tiene que generar la palabra. Afortunadamente, las gramáticas son inherentemente no deterministas, por lo que podemos dejar que "adivine" de dónde vino el 1 aceptante ; entonces se pueden generar todas las palabras que hacen que la TM acepte.101

Sea el conjunto de estados no terminales; wlog deja que Q 0 sea ​​el estado inicial no terminal y Q FQ el conjunto de estados aceptables no terminales. Primero, necesitamos reglas de inicio que generen todas las configuraciones de aceptación posibles:Q={Q0,,Qk}Q0QFQ

S#1Qf#para todos .QfQF

Del mismo modo, terminamos cuando "alcanzamos" el estado inicial en la posición correcta, es decir, en el primer símbolo:

#aQ0#aaΣ

Traducir las transiciones de estado reales es sencillo:

aQcQ  for a,cΣ(a,Q,N)δ(c,Q)aQbacQ for a,b,cΣ(b,Q,L)δ(c,Q)abQcQb for a,b,cΣ(a,Q,R)δ(c,Q)

###d=#

#Q0Σ

Rafael
fuente