Las definiciones de las máquinas de Turing son siempre explícitas sobre el símbolo en blanco que no forma parte del alfabeto de entrada.
Me pregunto qué sale mal cuando lo harías parte del alfabeto de entrada, porque efectivamente el símbolo en blanco ya parece ser parte de la entrada.
Para explicar que "parece" en la última oración, considere lo siguiente.
En la configuración predeterminada, aparece un número infinito de símbolos en blanco a la derecha de la entrada. Cuando el cabezal de la cinta se mueve sobre el primer símbolo en blanco, el cálculo puede continuar, ya que no necesita ser un estado de aceptación o rechazo.
Ahora suponga que el cálculo posteriormente escribiría símbolos del alfabeto de entrada a la derecha de ese primer símbolo en blanco, luego volvería a la posición más a la izquierda y al mismo tiempo volvería al estado inicial. Entonces 'comenzaría de nuevo' con una cinta diferente. Efectivamente, ahora comienza con una entrada diferente, donde hay símbolos de entrada a la derecha del espacio en blanco que no estaban allí antes. La entrada parece incluir efectivamente el símbolo en blanco. El comportamiento adicional de la máquina ahora también podría ser diferente: después de encontrar el espacio en blanco nuevamente, ahora encontrará diferentes símbolos a la derecha.
Suponiendo que este escenario sea realmente posible, ¿por qué no consideraría que el símbolo en blanco es parte del alfabeto de entrada y por qué no permitiría incluirlo como parte de la entrada 'inicial'?
¿Quizás es solo una forma de definir la entrada de manera que no siempre sea infinita?
fuente
Respuestas:
La razón principal es que permite que la máquina detecte el final de su entrada: es (el carácter anterior) el primer espacio en blanco. Si permitía espacios en blanco en la entrada, la máquina nunca podría saber si podría encontrar más entradas escaneando más a la derecha. Por supuesto, puede resolver eso teniendo un carácter especial de "fin de entrada", pero luego debe insistir en que eso no puede aparecer en la entrada, por lo que acaba de cambiar el problema un nivel más profundo.
También hace que las condiciones iniciales sean mucho más fáciles de especificar: la entrada es la sección no en blanco de la cinta inicial, que debe ser finita y contigua. Y si desea que un carácter en blanco forme parte del alfabeto de entrada, siempre puede agregar un carácter adicional (llámelo "espacio" o algo así) y haga que la máquina se comporte como quiera cuando lo vea.
fuente
Puede definir el símbolo en blanco como parte del alfabeto. El problema con eso es que si una máquina de Turing con entrada b010010b (donde b significa en blanco ) nunca lee más allá de la segunda b, entonces la máquina se comportará exactamente de la misma manera en todas las entradas que comienzan con b010010b.
Estas máquinas de Turing se denominan máquinas de Turing con prefijo , y son muy útiles para probar algunos teoremas sobre la complejidad de Kolmogorov.
fuente
Respuesta muy breve: el alfabeto de la cinta es el conjunto de símbolos que pueden aparecer en la cinta e incluye el símbolo en blanco. El alfabeto de entrada es el conjunto de símbolos que pueden aparecer en la entrada inicial , y no incluye el símbolo en blanco. El alfabeto principal que le importa a la máquina es el alfabeto de cinta: todavía necesita reglas sobre qué hacer cuando ve un espacio en blanco, por ejemplo.
Esta distinción es importante, como han dicho otros, para que la máquina pueda saber dónde termina su entrada. Es la misma razón por la que no puede (útilmente) poner un carácter cero en el medio de una cadena en C: el carácter cero está reservado para significar "el último carácter distinto de cero antes de que este sea el final de los datos, entonces cuando veas esto, ya terminaste ". Si necesita esperar cero caracteres en el medio de la cadena, la escritura se
strlen
vuelve mucho más difícil.fuente