Estoy tratando de resolver los siguientes problemas:
Prueba de si los siguientes problemas son decidibles/indecidibles:
Soy bastante nuevo en el tema de la teoría de la computabilidad y mi intuición es la siguiente:
Decidible, ya que el número de estados podría establecerse de alguna manera mediante la codificación de la máquina de Turing (he leído algo sobre la codificación por un número de Gödel en línea, sin embargo, aún no hemos aprendido esto en mi conferencia).
y 3. son probablemente indecidibles. Traté de probar esto reduciendo el problema al problema de la detención en una cinta vacía, pero aún no obtuve la idea correcta.
Agradecería cualquier idea que me indique la dirección correcta...
Sugerencia para (2): Supongamos tiene estados Después pasos, la máquina se habrá detenido o...
(3) es de hecho indecidible. Aquí hay un boceto de prueba, por reducción del problema de detención:
Suponer es alguna máquina y queremos saber si se detiene en la cinta vacía. Entonces podemos, de manera sistemática, construir una máquina que hace lo siguiente:
Escribe una descripción de a la cinta
Simule la máquina cuya descripción está en la cinta hasta que se detenga. (Esto incluye técnicas de la máquina universal que, con suerte, sabrá cómo construir).
Borre todo el contenido de la cinta.
Una vez que se borre la cinta, vaya al paso 1 (es decir, el estado inicial de M).
Ahora si se detiene, entonces seguirá dando vueltas, haciendo todo una y otra vez, por lo que cada estado se cumplirá infinitamente muchas veces , lo cual es más grande que . Por otro lado si no se detiene, entonces los estados que implementan el paso 3 se ejecutarán cero veces, que es menos de 42.
Entonces, si tenemos un algoritmo que decide el problema (3), entonces aplicándolo a nos dirá si se detiene Y obviamente podemos escribir un programa que construya dado .
Donde esto se complica es en asegurarse de que todos los estados en
en realidad se verá durante una ejecución final de
. Puede ser que haya alguna característica de las máquinas de Turing que
en realidad no usa, tal vez nunca escribe un 1
en la cinta y se mueve hacia la izquierda mientras hace la transición a un estado cuyo número es un múltiplo de 17. Y si nuestra máquina universal tiene un estado que solo se ejerce cuando la máquina que se simula hace exactamente eso, entonces estamos en problemas.
Una salida sería, después de haber programado el simulador para el paso 2 de , para encontrar una máquina fija tal (a) cuando se inicia en una cinta vacía, también se detendrá en una cinta vacía, (b) simulando ejercita todos los estados del simulador particular que hemos escrito.
Entonces, para decidir si paradas, forma (dónde es una máquina que primero hace y luego pasa al primer estado de ) y pregunte si este tiene un estado que se visita como máximo 42 veces.
Con todo, esta prueba se siente más complicada de lo que debería ser. Quizás hay una construcción más simple que estoy pasando por alto.
1
, mover a la izquierda, retroceder, borrar el 1
, ....". Podemos construirlo iterativamente: en cada paso tienes un candidato
. Calcula cómo lo simula la máquina universal. Si se visitan todos los estados de la máquina universal, entonces hemos terminado. De lo contrario, elija un estado que no se visite, averigüe para qué sirve ese estado en primer lugar y arme una extensión para su candidato
que lo ejercerá. Enjuague y repita hasta que esté listo.Entonces, si cree que es indecidible , la reducción es del problema de detención al problema 2/3. El paso clave en esta prueba surge del hecho de que si los problemas 2/3 son realmente indecidibles, entonces puede tomar cualquier instancia del problema de detención y transferirla a una instancia del problema 2/3. Resuélvelo allí, lo que implica una solución al problema de detención original. Esta es la mejor manera en que puedo expresarlo sin revelar demasiada prueba.
hmakholm sobra a Monica
Eva