1 máquina de turing universal. 2 máquinas de turing são “ hardwired ” elas executam um único...

54
1 Máquina de Turing Universal

Upload: internet

Post on 21-Apr-2015

123 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

1

Máquina de Turing Universal

Page 2: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

2

Máquinas de Turing são “hardwired”

elas executamum único programa

Uma limitação de Máquinas de Turing:

Computadores reais são programáveis

Page 3: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

3

Solução: Máquina de Turing Universal

• Máquina programável

• Simula qualquer outra Máquina de Turing

Atributos:

Page 4: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

4

Máquina de Turing Universal

simula qualquer Máquina de TuringM

Entrada da Máquina de Turing Universal:

Descrição das transições deM

Conteúdo inicial da fita deM

Page 5: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

5

Máquina de TuringUniversal M

Descrição de

Conteúdo da fita de

M

Estado deM

Três fitas

Fita 2

Fita 3

Fita 1

Page 6: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

6

Descrevemos uma Máquina de Turingcomo um string de símbolos:

Codificamos como um string de símbolos

M

M

Descrição de M

Fita 1

Page 7: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

7

Alfabeto de Codificação

Símbolos: a b c d

Codificação: 1 11 111 1111

Page 8: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

8

Codificação de estados

Estados: 1q 2q 3q 4q

Codificação: 1 11 111 1111

Codificação do movimento da cabeça da fita

Movimento:

Codificação:

L R

1 11

Page 9: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

9

Codificação de Transição

Transição: ),,(),( 21 Lbqaq

Codificação: 10110110101

separador

Page 10: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

10

Codificação da Máquina

Transições:

),,(),( 21 Lbqaq

Codificação:

10110110101

),,(),( 32 Rcqbq

110111011110101100

separador

Page 11: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

11

Conteúdo da fita 1 da MT Universal:

codificação da máquina a ser simulada na forma de um string binário de 0’s e 1’s

M

Page 12: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

12

Uma Máquina de Turing é descritacomo um string binário de 0’s e 1’s

O conjunto de todas as Máquinas de Turing forma uma linguagem:

cada string da linguagem éo código binário de uma Máquina de Turing

Portanto:

Page 13: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

13

Linguagem das Máquinas de Turing

L = { 010100101,

00100100101111,

111010011110010101, …… }

(Máquina deTuring 1)

(Máquina deTuring 2)

……

Page 14: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

14

Conjuntos Contáveis

Page 15: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

15

Conjuntos infinitos são: Contáveis

ou

Não Contáveis

Page 16: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

16

Conjunto Contável:

Existe uma correspondência biunívocaentreelementos do conjuntoe números naturais

Page 17: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

17

Exemplo:

Inteiros pares: ,6,4,2,0

o conjunto dos inteiros positivos pares é contável

Números naturais:

Correspondência:

n2 corresponde a

Page 18: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

18

Exemplo: O comjunto dos números racionaisé contável

Números racionais: ,87,43,21

Page 19: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

19

Prova ingênua

Números racionais: ,31,21,11

Números naturais:

Correspondência:

Não funciona:

nunca iremos contar números com numerador 2:

,32,22,12

Page 20: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

20

Abordagem melhor

11

21

31

41

12

22

32

13

23

14

Page 21: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

21

11

21

31

41

12

22

32

13

23

14

Page 22: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

22

11

21

31

41

12

22

32

13

23

14

Page 23: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

23

11

21

31

41

12

22

32

13

23

14

Page 24: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

24

11

21

31

41

12

22

32

13

23

14

Page 25: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

25

11

21

31

41

12

22

32

13

23

14

Page 26: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

26

Números racionais: ,22,31,12,21,11

Correspondência:

Números naturais:

Page 27: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

27

Provamos:

O conjuntos dos números racionais é contável,descrevendo um procedimento de enumeração

Page 28: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

28

Definição

Um procedimento de enumeração para é uma Máquina de Turing que geratodos os strings de , um por um

Seja um conjunto de strings S

S

S

e

cada string é gerado em tempo finito

Page 29: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

29

Enumerador para

,,, 321 sss

Ssss ,,, 321

tempo finito: ,,, 321 ttt

strings

Ssaída

(na fita)

Page 30: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

30

Máquina EnumeradoraConfiguração

Instante 0

0q

Instante

sq

1x 1s#1t

Page 31: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

31

Instante

sq

3x 3s#3t

Instante

sq

2x 2s#2t

Page 32: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

32

Um conjunto é contável de existe umprocedimento de enumeração para ele

Observação:

Page 33: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

33

Exemplo:

O conjunto dos stringsé contável

},,{ cba

Vamos descrever um procedimento de enumeração

Prova:

Page 34: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

34

Procedimento ingênuo:

Produzir os strings em ordem lexicográfica:

aaaaaa

......

Não funciona: strings que começam com nunca serão produzidos

b

aaaa

Page 35: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

35

Procedimento melhor:

1. Produza todos os strings de comprimento 1

2. Produza todos os strings de comprimento 2

3. Produza todos os strings de comprimento 3

4. Produza todos os strings de comprimento 4

..........

Ordem Própria

Page 36: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

36

Produza strings em Ordem Própria:

aaabacbabbbccacbcc

aaaaabaac......

comprimento 2

comprimento 3

comprimento 1abc

Page 37: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

37

Teorema:

O conjunto de todas as Máquinas de Turing é contável

Prova:

Vamos mostrar um procedimento deenumeração para o conjunto de stringsque representam Máquinas de Turing

Qualquer Máquina de Turing pode ser codificada como um string de 0’s e 1’s

Page 38: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

38

1. Gere o próximo string binário de 0’s e 1’s na ordem própria

2. Verifique se o string descreve uma Máquina de Turing se SIM:SIM: imprima o string na fita se NÃO:NÃO: ignore o string

Procedimento de enumeração:

Repita

Page 39: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

39

Conjuntos Não Contáveis

Page 40: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

40

Teorema:

Seja um conjunto infinito contável

O conjunto potência de :não é contável

S2S

S

Page 41: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

41

Prova:

Como é contável, podemos escreverS

},,,{ 321 sssS

Elementos deS

Page 42: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

42

Elementos do conjunto potência têm a forma:

},{ 31 ss

},,,{ 10975 ssss

……

Page 43: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

43

Podemos codificar cada elemento do conjuntopotência como um string binário de 0’s e 1’s

1s 2s 3s 4s

1 0 0 0}{ 1s

elementos doconj. potência

Codificação

0 1 1 0},{ 32 ss

1 0 1 1},,{ 431 sss

Page 44: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

44

Vamos supor, por contradição, que o conjunto potência seja contável.

Então: podemos enumeraros elementos do conjunto potência

Page 45: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

45

1 0 0 0 0

1 1 0 0 0

1 1 0 1 0

1 1 0 0 1

elementos do conj. potência Codificação

1t

2t

3t

4t

Page 46: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

46

Tome o conjunto cuja codificação é a sequência dos bits que são os complementos dos bits da diagonal

Page 47: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

47

1 0 0 0 0

1 1 0 0 0

1 1 0 1 0

1 1 0 0 1

1t

2t

3t

4t

Novo conjunto: 0011

(complemento binário da diagonal)

Page 48: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

48

o novo conjunto deve ser algum elemento do conjunto potênciait

Entretanto, isso é impossível:

o i-ésimo bit de deve sero complemento dele próprio

pela definição de :it

it

Contradição!!!

Page 49: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

49

Como temos uma contradição:

O conjunto potência of não é contável

S2 S

Page 50: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

50

Uma Aplicação: Linguagens

Alfabeto Exemplo : },{ ba

O conjunto de todos os Strings:

},,,,,,,,,{},{ * aabaaabbbaabaababaS infinito e contável

Page 51: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

51

Alfabeto Exemplo : },{ ba

O conjunto de todos os Strings:

},,,,,,,,,{},{ * aabaaabbbaabaababaS infinito e contável

Uma linguagem é um subconjunto de :

},,{ aababaaL

S

Page 52: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

52

Alfabeto Exemplo : },{ ba

O conjunto de todos os Strings:

},,,,,,,,,{},{ * aabaaabbbaabaababaS

infinito e contável

O conjunto potência de consiste de todas as linguagens sobre o alfabeto:

}},,,}{,{},{},{{2 aababaabaaS 1L 2L 3L 4L

não contável

S

Page 53: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

53

Conjunto de todas as linguagens: não contável

Conjunto de todas as MTs: contável

1L 2L 3L kL

1M 2M 3M

?

Existem uma infinidade de linguagens a mais do que Máquinas de Turing

Page 54: 1 Máquina de Turing Universal. 2 Máquinas de Turing são “ hardwired ” elas executam um único programa Uma limitação de Máquinas de Turing: Computadores

54

Existem linguagens que não são aceitas pornenhuma Máquina de Turing

Essas linguagens não podem ser descitas por meio de algoritmos

Conclusão: