Les proporciona una respuesta concisa y correcta: las definiciones matemáticas son lo más concisas posible, e incluir explícitamente una cinta infinita en la definición de una máquina de Turing haría que su definición fuera mucho menos concisa, por lo que no lo hacemos.
Esto no responde la pregunta: ¿por qué ? ¿Cómo puede la definición excluir la cinta infinita cuando la necesitamos?
La respuesta: nosotros no. En cierto sentido, las máquinas de Turing en realidad no requieren cintas infinitas, y su definición lo deja claro.
Por definición, el movimiento de una máquina de Turing lleva la máquina de una configuración a otra; una configuración incluye una cadena finita , que consideramos como un fragmento finito de cinta escrita. Cada movimiento mueve el cabezal de la cinta una posición o sobrescribe el símbolo debajo del cabezal de la cinta. Sin embargo, y esto es esencial para su funcionamiento:
- cada vez que nos alejamos de esa cuerda finita, asumimos que el símbolo debajo del cabezal de la cinta es , el símbolo en blanco.b
- podemos hacerlo infinitamente a menudo .
Entonces, para que las máquinas Turing arbitrarias funcionen indefinidamente, se requiere un suministro infinito de celdas de cinta en blanco en ambos extremos. Mientras tanto, en cualquier punto, su configuración, que describe la extensión de la cinta en la que ha escrito, siempre es finita: después de pasos, el cabezal de la cinta nunca puede haberse desviado más de celdas desde su punto de partida.nn
Una forma de reformular esto es decir: la máquina funciona con una cinta infinita, completamente llena de espacios en blanco, excepto por un fragmento finito en el que se encuentra la cabeza de la cinta. Esto es lo que dicen la mayoría de las explicaciones.
Otra forma de reformular esto es decir: la máquina funciona con una cinta finita, extendida con espacios en blanco cada vez que su cabeza se separa de la cinta en cada extremo.
Ambas son formas válidas de conceptualizar cómo funciona la máquina: en ambos casos, si realmente tuviera una máquina que funcionara así, implementaría correctamente una máquina de Turing.
Si todo lo que le interesa es enseñar a los estudiantes cómo funcionan las máquinas de Turing, probablemente no importa qué conceptualización elija.
Sin embargo, creo que la primera conceptualización es un error, por dos razones:
- No es realista . En realidad no podemos construir una máquina con una cinta infinita. Nosotros podemos construir una máquina con una cinta finita, renovable a petición.
- Es contraintuitivo. No pensamos que las máquinas que realizan tareas arbitrariamente a menudo contengan una cantidad infinita de recursos. Por ejemplo, no pensamos que una fotocopiadora contenga una cantidad infinita de papel de copia. Las máquinas de Turing modelan la actividad de la informática. Modelan lo que sucedería si reemplazáramos una computadora (que, en el momento de su invención, era una mujer que realizaba cálculos en papel) con una máquina capaz de realizar cálculos programables arbitrarios. No pensamos que esa mujer contenga una cantidad infinita de papel. Más bien, suponemos que se le proporcionará cualquier cantidad de papel que necesite, y consideramos que no hacerlo es una falla del medio ambiente, en lugar de decir que tal mujer no puede existir. ¿Por qué no hacer lo mismo con la máquina?
- Invita a conclusiones engañosas. He visto esto mucho. Por ejemplo:
- La gente dice que las máquinas de Turing en realidad no se pueden construir, mientras que las máquinas de estados finitos sí. Bueno, no podemos construir máquinas arbitrarias de estados finitos más de lo que podemos suministrar cantidades arbitrarias de cinta a una máquina Turing.
- La gente dice que las máquinas de Turing no modelan las computadoras correctamente, mientras que las máquinas de estados finitos sí. Esto sirve para hacer un punto importante: si todo lo que nos interesa es usar una máquina para decidir los idiomas de entrada, entonces una computadora que opera solo en su almacenamiento interno (fijo) puede implementar completamente cualquier máquina de estado finito hasta cierto tamaño, mientras no puede implementar completamente la mayoría de las máquinas de Turing, ya que se quedará sin almacenamiento interno para muchas de ellas. Sin embargo, esto a menudo se generaliza diciendo: las computadoras son máquinas de estados finitos, lo cual es engañoso:
- No pinta una imagen realista de la mayoría de la programación de computadoras. De hecho, la programación del flujo de datos se basa en máquinas de estados finitos, pero la programación imperativa tradicional no lo es; utiliza programas que están mucho más cerca de las instancias de la máquina Turing.
- En la práctica, las computadoras también interactúan con fuentes externas de entrada, salida y almacenamiento que no tienen un tamaño fijo.
- Las máquinas de Turing no deben modelar computadoras en primer lugar; modelan la computación arbitraria.
En resumen: la idea de que las máquinas de Turing utilicen o contengan una cinta infinita sirve para enfatizar un punto técnico importante, pero no es necesariamente la forma más intuitiva de pensar acerca de las máquinas de Turing, e invita a ciertas conclusiones incorrectas. Usar con precaución.