¿El conjunto de máquinas de Turing que se detiene en un máximo de 50 pasos en todas las entradas es decidible?

19

Deje . Necesito decidir si F es decidible o recursivamente enumerable. Creo que es decidible, pero no sé cómo demostrarlo.F={M:M is a TM which stops for every input in at most 50 steps}

Mis pensamientos

Esta parte de "50 pasos" convierte inmediatamente el signo R para mí. Si fuera por una entrada específica, sería decidible. Sin embargo, aquí está para cada entrada. Verificarlo por entradas infinitas me hace pensar que el problema es co-RE , es decir , su complemento es aceptable.

Tal vez, puedo verificar las configuraciones y ver que todas las configuraciones después de 50 pasos no conducen a aceptar el estado. ¿Cómo hago eso?

Jozef
fuente

Respuestas:

21

Consideremos el problema más general de las máquinas que se detienen después de, como máximo, pasos, para algunos . (La siguiente es una simplificación sustancial de una versión anterior de esta respuesta, pero es efectivamente equivalente).NN1

Como señala swegi en una respuesta anterior, si la máquina se detiene después de como máximo N pasos, entonces solo las celdas 0,1,,N1 en la cinta son significativas. Entonces es suficiente simular la máquina M en todas las cadenas de entrada de la forma xΣN , de las cuales hay un número finito.

  • Si alguna de estas simulaciones no puede entrar en un estado de detención mediante Nthtransición, esto indica que cualquier cadena de entrada que comience con x es una para la cual la máquina no se detiene dentro de los primeros N pasos.
  • Si todas estas simulaciones se detienen contransición, entonces detiene dentro de pasos en todas las entradas de cualquier longitud (de las cuales la subcadena de longitud es en todo lo que actúa).NthMNN
Niel de Beaudrap
fuente
Y- ¿Asumo que tal que su longitud es mayor que se rechaza automáticamente? xN
Jozef
¿Por qué no puede saltar más allá de la celda N dentro de los N pasos de la informática?
Jozef
@Jozef: las simulaciones simplemente iterar a través de todas las posibles cadenas de entrada de longitud N . Podría iterar a través de más cadenas, pero no aprenderá nada más, porque de todos modos solo importan los primeros N símbolos. La razón por la que no puede ir más allá de las celdas N es porque las máquinas de Turing (o la definición estándar de ellas de todos modos) solo mueven una celda por paso.
Niel de Beaudrap
Bien, lo tengo. así que solo te importan los primeros N símbolos de cada palabra, así verificas todas las combinaciones de ellos. ¿Por qué eliminó la descripción de las configuraciones?
Jozef
Todavía es visible si nos fijamos en las ediciones anteriores. Lo revisé a esto porque mientras que la otra respuesta fue tal vez interesante, mucho de lo que lo hizo "interesante" sólo sirvió para ocultar el hecho de que el procedimiento de decisión es ni más ni menos que simula en todas las posibles entradas de longitud . Pensé que era mejor revisar la respuesta a algo mucho más directo, y que básicamente llegó a la raíz de lo que hace que el problema sea decidible. NMN
Niel de Beaudrap
4

Si detiene en no más de 50 pasos, las posiciones que puede alcanzar en la cinta normalmente infinita son limitadas. Así, la cinta infinita puede ser simulada por una finita. Esto significa que la cinta puede ser simulada por un autómata finito. De ello se deduce que una máquina de turing que se detiene en no más de 50 pasos es similar a un autómata finito .M M M MMMM

Sea el conjunto de estados de , el conjunto de estados de aceptación y el alfabeto. Luego construimos el conjunto de estados de siguiente manera: donde es la posición del cabezal de lectura / escritura sobre la cinta. Podemos restringir la posición a porque el número de pasos informáticos permitidos limita el número de posiciones alcanzables.M F Q Γ Q ' M ' Q ' = { n , q , s , p , un QMFQΓQMp { - 50 , . . . , 50 }Q={n,q,s,p,a|n{0,...,50}qQ,sΓ,p{50,...,50},aqF}p{-50,...,50}

Tener un estado del autómata finito significa que estamos en el estado del autómata original, con en la cinta en la posición donde también el cabezal de lectura / escritura está colocado, después de que el -ésimo paso de cálculo. El estado es aceptable si .M ' q s p n un t r u enorte,q,s,pag,unMETROqspagnorteuntrtumi

Transformar la relación de transición de una máquina de hormigón de turing es un poco más de trabajo, pero no es necesario para la pregunta original, ya que es suficiente para mostrar que el espacio de estado es finito (y, por lo tanto, solo podemos probar cada entrada con una longitud de 50 como máximo) símbolos en cada autómata). La idea es construir una nueva relación de transición que vaya desde un estado a un estado en el -ésimo de computación paso si y sólo si la transición estaba en la relación de transición inicial.n + 1 , q ' , s ' , p ' , una 'n q , s , p q ' , s ' , p 'norte,q,s,pag,unnorte+1,q,s,pag,unnorteq,s,pagq,s,pag

swegi
fuente
¿Cómo simula el almacenamiento en la cinta, es decir , la capacidad de volver a visitar los símbolos que ya ha leído en un autómata finito?
Niel de Beaudrap
@NieldeBeaudrap: enumera todo el espacio de estado, es decir, realiza una comprobación de modelo de la cinta finita y el autómata de control de la máquina de turing.
swegi
1
Dado que el OP hace preguntas básicas de computabilidad para las máquinas de Turing, es posible que desee descomprimir ese boceto en algo más completo. (Nunca antes había escuchado la frase "comprobación de modelo" en un contexto computacional). En contexto, normalmente supondría que por 'autómata finito' significaría un DFA o similar a menos que especifique lo contrario, y no me queda claro qué correspondería a la entrada del DFA en tal construcción. Si solo quiere decir un gráfico que representa posibles trayectorias de la TM, entonces estoy de acuerdo.
Niel de Beaudrap
Con el modelo que verifica la parte finita de la cinta, básicamente me refiero a lo que ha escrito en su respuesta: simplemente pruebe cada entrada de tamaño como máximo 50 y verifique si se alcanza un estado de aceptación.
swegi
1
Desearía que la gente dejara de propagar el mito de que una cinta de máquina de Turing debe ser infinita. No lo hace: puede ser finito siempre que se extienda según sea necesario.
reinierpost