Máquinas de Turing
1
A Hierarquia de Linguagens
n n n ?
a b c
ww ?
Linguagens Livres de Contexto
n n
R
a b
ww
Linguagens Regulares
a*
a *b *
2
Linguagens aceitas por
Máquinas de Turing
ww
n n n
a b c
Linguagens Livres de Contexto
n n
R
a b
ww
Linguagens Regulares
a*
a *b *
3
Fita
......
Máquina de Turing
......
Cabeça de leitura-escrita
Unidade de Controle
4
A Fita
Sem limites – comprimento infinito
......
......
cabeça de leitura-escrita
A cabeça move para a esquerda ou direita
5
......
......
cabeça de leitura-escrita
Em cada transição (passo de execução) :
1. Lê um símbolo
2. Escreve um símbolo
3. Move para a esquerda ou direita
6
Exemplo:
Instante 0
......
a b a c
Instante 1
......
1. Lê
a b k c
......
......
a
2. Escreve
k
3. Move para a esquerda
7
Instante 1
......
a b k c
Instante 2
......
1. Lê
a f
k c
......
......
b
2. Escreve
f
3. Move para a direita
8
O String de Entrada
string de entrada
......
a b a c
símbolo branco
......
cabeça
A cabeça inicia na posição mais à esquerda
do setring de entrada
9
Estados & Transições
Escreve
Lê
q1
a b, L
Move p/ Esq.
q2
Move p/ Dir.
q1
a b, R
q2
10
Exemplo:
Instante 1
......
a b a c
......
q1
estado corrente
q1
a b, R
q2
11
......
Instante 1
a b a c
......
q1
......
Instante 2
a b b c
......
q2
q1
a b, R
q2
12
Exemplo:
......
Instante 1
a b a c
......
q1
......
Instante 2
a b b c
......
q2
q1
a b, L
q2
13
Exemplo:
......
Instante 1
a b a c
......
q1
......
Instante 2
a b b c
g
......
q2
q1
g, R
q2
14
Determinismo
Máquinas de Turing são deterministas
Não permitido
Permitido
a b, R
q2
a b, R
q2
a d, L
q3
q1
q1
b d, L
q3
Transições lambda não são permitidas
15
Função de Transição Parcial
Exemplo:
......
a b a c
......
q1
a b, R
q2
q1
b d, L
q3
Permitido:
Nenhuma transição
para o símbolo c
16
Parada
A máquina pára em um estado se
não existe transição a seguir.
17
Parada - Exemplo 1:
......
a b a c
......
q1
q1
Nenhuma transição de q1
PÁRA!!!
18
Parada - Exemplo 2:
......
a b a c
......
q1
a b, R
q2
b d, L
q3
q1
Nenhuma transição
de q1 com símbolo c
PÁRA!!!
19
Estados de Aceitação
q1
q2
Permitido
q1
q2
Não permitido
•Não há transição saindo de estado de aceitação
•A máquina pára e aceita
20
Aceitação
Aceita string
de entrada
Não aceita string
de entrada
Se a máquina pára
em estado de aceitação
Se a máquina pára
em estado que não é
de aceitação
ou
Se a máquina entra
em loop infinito
21
Observação:
Para aceitar um string de entrada,
não é necessário ler todos os
símbolos do string
22
Máquina de Turing - Exemplo
Alfabeto de entrada
{a , b }
Aceita a linguagem:
a*
a a, R
q0
, L
q1
23
Instante 0
a a a
q0
a a, R
q0
, L
q1
24
Instante 1
a a a
q0
a a, R
q0
, L
q1
25
Instante 2
a a a
q0
a a, R
q0
, L
q1
26
Instante 3
a a a
q0
a a, R
q0
, L
q1
27
Instante 4
a a a
q1
a a, R
q0
Pára & Aceita
, L
q1
28
Exemplo de Rejeição
Instante 0
a b a
q0
a a, R
q0
, L
q1
29
Instante 1
a b a
q0
Nenhuma transição possível
a a, R
q0
Pára & Rejeita
, L
q1
30
Máquina mais simples para a mesma linguagem
mas para alfabeto de entrada
Aceita a linguagem:
{a }
a*
q0
31
Instante 0
a a a
q0
Pára & Aceita
q0
Não é necessário ler a entrada
32
Exemplo de Loop Infinito
Uma máquina deTuring
para a linguagem a * b(a b) *
b b, L
a a, R
q0
, L
q1
33
Instante 0
a b a
q0
b b, L
a a, R
q0
, L
q1
34
Instante 1
a b a
q0
b b, L
a a, R
q0
, L
q1
35
Instante 2
a b a
q0
b b, L
a a, R
q0
, L
q1
36
Instante 2
a b a
q0
a b a
q0
Instante 4
a b a
q0
Instante 5
a b a
q0
loop infinito
Instante 3
37
Como a máquina entra em loop infinito:
• O estado de aceitação não será atingido
•A máquina nunca pára
•O string de entrada não é aceito
38
Outro Exemplo de Máquina de Turing
n n
Máquina deTuring para a linguagem {a b
n 1
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
}
y y, L
a a, L
b y, L
q2
x x, R
39
Idéia básica:
Casar a’s com b’s:
Repita:
substitua o a mais à esquerda por x
encontre o b mais à esq. e substitua por y
Até que não existam mais a’s ou b’s
Se existir algum a ou b restante, rejeite
40
a a b b
Instante 0
q0
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
41
x a b b
Instante 1
q1
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
42
x a b b
Instante 2
q1
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
43
x a y b
Instante 3
q2
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
44
x a y b
Instante 4
q2
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
45
x a y b
Instante 5
q0
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
46
x x y b
Instante 6
q1
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
47
x x y b
Instante 7
q1
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
48
x x y y
Instante 8
q2
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
49
x x y y
Instante 9
q2
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
50
x x y y
Instante 10
q0
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
51
x x y y
Instante 11
q3
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
52
x x y y
Instante 12
q3
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
53
x x y y
Instante 13
q4
Pára & Aceita
y y, R
q3
q4
, L
y y, R
q0
y y, R
a a, R
a x, R
q1
y y, L
a a, L
b y, L
q2
x x, R
54
Observação:
Se modificarmos a
máquina para a linguagem
n n
{a b }
podemos facilmente construir
n n n
uma máquina para a linguagem {a b c }
55
Definições Formais para
Máquinas de Turing
56
Função de Transição
q1
a b, R
q2
(q1, a) (q2 , b, R)
57
Função de Transição
q1
c d, L
q2
(q1, c) (q2 , d , L)
58
Máquina de Turing:
Estados
Alfabeto
de entrada
Alfabeto
da fita
M (Q, , , , q0 , , F )
Função de
transição
Estado
inicial
Estados de
aceitação
branco
59
Configuração
c a b a
q1
Descrição instantânea:
ca q1 ba
60
Instante 4
x a y b
q2
Movimento:
Instante 5
x a y b
q0
q2 xayb x q0 ayb
(resulta em um passo)
61
Instante 4
x a y b
Instante 5
x a y b
q2
q0
Instante 6
x x y b
Instante 7
x x y b
q1
q1
uma computação
q2 xayb x q0 ayb xx q1 yb xxy q1 b
62
q2 xayb x q0 ayb xx q1 yb xxy q1 b
Noatação equivalente:
q2 xayb xxy q1 b
63
Configuração inicial:
q0 w
string de entrada
w
a a b b
q0
64
A Linguagem Aceita
Para qualquer Máquina de Turing M
L( M ) {w :
q0 w x1 q f x2 }
Estado inicial
Estado de aceitação
65
Se uma linguagem L é aceita
por uma máquina de Turing M
dizemos que L é:
•Turing Reconhecível
Outros nomes usados:
•Turing Aceitável
•Recursivamente Enumerável
66