Slides - Andrei Formiga

Download Report

Transcript Slides - Andrei Formiga

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 maneira: seja utilizada de apenas uma ◦

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.

2.

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; À 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 □ ...

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

8

Definição formal de uma Máquina de Turing   Uma MT é definida como uma 7-upla: ◦ ◦ ◦ ◦ M = (Q, Σ, Γ, δ, q 0 , q aceita ,q rejeita ) Onde: ◦ Q é o conjunto de estados, ◦ Σ é o alfabeto de entrada sem o símbolo em branco ( □ ), ◦ Γ é o alfabeto da fita, onde □ ϵ Γ e Σ ⊆ Γ , δ q 0 : ϵ Q x Γ→ Q x Γ x q aceita Q ϵ Q q rejeita ϵ Q {L, R} é a função de transição, é o estado inicial, é o estado de aceitação e, é o estado de rejeição (q aceita ≠ q rejeita ).

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

 δ( q 0 , A) = ( q 1 ,X,R) q 0

A B C D □

11

Exemplo de função de transição

 δ( q 0 , A) = ( q 1 ,X,R) q 1

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 (q 0 w) Configuração de aceitação (q aceita ) Configuração de rejeição (q rejeita )  Uma MT aceita uma aceita a entrada w se uma sequência de configurações C 1 , C 2 , ..., C k 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 = {a n b n | n ≥1} 16

Exemplos de Máquinas de Turing

     L = {a n b n | n ≥1} O estado q 0 ao encontrar “a” escreve “x” (ou seja, marca “a”), muda de estado (q 1 ) e vai para a direita.

O estado q 1 é responsável por encontrar um “b” e marcá-lo com “y”.

A partir daí, outro estado (q marcado).

2 ) entra em ação. Ele volta na fita até encontrar “x” (o último “a” Quando q 2 encontra o “x” devolve o controle para o estado q 0 , que recomeça o processamento.

17

Exemplos de Máquinas de Turing

   Quando q 0 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 q 3 , 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 = {a n b n | n ≥1} 19

Exemplos de Máquinas de Turing

 L = {a n b n | 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

 1.

E se permitíssemos que o cabeçote de uma MT ficasse parado?

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  1.

Em qualquer ponto, a máquina pode proceder de acordo com várias possibilidades 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 possibilidades correspondem Poder computacional às diferentes 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 nós param sobre todas as entradas se todos os 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 característica essencial de máquinas de Turing ◦ os modelos compartilham Acesso irrestrito a memória ilimitada a 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 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