Escolar Documentos
Profissional Documentos
Cultura Documentos
Máquinas de Turing
Definição
O cabeçote de leitura/escrita pode ler o símbolo que está na célula atual da fita,
escrever um novo símbolo na célula atual da fita, ou mover o cabeçote para a
esquerda ou para a direita. A tabela de transição especifica o que a máquina
deve fazer em cada estado, com base no símbolo que está na célula atual da
fita.
Linguagens e Máquinas de Turing
Para reconhecer uma linguagem, uma máquina de Turing começa com a fita
vazia. Ela então lê a string de entrada da fita, uma letra de cada vez. Em cada
passo, a máquina usa sua tabela de transição para determinar o que fazer. Se a
máquina chega a um estado final enquanto lê a string de entrada, então a string
é reconhecida pela máquina.
Estados: q0, q1
Alfabeto: {0, 1}
Fita: infinita
Cabeça: inicializa na posição 0 da fita
Tabela de transição:
q0 | 0 | q1, 1, R
q1 | 1 | q1, 0, R
Esta máquina começa no estado q0. Se ela lê um "0" na posição atual da fita,
ela move o cabeçote para a direita e muda para o estado q1. Se ela lê um "1" na
posição atual da fita, ela também move o cabeçote para a direita e muda para o
estado q1. Se ela chega ao fim da fita, ela está no estado q1.
Portanto, esta máquina reconhece todas as strings que começam com "0" e
terminam com "1".
Tese de Church-Turing
A tese de Church-Turing afirma que qualquer cálculo que possa ser realizado por
um computador real também pode ser realizado por uma máquina de Turing.
Variantes e Extensões
Por exemplo, máquinas de Turing com múltiplas fitas podem ser usadas para
representar cálculos que envolvem múltiplas variáveis. Máquinas de Turing com
memória ilimitada podem ser usadas para representar cálculos que envolvem
um número infinito de passos. Máquinas de Turing com tempo ilimitado podem
ser usadas para representar cálculos que levam um tempo infinito para serem
concluídos.
Máquina de Turing para somar dois números: Esta máquina pode ser usada para
somar dois números inteiros representados como strings de dígitos binários. A
máquina começa com os dois números na fita, um após o outro. Em seguida, ela
usa sua tabela de transição para adicionar os dois números, um dígito de cada
vez.
Máquina de Turing para gerar números primos: Esta máquina pode ser usada
para gerar números primos, que são números que só têm dois divisores: 1 e eles
mesmos. A máquina começa com um número na fita. Em seguida, ela usa sua
tabela de transição para verificar se o número é primo. Se o número for primo, a
máquina o escreve na fita. Se o número não for primo, a máquina move o
cabeçote para a direita e tenta o próximo número.
q0 | 0 | q0
q0 | 1 | q1
q1 | 0 | q1
q1 | 1 | q0
Este autômato finito reconhece a linguagem das strings que terminam em "0".
Estados: q0, q1
Símbolos de entrada: 0, 1
Fita: infinita
Cabeça: inicializa na posição 0 da fita
Tabela de transição:
q0 | 0 | q0, 0, R
q0 | 1 | q1, 1, R
q1 | 0 | q1, 0, R
q1 | 1 | q0, 0, R
Esta máquina de Turing começa no estado q0. Se ela lê um "0" na posição atual
da fita, ela move o cabeçote para a direita e permanece no estado q0. Se ela lê
um "1" na posição atual da fita, ela move o cabeçote para a direita e muda para
o estado q1. Se ela chega ao fim da fita e está no estado q1, então ela aceita a
string.
QUESTÕES: