Decimos que una máquina de Turing es mortal si detiene para cada configuración inicial (en particular, el contenido de la cinta y el estado inicial pueden ser arbitrarios). ¿Cada lenguaje recursivo es reconocido por una máquina de Turing mortal? (es decir, si hay una TM que acepta , también hay una TM mortal que acepta )M L L
computability
Marcin Kotowski
fuente
fuente
Respuestas:
Aquí hay dos resultados citados en Charles E. Hughes "Indecidibilidad de la convergencia finita para los operadores de concatenación, inserción y shuffle acotado" :
Teorema 3 : La clase de máquinas Turing mortales es exactamente la clase de las máquinas Turing de tiempo de funcionamiento constante.
st para todas las configuraciones iniciales C , M se detiene en no más de s pasos }Co n s t T= { M∣ ∃ s C METRO s }
Así que creo que podemos derivar lo siguiente: dada una máquina de Turing mortal , que M ' , s sea el tiempo constante correspondiente TM y su tiempo de ejecución. El lenguaje reconocido por M sobre el alfabeto Σ = { 0 , 1 } es exactamente:METRO METRO′, s METRO Σ = { 0 , 1 }
Entonces, la clase de idiomas reconocidos por las máquinas mortales de Turing es un subconjunto apropiado de la clase de idiomas regulares. Por ejemplo, puede usar para engañar cada vez constante TM.L = { ( 0 | 1 )∗1∗}
Las cosas se ponen interesantes cuando intentamos decidir si una máquina de Turing es mortal porque tenemos que enfrentarnos con una cinta y estado iniciales arbitrarios (finitos).
Teorema 4 : el conjunto de máquinas mortales de Turing es recursivamente enumerable.
fuente
Creo que hay Tenemos que hacer para cada L y M que lo acepte de tal manera que todos sus movimientos se graben en una cinta y después de cada "paso principal" verifica si todos sus pasos hasta ese punto fueron realmente válidos. A continuación, presento un bosquejo sobre cómo se debe hacer una máquina de este tipo (que puede contener algunos errores menores, pero la idea principal debería estar bien).
Denote una máquina que acepta L por T. Ahora describimos M. Primero, copiamos x a una cinta de memoria separada. Luego, cada vez que T haga un movimiento, lo escribimos en esta cinta de memoria, después de x. Después de esto, copiamos todo el contenido de las cintas de T en algunas cintas de trabajo adicionales y verificamos si desde la configuración inicial T realmente alcanzará su estado actual después de los pasos grabados en la cinta de memoria. Si no, nos detenemos. Si es así, continuamos.
fuente