Máquina de Turing: Conceitos e Computabilidade
Classificado em Computação
Escrito em em português com um tamanho de 4,47 KB.
Máquina de Turing
Os componentes da Máquina de Turing são: Fita, Cabeça de Leitura e Gravação, Unidade de Controle, Função de Transição.
Operação da Máquina
Para uma palavra w, aplicar sucessivamente a função programa, a partir de q0 e estando a cabeça de leitura na posição mais à esquerda da fita, até ocorrer uma condição de parada.
Condições de Parada
Estado final: A máquina assume um estado final, a máquina para e a palavra de entrada é aceita.
Função indefinida: A função programa é indefinida para o argumento; a máquina para e a palavra de entrada é rejeitada.
Movimento inválido: O movimento à esquerda quando a cabeça de leitura já está na posição mais à esquerda; a máquina para e a palavra de entrada é rejeitada.
Modelo Formal
Uma Máquina de Turing é uma 8-tupla
M = (A, Q, P, q0, F, V, b, *)
Onde
A: Alfabeto de símbolos de entrada
Q: Conjunto de estados possíveis da máquina
P: Função de Transição
q0: Estado inicial da máquina
F: Conjunto de Estados Finais
V: Alfabeto auxiliar
b: branco
*: início da fita
Computação da Máquina de Turing
(q0, [*aaabbb]) ├
Reconhecimento de Linguagens
L(M) = { w | M ao processar w Є A*, pára em um estado qf Є F }
L(M) U R(M) U Loop(M) = A *
L(M) ∩ R(M) ∩ U Loop(M) = Ø
Uma linguagem aceita por uma Máquina de Turing é dita “Linguagem Enumerável Recursivamente”
As linguagens para as quais existe uma máquina de Turing que sempre pára para aceitar ou rejeitar são chamadas “Linguagens Recursivas”.
Computabilidade de Funções
Problemas Solucionáveis: existe um algoritmo, para uma máquina universal, que soluciona o problema tal que sempre pára para qualquer entrada, com uma resposta afirmativa ou negativa.
Problemas Não-solucionáveis: não existe um algoritmo, para uma máquina universal, que solucione o problema e sempre pare para qualquer entrada.
Problemas Computáveis: existe um algoritmo, para uma máquina universal, que para quando a resposta é afirmativa. Entretanto, o algoritmo pode permanecer em loop infinito quando a resposta deveria ser negativa.
Problemas Não-computáveis: não existe um algoritmo, para uma máquina universal, que solucione o problema parando sempre que a resposta deveria ser afirmativa.
Reconhecimento de Linguagens X Computabilidade
A linguagem associada a um problema é o conjunto de todas as palavras para as quais o problema deve responder afirmativamente.
Se a linguagem associada a um problema é enumerável recursivamente, então o problema é computável.
Os problemas associados a linguagens recursivas são solucionáveis.
Princípio da Redução
Para se classificar problemas de decisão quanto a sua Classe de Computabilidade, basta classificar a classe da linguagem correspondente.
A determinação da classe de uma linguagem pode ser feita com base no conhecimento da classe de outra linguagem a ela relacionada. Pelo teorema da redução, sabe-se que se existe uma redução de uma linguagem L1 para uma linguagem L2, então:
a) Se L2 é recursiva, então L1 é recursiva;
b) Se L2 é enumerável recursivamente, então L1 é enumerável recursivamente.
Obs: O uso da seguinte equivalência lógica: p -> q <-> ~q -> ~p , possibilita outras inferências baseadas nesse mesmo teorema.