máquina de turing - din.uem.br · anos 40 anos 50 anos 60 anos 70 tempos atuais ... funcionamento...

48
Máquina de Turing UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected]

Upload: truongkien

Post on 19-Jan-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

UNIVERSIDADE ESTADUAL DE MARINGÁDEPARTAMENTO DE INFORMÁTICA

Pro

f. Yan

dre M

aldo

nad

o -

1

Prof. Yandre Maldonado e Gomes da Costa

[email protected]

Page 2: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Teoria da Computação

� Ciência da Computação

� Ênfase teórica: idéias fundamentais e modelos computacionais;

� Ênfase prática: projeto de sistemas

Pro

f. Yan

dre M

aldo

nad

o -

2

Ênfase prática: projeto de sistemas computacionais;

“As tecnologias computacionais são construídas a partir de fundamentos da computação. Aquelas são passageiras,

enquanto estes estão por trás da tecnologia em qualquer tempo.”

Page 3: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Teoria da Computação

� Histórico da Computação:

� Computar: do latim “computare”, que

significa calcular, avaliar, contar;

Pro

f. Yan

dre M

aldo

nad

o -

3

Ábaco – China, aprox. 3500 a.c.

Máquina de Babbage –R.U., 1823.

ENIAC – EUA, 1946.

Page 4: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Teoria da Computação

� Os fundamentos estão por trás da

tecnologia em qualquer tempo.

Pro

f. Yan

dre M

aldo

nad

o -

4

Anos 40 Anos 50 Anos 60 Anos 70 Tempos

atuais

Fundamentos Teóricos da Computação

Tecnologias Computacionais

Page 5: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Introduzida por Alan Turing em 1936;

� Ferramenta para estudar a capacidade dos processos algorítmicos;

Pro

f. Yan

dre M

aldo

nad

o -

5

algorítmicos;

� Modelo abstrato, concebido antes mesmo de uma implementação tecnológica;

Page 6: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Formaliza a idéia de uma pessoa que realiza cálculos;

� Simulação de uma situação na qual uma pessoa, equipada com um instrumento de escrita e um apagador, realiza cálculos

Pro

f. Yan

dre M

aldo

nad

o -

6

escrita e um apagador, realiza cálculos numa folha de papel;

� “A Máquina de Turing ainda hoje é aceita como a formalização de um procedimento efetivo, ou seja, uma seqüência finita de instruções, as quais podem ser realizadas mecanicamente, em tempo finito.” (Menezes, 1998).

Page 7: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� MT pode ser vista como a mais

simples “máquina de computação”,

servindo para determinar quais

funções são computáveis e quais não

Pro

f. Yan

dre M

aldo

nad

o -

7

funções são computáveis e quais não

são (Delamaro, 1998).

Page 8: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Outros modelos foram propostos, mas todos mostraram ter, no máximo, poder computacional equivalente ao da MT;

Pro

f. Yan

dre M

aldo

nad

o -

8

da MT;

� Estas são chamadas Máquinas Universais:

� Máquinas capazes de expressar a solução para qualquer problema algorítmico.

Page 9: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� A Máquina de Turing consiste de:

� Uma Unidade de Controle• Que pode ler e escrever símbolos em uma fita por

meio de um cabeçote de leitura e gravação e pode se deslocar para a esquerda ou direita;

Pro

f. Yan

dre M

aldo

nad

o -

9

pode se deslocar para a esquerda ou direita;

� A fita estende-se infinitamente em uma das extremidades e é dividida em células. Utilizada como dispositivo de entrada, saída e memória de trabalho;

• Estas células podem armazenar qualquer elemento de um conjunto finito de símbolos, um alfabeto.

Page 10: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Programa ou Função de Transição: função

que comanda as leituras e gravações, o

sentido de movimento da cabeça e define o

estado da máquina que será ativado.

Pro

f. Yan

dre M

aldo

nad

o -

10

Controle

(δ)

⟨⟨⟨⟨ a b b a b b β β β β ...

* Como o símbolo “⟨” estabelece o limite da extremidade esquerda da fita, não

se pode apagá-lo e nem realizar movimentos para a esquerda deste símbolo.

Page 11: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Funcionamento da Máquina de Turing� A MT deve assumir sempre um estado,

pertencente à um conjunto finito de estados;

� O processamento de uma MT começa sempre em um estado especial, chamado estado inicial;

Pro

f. Yan

dre M

aldo

nad

o -

11

em um estado especial, chamado estado inicial;

� Inicialmente a primeira célula da fita é preenchida com “⟨⟨⟨⟨ ”, que indica o início da mesma;

� A cabeça de leitura é posicionada inicialmente na segunda célula da fita, a célula seguinte a “⟨”;

� As células em branco, que não fazem parte da palavra a ser processada, são preenchidas com o símbolo “β”;

Page 12: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Funcionamento da Máquina de Turing� O processamento em uma MT consiste em:

• Observar o estado e o símbolo corrente da fita(aquele em que o cabeçote está posicionado);

• Escrever um símbolo nesta célula da fita;

Pro

f. Yan

dre M

aldo

nad

o -

12

• Escrever um símbolo nesta célula da fita;• Mover o cabeçote para a esquerda ou direita;• Definir o estado corrente;

� A ação exata a ser executada é determinadapor um programa (função de transição) quecomunica à unidade de controle o que deveser feito com base na configuração (estado+ símbolo corrente da fita) em que a MT se encontra.

Page 13: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Funcionamento da Máquina de Turing

� O processamento cessa quando a máquina atinge uma configuração para a qual não existe função

Pro

f. Yan

dre M

aldo

nad

o -

13

para a qual não existe função prevista, neste caso:

• Se a máquina estiver com um estado final ativo, a cadeia de entrada é aceita;

• Se o estado ativo não for final, a cadeia de entrada não é aceita;

• Se a máquina não parar (looping), a cadeia de entrada não é aceita.

Page 14: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Definição da MT, uma óctupla:

� Σ : alfabeto de símbolos de entrada;

� S : conjunto de estados possíveis, o qual é finito;

� δ : programa ou função de transição

Pro

f. Yan

dre M

aldo

nad

o -

14

� δ : programa ou função de transição

• δ: S × (Σ ∪ V ∪ {β, ⟨}) → S × (Σ ∪ V ∪ {β, ⟨}) × {E, D}

a qual é uma função parcial;

� s0 : estado inicial da máquina, s0 ∈ S;

� F : conjunto de estados finais, F ⊂ S;

� V : alfabeto auxiliar (pode ser vazio);

� β : símbolo especial para células em branco;

� ⟨ : símbolo especial marcador de início da fita.

Page 15: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� A Máquina de Turing pode ser empregada como modelo de natureza reconhecedora ou transdutora:

� Reconhecedora: processa a palavra de

Pro

f. Yan

dre M

aldo

nad

o -

15

� Reconhecedora: processa a palavra de

entrada aceitando-a ou rejeitando-a. Neste

caso, o conjunto de palavras aceitas

corresponde à linguagem descrita pela MT;

� Transdutora: máquina para computar uma

função. Aplica uma função sobre o conteúdo

inicial da fita e o resultado produzido é

lançado na própria fita.

Page 16: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Representação de MT por diagrama:

� Semelhante à representação de AFD;

� Os rótulos das setas, que

Pro

f. Yan

dre M

aldo

nad

o -

16

representam as funções de transição

são de acordo com a seguinte

legenda:

AF

ND

S0 S1 Sf(a1, a2,m) (a1, a2,m)

Indica estado

inicial da MTSímbolo a

ser lido

Símbolo a

ser gravado

Sentido do

movimento

Estado

final da MT

Page 17: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Exemplo 1: uma MT transdutora que

devolve o complemento de uma

entrada binária.

Pro

f. Yan

dre M

aldo

nad

o -

17

S0 S1 Sf

(0,1,D)

(1,0,D)

AF

ND

(β, β,E)

(1,1,E)

(0,0,E)

(⟨, ⟨,D)

Page 18: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

18

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 1 0 1 0 β β β β β β ...

Unidade de

Controle

Estado atual:

S0

Page 19: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

19

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 0 1 0 β β β β β β ...

Unidade de

Controle

Estado atual:

S0

Page 20: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

20

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 1 1 0 β β β β β β ...

Unidade de

Controle

Estado atual:

S0

Page 21: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

21

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 1 0 0 β β β β β β ...

Unidade de

Controle

Estado atual:

S0

Page 22: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

22

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 1 0 1 β β β β β β ...

Unidade de

Controle

Estado atual:

S0

Page 23: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

23

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 1 0 1 β β β β β β ...

Unidade de

Controle

Estado atual:

S1

Page 24: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

24

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 1 0 1 β β β β β β ...

Unidade de

Controle

Estado atual:

S1

Page 25: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

25

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 1 0 1 β β β β β β ...

Unidade de

Controle

Estado atual:

S1

Page 26: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

26

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 1 0 1 β β β β β β ...

Unidade de

Controle

Estado atual:

S1

Page 27: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

27

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 1 0 1 β β β β β β ...

Unidade de

Controle

Estado atual:

S1

Page 28: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Processamento de “1010”:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

28

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 1 0 1 β β β β β β ...

Unidade de

Controle

Estado atual:

Sf

* O reposicionamento da cabeça de leitura na sua posição original pode ser útil para realizar combinações de Máquinas de Turing (especialmente as transdutoras).

Page 29: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Exercício:

� Construa uma MT transdutora que

receba como entrada um número

binário e devolva o quádruplo do

Pro

f. Yan

dre M

aldo

nad

o -

29

binário e devolva o quádruplo do

mesmo.

S0 S1 Sf

(0,0,D)

(1,1,D)

(β,0,D) (β,0,E)S2

(0,0,E)

(1,1,E)

(⟨, ⟨,D)

Page 30: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Tabela de transições

� Semelhante às tabelas de transições

de AFDs;

Pro

f. Yan

dre M

aldo

nad

o -

30

� Podem representar o conjunto de

funções de transição estabelecidas

para a máquina em forma de tabela;

Page 31: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Tabela de transições

� Exemplo:

(0,0,D)(1,1,D)

(0,0,E)(1,1,E)

Pro

f. Yan

dre M

aldo

nad

o -

31

S0 S1 Sf

(1,1,D)

(β,0,D) (β,0,E)S2

(1,1,E)

(⟨, ⟨,D)

⟨⟨⟨⟨ ββββ 0 1

S0 - (0,S1,D) (0,S0,D) (1,S0,D)

S1 - (0,S2,E) - -

S2 (⟨,Sf,D) - (0,S2,E) (1,S2,E)

Sf - - - -

Page 32: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Exemplo de máquina reconhecedora:

� MT que aceita palíndromos de

tamanho par sobre o alfabeto {a, b}:(a,a,D)(b,b,D)

Pro

f. Yan

dre M

aldo

nad

o -

32

S0

S1

S5(X,X,D)

(β, β,E)(X,X,E) S2

(b,b,D)

S3 S4

(a,a,D)(b,b,D)

(a,X,D)

(b,X,D)

(a,X,E)

(a,a,E)(b,b,E)

(b,X,E)(β, β,E)(X,X,E)

* Note que esta máquina não faz o “rebobinemento” ao final do processamento. Isto é amplamente aceitável em Máquinas que não possuem natureza transdutora.

Page 33: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Configuração instantânea de uma MT:

� Seja uma MT M=( ∑,S,δ,s0,F,V,β,⟨⟨⟨⟨ )

• A configuração instantânea é dada por

um par [e, xay], em que:

Pro

f. Yan

dre M

aldo

nad

o -

33

um par [e, xay], em que:

• e ∈ S é o estado atual (ou ativo);

• x ∈ { ∑ ∪ V ∪ {β,⟨⟨⟨⟨} }* é a palavra situada à esquerda da cabeça de leitura;

• a ∈ { ∑ ∪ V ∪ {β,⟨⟨⟨⟨} } é o símbolo que se encontra sob a cabeça de leitura; e

• y ∈ { ∑ ∪ V ∪ {β} }* é a palavra à direita da cabeça de leitura até o último símbolo diferente de β; se não existir símbolo diferente de β, y=λ.

Page 34: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Exemplo de configuração instantânea:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

34

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 1 0 1 0 β β β β β β ...

Unidade de

Controle

Estado atual:

S0

Neste momento, a configuração pode ser dada por [S0, ⟨⟨⟨⟨1010]

Page 35: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Exemplo de configuração instantânea:

(0,1,D)

(1,0,D)

(1,1,E)

(0,0,E)

Pro

f. Yan

dre M

aldo

nad

o -

35

S0 S1 Sf(β, β,E) (⟨, ⟨,D)

⟨⟨⟨⟨ 0 0 1 0 β β β β β β ...

Unidade de

Controle

Estado atual:

S0

Aplicada a função δδδδ(S0,1)=(S0,0,D),a configuração passa a ser descrita por [S0, ⟨⟨⟨⟨0010]

Page 36: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Com isto, estabelece-se a relação |—

(“leva a”);

� No exemplo descrito, a função

δ

Pro

f. Yan

dre M

aldo

nad

o -

36

δ(S0,1)=(S0,0,D) levou a máquina da

configuração [S0, ⟨1010] para a

configuração [S0, ⟨0010], assim pode-se escrever:

� [S0, ⟨1010] |— [S0, ⟨0010]

Page 37: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Adicionalmente, pode-se estender as notações:

� |—n: quando através da aplicação de um

número n (conhecido) de funções uma

Pro

f. Yan

dre M

aldo

nad

o -

37

número n (conhecido) de funções uma

configuração leva à outra;

• Exemplos (considerando a máquina dos slides anteriores):

• [S0, ⟨1010] |—1 [S0, ⟨0010]

• [S0, ⟨1010] |—10 [Sf, ⟨0101]

� |—*: quando através da aplicação de n

funções (com n≥0) uma configuração pode

levar a outra.

Page 38: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Considerações acerca da aceitação ou não de uma entrada:

� Considerando que o modelo de MT definido é determinístico, para uma

Pro

f. Yan

dre M

aldo

nad

o -

38

definido é determinístico, para uma dada entrada a MT deve parar sempre em um mesmo estado e;

� Com isto, se e é estado final, a cadeia é aceita, caso contrário ela é rejeitada;

� Adicionalmente, a MT pode não parar (entrar em looping). Neste caso a entrada é rejeitada.

Page 39: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Exemplos de MTs para a linguagem

{w ∈ {a, b, c}* | w não tem ab como prefixo}:

Pro

f. Yan

dre M

aldo

nad

o -

39

S0 S1 S2(a,a,D) (b,b,E)

S0 S1

(a,a,D)

(b,b,E)

MT que

sempre pára

MT que pára

se aceita

Page 40: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Particularidades das MTs:

Ao contrário de AFs e APs, não é

Pro

f. Yan

dre M

aldo

nad

o -

40

necessário que a palavra de entrada

seja toda lida para que possa ser

aceita ou rejeitada.

Page 41: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Particularidades das MTs:

� A classe de linguagem que MT é capaz de

reconhecer é a classe das Linguagens

Enumeráveis Recursivamente;

Pro

f. Yan

dre M

aldo

nad

o -

41

Enumeráveis Recursivamente;

� Esta classe contém as linguagens regulares

e livres de contexto como subclasses

(conforme hierarquia de Chomsky);

� Assim, toda linguagem que um AF ou AP

reconhece pode ser reconhecida por uma

MT;

Page 42: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Particularidades das MTs:

� Dada um LER, existe uma MT que pára para qualquer entrada desta linguagem?

Não!

Pro

f. Yan

dre M

aldo

nad

o -

42

Não!

� Daí, definiu-se uma subclasse para as LERs, a classe das linguagens recursivas:

Uma linguagem L é dita recursiva se existe uma MT que reconhece todas as

palavras de L e pára.

Page 43: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Com a inclusão das linguagens recursivas, o diagrama

da hierarquia de Chomsky poderia ser descrito da

seguinte forma:Linguagens Enumeráveis Recursivamente

Linguagens Recursivas

MT

NORMA

POST

Pro

f. Yan

dre M

aldo

nad

o -

43

Linguagens Regulares

Linguagens Livres de Contexto

Linguagens Sensíveis ao Contexto

Linguagens Recursivas

AFD

AFND

AFS

GR

ER

AP

GLC

POST

A2P

ALL

GSC

Page 44: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Classes de problemas:

Universo de Todos os Problemas

Pro

f. Yan

dre M

aldo

nad

o -

44

Completamente Insolúveis

Parcialmente Solucionáveis ou Computáveis

SolucionáveisLRec

LER

Não pode ser resolvido por MT

Page 45: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Formalismo reconhecedor para LSC:

� Uma linguagem é sensível ao contexto quando:

• Pode ser gerada por uma GSC; ou

• Pode ser reconhecida por um Autômato

Pro

f. Yan

dre M

aldo

nad

o -

45

• Pode ser reconhecida por um Autômato Linearmente Limitado (ALL) ou Máquina de Turing com Fita Limitada;

� Um ALL é como a definição de MT estudada com a inclusão de:

• Um símbolo especial “⟩” usado para marcar o final da fita;

• Possibilidade de não-determinismo na criação das funções.

Page 46: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Máquina de Turing

� Dada a sua natureza conceitual, a MT pode

ser implementada de diversas formas;

� Os computadores modernos são MT (exceto

Pro

f. Yan

dre M

aldo

nad

o -

46

� Os computadores modernos são MT (exceto

pelo fato de terem memória finita)

• O processador corresponde à unidade de controle, cujos estados podem ser definidos pelos padrões de bits que podem ser associados aos registradores;

• A memória da máquina corresponde ao sistema de armazenamento em fita;

• Os padrões de bits (0 e 1) correspondem ao alfabeto da fita.

Page 47: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Máquina de Turing

� Importância da MT para a Ciência da Computação:

� A potência computacional da MT é tão

grande quanto a de qualquer sistema

Pro

f. Yan

dre M

aldo

nad

o -

47

grande quanto a de qualquer sistema

algorítmico;

� Se um problema não puder ser resolvido por

uma MT, não poderá ser resolvido por

qualquer sistema algorítmico;

� MT representa a fronteira teórica da

capacidade computacional para as

máquinas modernas reais.

Page 48: Máquina de Turing - din.uem.br · Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais ... Funcionamento da Máquina de Turing A MT deve assumir sempre um estado, pertencente à um conjunto

Bibliografia

� BROOKSHEAR, J. G. Ciência da Computação. Porto Alegre: Bookman, 2000;

� DELAMARO, Márcio Eduardo. Linguagens Formais e Autômatos. Maringá: UEM, 1998;

� DIVERIO, Tiarajú Asmuz e MENEZES, Paulo Blauth. Teoria da Computação – Máquinas Universais e

Pro

f. Yan

dre M

aldo

nad

o -

48

Teoria da Computação – Máquinas Universais e Computabilidade. Porto Alegre: Editora Sagra-Luzzatto, 1999;

� HOPCROFT, J. E., ULLMAN, J. D. e MOTWANI, R. Introdução à Teoria de Autômatos, Linguagens e Computação. Rio de Janeiro: Editora Campus, 2003;

� MENEZES, Paulo Blauth. Linguagens Formais e Autômatos. Porto Alegre: Editora Sagra-Luzzatto, 1998;

� VIEIRA, Newton José. Introdução aos Fundamentos da Computação. São Paulo: Pioneira Thomson Learning, 2006.