Estou lendo Sipser e acho difícil entender como é o processo. Se você me der k máquinas de Turing com fitas k, posso cuspir uma máquina de Turing equivalente com apenas uma fita. Um exemplo seria bom. Na verdade, um exemplo elaborado que mostra como passar da TM com fitas para uma com 1 fita é o que realmente estou procurando. Não consegui encontrar um até agora. Também não estou procurando nenhuma prova.
turing-machines
simulation
user678392
fonte
fonte
Respostas:
Uma resposta descaradamente copiada de mim mesma :
Uma máquina de Turing com várias fitas é basicamente a mesma que uma máquina com uma fita, exceto que temos uma função de transição estendida onde k é o número de fitas. Assim, em cada estado, a função de transição lê o conteúdo de cada fita, passa para um novo estado, (talvez) escreve algo em cada fita e move cada cabeça - como uma TM comum, exceto que agora temos mais coisas para ler, escrever e mexa-se.Q × Γk→ Q × Γk× { L , R }k k
Como sua pergunta sugere, essa máquina pode ser simulada por uma única fita TM. Melhor ainda, isso pode ser feito com apenas desaceleração quadrática (portanto, para classes polinomialmente fechadas, basta falar sobre máquinas de fita única).
A prova disso é um pouco envolvente e está facilmente disponível com uma simples pesquisa na web, então vou esboçar o mapeamento das teclas das fitas em uma única fita.k
A idéia básica é bem direta; basta adicionar alguns símbolos novos e acompanhar cada fita e seguir um após o outro. Em cada etapa do cálculo, podemos ter visitado apenas uma quantidade finita de qualquer uma das fitas; portanto, precisamos armazenar apenas tanta informação sobre cada fita. Assim, para cada , adicionamos um novo símbolo γ _ a Γ que indica onde a cabeça (para cada fita) está em qualquer ponto do cálculo. Também apresentamos um caractere separador # a Γ que indicará o início e o fim das fitas "virtuais". Entrada dada ω = ω 1 … ω nγ∈Γ γ–– Γ # Γ ω=ω1…ωn (podemos supor que, mesmo na máquina de fita múltipla, toda a entrada está na primeira fita - provando o que é um bom exercício) na máquina de fita múltipla, nossa máquina de fita única terá a entrada
Um exemplo (espero) simples:
Para construir a máquina de fita única combinada, precisamos adicionar novos símbolos ao alfabeto da fita:
Após o segundo passo:
É claro que essa é uma visão de alto nível do processo - não tentei explicar como construir os estados ou como cada fita simulada fica mais longa (para isso, você precisa de uma pequena rotina que verifique se encontrou o final da fita simulada e, em seguida, move tudo para a direita um passo adiante e aperta um novo espaço em branco - ou seja, ele apenas adiciona células de fita simuladas quando são necessárias).
fonte