Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba...
Transcript of Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba...
Máquinas de TuringSIPSER – Capítulo 3: A tese de Church-Turing
Universidade Federal da ParaíbaPrograma de Pós-Graduação em InformáticaTeoria da Computação – 2013.1
Ana Paula Nunes Guimarães
Glauco de Sousa e Silva
Sarah Soares de Oliveira Professor: Andrei Formiga
2
Até agoraAutô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)
3
Máquinas de TuringProposta por Alan Turing em 1936Semelhante a um autômato finito
◦Mas com memória ilimitada e irrestrita
É um modelo de um computador de propósito geral
4
Máquinas de Turing
5
Máquinas de TuringUm detalhe importante é a aceitação,
ou rejeição da entradaDiferente 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
6
Máquinas de TuringPara 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#010w2=0011#0011
7
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.
8
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 □ ...
x 1 1 0 0 0 # x 1 1 0 0 0 □ ...
x 1 1 0 0 0 # x 1 1 0 0 0 □
x x 1 0 0 0 # x 1 1 0 0 0 □ ...
x x x x x x # x x x x x x x □ ...
aceita
9
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 ).
10
Iniciando uma Máquina de TuringEntrada w = ABCD
A B C D □
Unidade de controle
11
Exemplo de função de transiçãoδ(q0, A) = (q1,X,R)
A B C D □
q0
12
Exemplo de função de transiçãoδ(q0, A) = (q1,X,R)
X B C D □
q1
13
Configurações da Máquina de TuringConfiguraçõ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
A B C D □
q
14
Configurações da Máquina de TuringCasos 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.
15
Linguagens e Máquinas de TuringLinguagem da MT: coleção de cadeias
que são aceitas
Linguagem Turing-reconhecível
Linguagem Turing-decidível
16
Exemplos de Máquinas de TuringL = {anbn | n ≥1}
17
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.
18
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).
19
Exemplos de Máquinas de TuringL = {anbn | n ≥1}
20
Exemplos de Máquinas de TuringL = {anbn | n ≥1} – cadeia: w =
aabb
21
Exemplos de Máquinas de TuringL = {w#w | w ϵ {0,1}*}
22
Variantes de Máquinas de TuringVariantes
◦Máquinas de Turing Multifita◦Máquinas de Turing Não-
Determinísticas◦Enumeradores
Poder computacional◦Reconhecem a mesma classe de
linguagensRobustez
23
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
24
Máquinas de Turing MultifitaMáquinas de Turing MultifitaA 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
25
Máquinas de Turing Multifita
Poder computacional
26
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
27
Máquinas de Turing Multifita
Cabeçotes e fitas virtuais
28
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 às diferentes
possibilidadesPoder computacional
29
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
Máquinas de Turing Não-Determinísticas
30
A raiz é a configuração inicial◦Cada nó tem no máximo b filhos
Buscar um estado de aceitaçãoNão fazer busca em profundidade,
fazer busca em largura!◦
Máquinas de Turing Não-Determinísticas
31
Simulação da MTNDProva:
◦A MT simuladora S posui três fitas:
32
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
Máquinas de Turing Não-Determinísticas
33
EnumeradoresUm enumerador pode ser visto como
uma MT com uma impressora anexaA MT pode usar essa impressora como
um dispositivo de saída para imprimir cadeias
34
Equivalência com outros modelosExistem vários modelos de
computação de propósito geralTodos 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
35
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
36
Terminologia para descrever MT’sA entrada da MT é uma cadeiaE se quisermos fornecer como entrada
um objeto?◦Representar o objeto como uma
cadeia◦Grafos, polinômios, gramáticas,
autômatos...Notação <O>
Máquinas de TuringSIPSER – Capítulo 3: A tese de Church-Turing
Universidade Federal da ParaíbaPrograma de Pós-Graduação em InformáticaTeoria da Computação – 2013.1
Ana Paula Nunes Guimarães
Glauco de Sousa e Silva
Sarah Soares de Oliveira Professor: Andrei Formiga