A Turing Machine é um dispositivo de aceitação que aceita as línguas (conjunto recursivamente enumerável) geradas pelo tipo 0 gramáticas. Foi inventado em 1936 por Alan Turing.
Definição
A Turing Machine (TM) é um modelo matemático que consiste numa fita de comprimento infinito dividida em células sobre as quais é dada a entrada. É constituída por uma cabeça que lê a fita de entrada. Um registo estatal armazena o estado da máquina Turing. Depois de ler um símbolo de entrada, é substituído por outro símbolo, o seu estado interno é alterado, e move-se de uma célula para a direita ou para a esquerda. Se a TM atingir o estado final, a cadeia de entrada é aceite, caso contrário é rejeitada.
A TM pode ser formalmente descrita como um 7-tuplo (Q, X, ∑, δ, q0, B, F) onde –
- p>Q é um conjunto finito de estados
- p>X é o alfabeto da fita adesiva
- p>∑ é o alfabeto de entrada
- p>p>δ é uma função de transição; δ : Q × X → Q × X × {Turno_esquerdo, Turno_direito}.
- p>p>q0 é o estado inicial
- p>p>B é o símbolo em branco
- p>p>F é o conjunto de estados finais/li>
Comparação com o autómato anterior
p> A tabela seguinte mostra uma comparação de como uma máquina Turing difere da Finite Automaton e Pushdown Automaton.
Máquina | Estrutura de Dados de Pushdown | Determinístico? |
---|---|---|
Automaton finito | N.A | Sim |
Last In First Out(LIFO) | No | |
Turing Machine | Fitaitaitaitaita/intérita | Sim |
Exemplo da máquina Turing
Máquina Turing M = (Q, X, ∑, δ, q0, B, F) com
- Q = {q0, q1, q2, qf}
- X = {a, b}
- ∑ = {1}
- q0 = {q0}
- B = símbolo em branco
- F = {qf }
δ é dado por –
Símbolo do alfabeto | Estado actual ‘q0’ | Atual Indique ‘q1’ | Estado Actual ‘q2’ |
---|---|---|---|
a | 1Rq1 | 1Lq0 | 1Lqf |
b | 1Lq2 | 1Rq1 | 1Rqf |
Aqui a transição 1Rq1 implica que o símbolo de escrita é 1, a fita move-se para a direita, e o estado seguinte é q1. Da mesma forma, a transição 1Lq2 implica que o símbolo de escrita é 1, a fita move-se para a esquerda, e o estado seguinte é q2.
Tempo e complexidade espacial de uma máquina Turing
Para uma máquina Turing, a complexidade temporal 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 espacial é o número de células da fita escrita.
Complexidade temporal todas as funções razoáveis –
T(n) = O(n log n)
complexidade espacial doTM –
S(n) = O(n)