Universidade Federal da Paraíba
Programa de Pós-Graduação em Informática
Teoria da Computação – 2013.1
Máquinas de Turing
SIPSER – Capítulo 3: A tese de Church-Turing
Ana Paula Nunes Guimarães
Glauco de Sousa e Silva
Sarah Soares de Oliveira
Professor:Andrei Formiga
Até agora
Autômatos finitos são bons modelos para
dispositivos que têm uma quantidade pequena
de memória
 Autômatos com pilha são bons modelos para
dispositivos que possuem memória ilimitada,
desde que
seja utilizada de apenas uma
maneira:
◦ LIFO
 Agora veremos um modelo mais poderoso:
◦ Máquinas de Turing (MTs)

2
Máquinas de Turing
Proposta por Alan Turing em 1936
 Semelhante a um autômato finito
◦ Mas com memória ilimitada e irrestrita
 É um modelo de um computador de propósito
geral

3
Máquinas de Turing
4
Máquinas de Turing
Um detalhe importante é a aceitação, ou
rejeição da entrada
 Diferente dos autômatos, ela possui um estado
de aceitação, e outro de rejeição
◦ Ambos necessariamente finais
 Quando um destes estados é alcançado, a
computação termina imediatamente

5
Máquinas de Turing

Para entender o procedimento executado por
uma máquina de Turing, vamos considerar a
seguinte linguagem:
◦ L1 = { w#w | w ∈ {0,1}* }
Exemplos de palavras da linguagem L1:
w1=010#010
w2=0011#0011
6
Máquinas de Turing

Algoritmo para reconhecer L = {w#w | w ∈{0,1}*}
1. Faça um zigue-zague ao longo da fita checando
posições correspondentes de ambos os lados
do símbolo # para verificar se elas contêm o
mesmo símbolo. Se a fita não contêm, ou se
nenhum # foi encontrado, então rejeite;
2. À medida que os símbolos vão sendo
verificados, marque-os;
3. Quando todos os símbolos a esquerda de #
forem marcados, verifique se existe algum
símbolo não marcado a direita. Se existir,
rejeite. Se não existir, aceite a entrada.
7
Entrada: 011000#011000
0 1 1 0 0 0 # 0 1 1 0 0 0 □ ...
x 1 1 0 0 0 # 0 1 1 0 0 0 □ ...
x11000#x11000 □
...
x11000#x11000 □
xx1000#x11000 □
...
x x x x x x # x x x x x x x □ ...
aceita
8
Definição formal de uma Máquina de Turing


Uma MT é definida como uma 7-upla:
M = (Q, Σ, Γ, δ, q0, qaceita,qrejeita)
Onde:
◦ Q é o conjunto de estados,
◦ Σ é o alfabeto de entrada sem o símbolo em
branco (□),
◦ Γ é o alfabeto da fita, onde □ ϵ Γ e Σ ⊆ Γ,
◦ δ : Q x Γ→ Q x Γ x {L, R} é a função de transição,
◦ q0 ϵ Q é o estado inicial,
◦ qaceita ϵ Q é o estado de aceitação e,
◦ qrejeita ϵ Q é o estado de rejeição (qaceita ≠ qrejeita ).
9
Iniciando uma Máquina de Turing

Entrada w = ABCD
Unidade de
controle
A
B
C
D
□
10
Exemplo de função de transição

δ(q0, A) = (q1,X,R)
q0
A
B
C
D
□
11
Exemplo de função de transição

δ(q0, A) = (q1,X,R)
q1
X
B
C
D
□
12
Configurações da Máquina de Turing
Configurações de uma MT são mudanças que
ocorrem no estado atual, no conteúdo atual e
na posição atual da cabeça.
 Exemplo: ABqCD

q
A
B
C
D
□
13
Configurações da Máquina de Turing

Casos especiais:
◦
◦
◦
◦
◦

Começo da cadeia com movimento para a esquerda
Fim da cadeia com movimento para a direita
Configuração inicial (q0w)
Configuração de aceitação (qaceita)
Configuração de rejeição (qrejeita)
Uma MT aceita uma aceita a entrada w se uma
sequência de configurações C1, C2, ..., Ck existe.
14
Linguagens e Máquinas de Turing

Linguagem da MT: coleção de cadeias que são
aceitas

Linguagem Turing-reconhecível

Linguagem Turing-decidível
15
Exemplos de Máquinas de Turing

L = {anbn | n ≥1}
16
Exemplos de Máquinas de Turing

L = {anbn | n ≥1}

O estado q0 ao encontrar “a” escreve “x” (ou seja,
marca “a”), muda de estado (q1) e vai para a direita.
O estado q1 é responsável por encontrar um “b” e
marcá-lo com “y”.
A partir daí, outro estado (q2) entra em ação. Ele
volta na fita até encontrar “x” (o último “a”
marcado).
Quando q2 encontra o “x” devolve o controle para
o estado q0, que recomeça o processamento.



17
Exemplos de Máquinas de Turing



Quando q0 encontra o “y”, significa que já
terminou de marcar os símbolos “a”. Então, se
não houverem mais “b” para serem marcados, a
cadeia está correta.
Para isso é usado o estado q3, para percorrer o
restante da cadeia. Se encontrar só “y” e o □,
então a cadeia está correta.
Se encontrar algum “b”, a MT para (já que não
existe uma transição δ(q3, b) e a cadeia não é
aceita).
18
Exemplos de Máquinas de Turing

L = {anbn | n ≥1}
19
Exemplos de Máquinas de Turing

L = {anbn | n ≥1} – cadeia: w = aabb
20
Exemplos de Máquinas de Turing

L = {w#w | w ϵ {0,1}*}
21
Variantes de Máquinas de Turing
Variantes
◦ Máquinas de Turing Multifita
◦ Máquinas de Turing Não-Determinísticas
◦ Enumeradores
 Poder computacional
◦ Reconhecem a mesma classe de linguagens
 Robustez

22
Variantes de Máquinas de Turing
E se permitíssemos que o cabeçote de uma MT
ficasse parado?
1. Função de transição de uma MT padrão

2.
Função de transição de uma MT estendida

Essa característica pode permitir que essas MT
reconheçam linguagens adicionais, incrementando
assim o poder desse modelo?
Equivalência entre modelos

23
Máquinas de Turing Multifita


Máquinas de Turing Multifita
A função de transição é modificada para permitir
ler, escrever e mover as cabeças em todas as fitas
simultaneamente
1. Função de transição de uma MT padrão
2. Função de transição de uma MT estendida
24
Máquinas de Turing Multifita

Poder computacional
25
Máquinas de Turing Multifita
Teorema: toda MT mulifita tem uma MT de uma
única fita que lhe é equivalente
 Prova: Devemos mostrar como converter uma
MT multifita M em uma equivalente S, com
apenas uma fita

26
Máquinas de Turing Multifita

Cabeçotes e fitas virtuais
27
Máquinas de Turing Não-Determinísticas

Em qualquer ponto, a máquina pode proceder de
acordo com várias possibilidades
1.
Função de transição de uma MT padrão
2.
Função de transição de uma MT estendida


A computação é uma árvore
◦ Os
nós
correspondem
possibilidades
às
diferentes
Poder computacional
28
Máquinas de Turing Não-Determinísticas




Teorema:Toda MTND tem uma MTD que lhe é
equivalente
Idéia da prova: Podemos simular qualquer MTND
M, através de uma MT determinística S
Vemos a computação de M sobre uma entrada w
como uma árvore de possibilidades
Cada nó da árvore é uma
configuração de M
29
Máquinas de Turing Não-Determinísticas
A raiz é a configuração inicial
◦ Cada nó tem no máximo b filhos
 Buscar um estado de aceitação
 Não fazer busca em profundidade, fazer busca
em largura!
◦

30
Simulação da MTND

Prova:
◦ A MT simuladora S posui três fitas:
31
Máquinas de Turing Não-Determinísticas

Uma linguagem é Turing-reconhecível se, e
somente se alguma MTND a reconhece
Chamamos uma MTND de decisor se todos os
nós param sobre todas as entradas
 Uma linguagem é decidível se e somente se
alguma MTND a decide

32
Enumeradores
Um enumerador pode ser visto como uma MT
com uma impressora anexa
 A MT pode usar essa impressora como um
dispositivo de saída para imprimir cadeias

33
Equivalência com outros modelos
Existem vários modelos de computação de
propósito geral
 Todos
os
modelos
compartilham
a
característica essencial de máquinas de Turing
◦ Acesso irrestrito a memória ilimitada
 Linguagens de programação
◦ Descrevem exatamente a mesma classe de
algoritmos

34
Tese de Church-Turing
"A capacidade de computação representada
pela Máquina de Turing é o limite máximo que
pode ser atingido por qualquer dispositivo de
computação"
 Supondo verdadeira a hipótese de Church

◦ Função computável: é possível construir uma
Máquina de Turing (ou formalismo equivalente) que
compute a função
◦ Função Não-Computável: não existe Máquina de
Turing (ou formalismo equivalente) que compute a
função
35
Terminologia para descrever MT’s
A entrada da MT é uma cadeia
 E se quisermos fornecer como entrada um
objeto?
◦ Representar o objeto como uma cadeia
◦ Grafos, polinômios, gramáticas, autômatos...
 Notação <O>

36
Universidade Federal da Paraíba
Programa de Pós-Graduação em Informática
Teoria da Computação – 2013.1
Máquinas de Turing
SIPSER – Capítulo 3: A tese de Church-Turing
Ana Paula Nunes Guimarães
Glauco de Sousa e Silva
Sarah Soares de Oliveira
Professor:Andrei Formiga
Download

Slides - Andrei Formiga