Definições de máquinas de Turing são sempre explícitas sobre o símbolo em branco não fazer parte do alfabeto de entrada.
Eu me pergunto o que dá errado quando você faria parte do alfabeto de entrada, porque efetivamente o símbolo em branco já parece fazer parte da entrada.
Para explicar que 'parece' na última frase, considere o seguinte.
Na configuração padrão, um número infinito de símbolos em branco aparece à direita da entrada. Quando a cabeça da fita se move sobre o primeiro símbolo em branco, a computação pode simplesmente continuar, pois não precisa ser um estado de aceitação ou rejeição.
Agora, suponha que o cálculo escreva símbolos subsequentemente do alfabeto de entrada à direita do primeiro símbolo em branco e retorne à posição mais à esquerda enquanto também retorna ao estado inicial. 'Começaria de novo' com uma fita diferente. Efetivamente, agora começa com uma entrada diferente, na qual existem símbolos de entrada à direita do espaço em branco que não existiam antes. A entrada parece incluir efetivamente o símbolo em branco. O comportamento adicional da máquina agora também pode ser diferente: depois de encontrar o espaço em branco novamente, ele agora encontrará símbolos diferentes à direita.
Supondo que esse cenário seja realmente possível, por que você não consideraria o símbolo em branco como parte do alfabeto de entrada e por que não permitiria incluí-lo como parte da entrada 'inicial'?
Talvez seja apenas uma maneira de definir a entrada de modo que nem sempre seja infinita?
fonte
Respostas:
O principal motivo é que ele permite que a máquina detecte o final de sua entrada: é (o caractere anterior) o primeiro espaço em branco. Se você permitir espaços em branco na entrada, a máquina nunca poderá saber se poderá encontrar mais entradas digitalizando mais para a direita. Obviamente, você pode resolver isso tendo um caractere especial "final de entrada", mas depois insistindo para que isso não apareça na entrada, para que você tenha mudado o problema para um nível mais profundo.
Também facilita muito a especificação das condições iniciais: a entrada é a seção não em branco da fita inicial, que deve ser finita e contígua. E se você quiser que um caractere em branco faça parte do alfabeto de entrada, sempre poderá adicionar um caractere extra (chame-o de "espaço" ou algo assim) e fazer com que a máquina se comporte da maneira que desejar quando a vir.
fonte
Você pode definir o símbolo em branco para fazer parte do alfabeto. O problema é que, se uma máquina de Turing com a entrada b010010b (em que b significa em branco ) nunca passa do segundo b, a máquina se comportará exatamente da mesma maneira em todas as entradas que começam com b010010b.
Essas máquinas de Turing são chamadas de máquinas de Turing com prefixo e são muito úteis para provar alguns teoremas sobre a complexidade de Kolmogorov.
fonte
Resposta muito curta: o alfabeto da fita é o conjunto de símbolos que podem aparecer na fita e inclui o símbolo em branco. O alfabeto de entrada é o conjunto de símbolos que podem aparecer na entrada inicial e não inclui o símbolo em branco. O alfabeto principal com o qual a máquina se importa é o alfabeto da fita: ele ainda precisa de regras para o que fazer quando vê um espaço em branco, por exemplo.
Essa distinção é importante, como já foi dito, para que a máquina possa saber onde termina sua entrada. É o mesmo motivo pelo qual você não pode (útil) colocar um caractere zero no meio de uma string em C: o caractere zero é reservado para significar "o último caractere diferente de zero antes que este seja o final dos dados, então quando você vê isso, está pronto ". Se você precisar esperar zero caracteres no meio da string, a escrita
strlen
fica muito mais difícil.fonte