Introdução à máquina de Turing
Uma Máquina de Turing é um dispositivo de aceitação que aceita as linguagens (conjunto recursivamente enumerável) geradas por gramáticas do tipo 0. Foi inventado em 1936 por Alan Turing.
Definição
Uma Máquina de Turing (TM) é um modelo matemático que consiste em uma fita de comprimento infinito dividida em células nas quais a entrada é dada. Consiste em uma cabeça que lê a fita de entrada. Um registro de estado armazena o estado da máquina de Turing. Depois de ler um símbolo de entrada, ele é substituído por outro símbolo, seu estado interno é alterado e ele se move de uma célula para a direita ou esquerda. Se a TM atinge o estado final, a string de entrada é aceita, caso contrário, rejeitada.
A TM pode ser formalmente descrita como uma 7-tupla (Q, X, ∑, δ, q 0 , B, F) onde -
Q é um conjunto finito de estados
X é o alfabeto da fita
∑ é o alfabeto de entrada
δé uma função de transição; δ: Q × X → Q × X × {Left_shift, Right_shift}.
q0 é o estado inicial
B é o símbolo em branco
F é o conjunto de estados finais
Comparação com o autômato anterior
A tabela a seguir mostra uma comparação de como uma máquina de Turing difere do Autômato Finito e do Autômato Pushdown.
Máquina | Estrutura de dados da pilha | Determinístico? |
---|---|---|
Autômato Finito | N / D | sim |
Pushdown Automaton | Último a entrar, primeiro a sair (UEPS) | Não |
Máquina de Turing | Fita infinita | sim |
Exemplo de máquina de Turing
Máquina de Turing M = (Q, X, ∑, δ, q 0 , B, F) com
- Q = {q 0 , q 1 , q 2 , q f }
- X = {a, b}
- ∑ = {1}
- q 0 = {q 0 }
- B = símbolo em branco
- F = {q f }
δ é dado por -
Símbolo do alfabeto de fita | Estado Atual 'q 0 ' | Estado Atual 'q 1 ' | Estado Atual 'q 2 ' |
---|---|---|---|
uma | 1Rq 1 | 1Lq 0 | 1Lq f |
b | 1Lq 2 | 1Rq 1 | 1Rq f |
Aqui, a transição 1Rq 1 implica que o símbolo de gravação é 1, a fita se move para a direita e o próximo estado é q 1 . Da mesma forma, a transição 1Lq 2 implica que o símbolo de gravação é 1, a fita se move para a esquerda e o próximo estado é q 2 .
Complexidade de tempo e espaço de uma máquina de Turing
Para uma máquina de Turing, a complexidade do tempo refere-se à medida do número de vezes que a fita se move quando a máquina é inicializada para alguns símbolos de entrada e a complexidade do espaço é o número de células da fita gravada.
Complexidade de tempo, todas as funções razoáveis -
T(n) = O(n log n)
A complexidade do espaço da TM -
S(n) = O(n)