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
Download

ftc15 - Decom