máquinas de turing sipser – capítulo 3: a tese de church-turing universidade federal da paraíba...

37
Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação – 2013.1 Ana Paula Nunes Guimarães Glauco de Sousa e Silva Sarah Soares de Oliveira Professor: Andrei Formiga

Upload: internet

Post on 18-Apr-2015

114 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computaçã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

Page 2: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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)

Page 3: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 4: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

4

Máquinas de Turing

Page 5: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 6: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 7: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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.

Page 8: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 9: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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 ).

Page 10: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

10

Iniciando uma Máquina de TuringEntrada w = ABCD

A B C D □

Unidade de controle

Page 11: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

11

Exemplo de função de transiçãoδ(q0, A) = (q1,X,R)

A B C D □

q0

Page 12: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

12

Exemplo de função de transiçãoδ(q0, A) = (q1,X,R)

X B C D □

q1

Page 13: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 14: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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.

Page 15: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 16: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

16

Exemplos de Máquinas de TuringL = {anbn | n ≥1}

Page 17: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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.

Page 18: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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).

Page 19: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

19

Exemplos de Máquinas de TuringL = {anbn | n ≥1}

Page 20: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

20

Exemplos de Máquinas de TuringL = {anbn | n ≥1} – cadeia: w =

aabb

Page 21: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

21

Exemplos de Máquinas de TuringL = {w#w | w ϵ {0,1}*}

Page 22: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 23: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 24: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 25: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

25

Máquinas de Turing Multifita

Poder computacional

Page 26: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 27: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

27

Máquinas de Turing Multifita

Cabeçotes e fitas virtuais

Page 28: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 29: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 30: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 31: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

31

Simulação da MTNDProva:

◦A MT simuladora S posui três fitas:

Page 32: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 33: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 34: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 35: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computação

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

Page 36: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computaçã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>

Page 37: Máquinas de Turing SIPSER – Capítulo 3: A tese de Church-Turing Universidade Federal da Paraíba Programa de Pós-Graduação em Informática Teoria da Computaçã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