¿Podemos modificar la máquina de turing?

¡Podemos!

Hay muchas formas de modificarlo. Muchos de los más naturales dan como resultado modelos de cálculo que en realidad son equivalentes a la máquina de Turing estándar. Por ejemplo, podríamos hacer que la cinta sea “unilateral” (es decir, infinita en una dirección, pero con un punto de detención en la otra). O podríamos agregar dos cintas en lugar de una. O bien, permitimos “0”, “1” y “canguro” como símbolos en lugar de solo “0” y “1”. Todos estos modelos son equivalentes, lo que significa que pueden simularse entre sí, y el conjunto de problemas que pueden resolver son todos iguales.

Hay formas más interesantes de modificar las máquinas de Turing. Por ejemplo, es posible que haya escuchado que una máquina de Turing no puede resolver el problema de detención. Pero, podemos crear un modelo de cómputo en el que una máquina de Turing de otro modo normal tenga acceso a un oráculo al Problema de detención, una caja mágica que siempre devuelve la respuesta al Problema de detención.

Ahora, tenemos un nuevo modelo de cómputo, que es capaz de determinar si alguna máquina de Turing (ordinaria) se detiene.

(Por supuesto, probablemente no puedas simular tal cosa en la vida real. Oh, bueno).

Podemos crear una jerarquía completa de modelos de computación de esta manera, de máquinas con oráculos que resuelven el problema de detención en el modelo de computación de máquinas con oráculos … Vea el concepto de grado de Turing.

¿Podemos? Por supuesto. Podría cambiar la definición de un modelo de cálculo si quisiera. La verdadera pregunta es ¿por qué deberías? Por ejemplo, la mayoría, si no todos los modelos de cómputos con los que trabajamos, de alguna manera se reducen a un modelo de máquina de Turing.

Por ejemplo, vea Máquina de acceso aleatorio – Wikipedia. El modelo RAM es mucho más sensible y fácil de usar si está diseñando algoritmos secuenciales. Pero estos modelos no solo provienen de la sensación de cambiar el modelo de la Máquina Turing, sino de una necesidad o aplicación dentro de la teoría.

Ahora, otro ejemplo de modificación de la Máquina de Turing es introducir más cintas, esto a menudo se llama una máquina de Turing multitapa: Wikipedia. Todavía se puede demostrar que realizar esta modificación es computacionalmente equivalente a la máquina Turing original.

¡Espero que esto ayude!

En el modelo clásico de computación de Turing, no, la máquina es inmutable durante la ejecución del programa.

Sin embargo, es un ejercicio mostrar que una máquina de Turing que puede modificar sus propias instrucciones de forma determinista puede virtualizarse en una máquina de Turing que no puede (al igual que los programas LISP que reescriben su código en tiempo de ejecución todavía se compilan a partir de una base de código particular).