60
1 Linguagens Recursivamente Enumeráveis e Recursivas

1 Linguagens Recursivamente Enumeráveis e Recursivas

Embed Size (px)

Citation preview

Page 1: 1 Linguagens Recursivamente Enumeráveis e Recursivas

1

Linguagens

Recursivamente Enumeráveis

e Recursivas

Page 2: 1 Linguagens Recursivamente Enumeráveis e Recursivas

2

Definição:

Uma linguagem é recursivamente enumerável

se existe alguma Máquina de Turing que aceita tal linguagem

Page 3: 1 Linguagens Recursivamente Enumeráveis e Recursivas

3

Para um string :

Seja uma linguagem recursivamente enumerávelL

e uma Máquina de Turing que a aceitaM

Lw

w

se então pára em um estado finalM

Lwse então pára em estado não final

M

ou entra em loop infinito

Page 4: 1 Linguagens Recursivamente Enumeráveis e Recursivas

4

Definição:

Uma linguagem é recursiva

se existe uma MT que aceita a linguagem e que pára para qualquer string de entrada

Em outras palavras: Uma linguagem é recursiva se existe um algoritmo de pertinência para essa linguagem

Page 5: 1 Linguagens Recursivamente Enumeráveis e Recursivas

5

Para qualquer string :

Seja uma linguagem recursivaL

e uma máquina de Turing que a aceitaM

Lw

w

se então pára em um estado finalM

Lwse então pára em um estado não final

M

Page 6: 1 Linguagens Recursivamente Enumeráveis e Recursivas

6

Vamos provar que:

1. Existe uma linguagem específica que não é recursivamente enumerável(não é aceita por nenhuma Máquina de Turing)

2. Existe uma linguagem específica que é recursivamente enumerável mas não é recursiva

Page 7: 1 Linguagens Recursivamente Enumeráveis e Recursivas

7

Recursiva

Recursivamente Enumerável

Não Recursivamente Enumerável

Page 8: 1 Linguagens Recursivamente Enumeráveis e Recursivas

8

Primeiro vamos provar provar:

• Se uma linguagem é recursiva então existe um procedimento de enumeração para ela

• Uma linguagem é recursivamente enumerável se e somente se existe um procedimento de enumeração para ela

Page 9: 1 Linguagens Recursivamente Enumeráveis e Recursivas

9

Teorema:

Se é uma linguagem recursiva entãoexiste um procedimento de enumeração para

L

L

Page 10: 1 Linguagens Recursivamente Enumeráveis e Recursivas

10

Prova:

MM~

Máquina Enumeradora

Aceita LEnumera todos os strings do alfabeto de entrada

Page 11: 1 Linguagens Recursivamente Enumeráveis e Recursivas

11

Se o alfabeto é então pode enumerar os strings do seguinte modo:

},{ baM~

abaaabbabbaaaaab......

Page 12: 1 Linguagens Recursivamente Enumeráveis e Recursivas

12

Procedimento de Enumeração

Repita:

M~ gera um string

M

w

verifica se Lw

SIM: imprime na saídaw

NÃO: ignoraw

Fim da Prova

Page 13: 1 Linguagens Recursivamente Enumeráveis e Recursivas

13

Exemplo:

M~

abaaabbabbaaaaab......

)(ML

b

ab

bbaaa

......

,....},,,{ aaabbabbL Saída do

Enumerador

b

ab

bbaaa

......

Page 14: 1 Linguagens Recursivamente Enumeráveis e Recursivas

14

Teorema:

Se uma linguagem é recursivamente enumerável entãoexiste um procedimento de enumeração para ela

L

Page 15: 1 Linguagens Recursivamente Enumeráveis e Recursivas

15

Prova:

MM~

Máquina Enumeradora

Aceita LEnumera todos os stringsdo alfabeto de entrada

Page 16: 1 Linguagens Recursivamente Enumeráveis e Recursivas

16

Se o alfabeto é então pode enumerar os strings como:

},{ baM~

abaaabbabbaaaaab

Page 17: 1 Linguagens Recursivamente Enumeráveis e Recursivas

17

Procedimento de Enumeração

Repita: M~ gera um string

M

w

verifica se Lw

SIM: imprime na saídaw

NÃO: ignora w

ABORDAGEM INGÊNUA

Problema:Se a máquina pode ficar em loop

LwM

Page 18: 1 Linguagens Recursivamente Enumeráveis e Recursivas

18

M~

M

1w

executa o 1o. passo sobre

ABORDAGEM MELHOR

1w

M~ Gera o segundo string 2w

M executa o 1o. passo sobre 2w

e o 2o. passo sobre 1w

Gera o primeiro string

Page 19: 1 Linguagens Recursivamente Enumeráveis e Recursivas

19

M~ Gera o terceiro string 3w

M executa o 1o. passo sobre 3w

o 2o. passo sobre 2w

o 3o. passo sobre 1w

E assim por diante............

Page 20: 1 Linguagens Recursivamente Enumeráveis e Recursivas

20

1w 2w 3w 4w

1

Passo nostring

1 1 1

2 2 2 2

3 3 3 3

Page 21: 1 Linguagens Recursivamente Enumeráveis e Recursivas

21

Se, para um dado string ,a máquina pára em um estado final,então ela imprime na fita de saída

Miw

iw

Fim da Prova

Page 22: 1 Linguagens Recursivamente Enumeráveis e Recursivas

22

Teorema:

Se existe um procedimento de enumeraçãopara uma linguagem então é recursivamente enumerável

L

L

Page 23: 1 Linguagens Recursivamente Enumeráveis e Recursivas

23

Prova:

wfita de entrada

Enumeradorpara L

Compara

Máquina queaceita L

Page 24: 1 Linguagens Recursivamente Enumeráveis e Recursivas

24

Máquina de Turing que aceita L

Repita:

• Usando o enumerador, gere o próximo string de L

Para um string de entrada w

• Compare o string gerado comw

Se for igual, aceite e termine o loop

Fim da Prova

Page 25: 1 Linguagens Recursivamente Enumeráveis e Recursivas

25

Provamos:

Uma linguagem é recursivamente enumerávelse e somente seexiste um procedimento de enumeração p/

L

L

Page 26: 1 Linguagens Recursivamente Enumeráveis e Recursivas

26

Uma Linguagem que não é

Recursivamente Enumerável

Page 27: 1 Linguagens Recursivamente Enumeráveis e Recursivas

27

Queremos encontrar uma linguagem quenão seja Recursivamente Enumerável

Tal linguagem não é aceita por nenhumaMáquina de Turing

Page 28: 1 Linguagens Recursivamente Enumeráveis e Recursivas

28

Considere o alfabeto }{a

Strings: ,,,, aaaaaaaaaa

1a 2a 3a 4a

Page 29: 1 Linguagens Recursivamente Enumeráveis e Recursivas

29

Considere as Máquinas de Turingque aceitam linguagens sobre o alfabeto }{a

Esse conjunto de MTs é contável:

,,,, 4321 MMMM

Page 30: 1 Linguagens Recursivamente Enumeráveis e Recursivas

30

Exemplo de linguagem aceita por

},,{)( aaaaaaaaaaaaML i

},,{)( 642 aaaML i

iM

Representação alternativa

1a 2a 3a 4a 5a 6a 7a

)( iML

0 1 1 10 0 0

Page 31: 1 Linguagens Recursivamente Enumeráveis e Recursivas

31

1a 2a 3a 4a

)( 1ML

0 1 10

)( 2ML

)( 3ML

01 0 1

0 1 11

)( 4ML 0 10 0

Page 32: 1 Linguagens Recursivamente Enumeráveis e Recursivas

32

Considere a linguagem

)}(:{ iii MLaaL

Lconsiste dos strings que têm 1 na diagonal

Page 33: 1 Linguagens Recursivamente Enumeráveis e Recursivas

33

1a 2a 3a 4a

)( 1ML

0 1 10

)( 2ML

)( 3ML

01 0 1

0 1 11

)( 4ML 0 10 0

},,{ 43 aaL

Page 34: 1 Linguagens Recursivamente Enumeráveis e Recursivas

34

Considere a linguagem

)}(:{ iii MLaaL

Lconsiste dos strings que têm 0 na diagonal

)}(:{ iii MLaaL

L

Page 35: 1 Linguagens Recursivamente Enumeráveis e Recursivas

35

1a 2a 3a 4a

)( 1ML

0 1 10

)( 2ML

)( 3ML

01 0 1

0 1 11

)( 4ML 0 10 0

},,{ 21 aaL

Page 36: 1 Linguagens Recursivamente Enumeráveis e Recursivas

36

Teorema:

A linguagem não é recursivamente enumerável

L

Page 37: 1 Linguagens Recursivamente Enumeráveis e Recursivas

37

Prova:

seja recursivamente enumerávelL

Suponha por contradição que

Então deve existir alguma máquinaque aceita

kML

LML k )(

Page 38: 1 Linguagens Recursivamente Enumeráveis e Recursivas

38

1a 2a 3a 4a

)( 1ML

0 1 10

)( 2ML

)( 3ML

01 0 1

0 1 11

)( 4ML 0 10 0

Questão: ?1MMk

Page 39: 1 Linguagens Recursivamente Enumeráveis e Recursivas

39

1a 2a 3a 4a

)( 1ML

0 1 10

)( 2ML

)( 3ML

01 0 1

0 1 11

)( 4ML 0 10 0

Resposta: 1MMk )(

)(

11

1

MLa

MLa k

Page 40: 1 Linguagens Recursivamente Enumeráveis e Recursivas

40

1a 2a 3a 4a

)( 1ML

0 1 10

)( 2ML

)( 3ML

01 0 1

0 1 11

)( 4ML 0 10 0

Questão: ?2MMk

Page 41: 1 Linguagens Recursivamente Enumeráveis e Recursivas

41

1a 2a 3a 4a

)( 1ML

0 1 10

)( 2ML

)( 3ML

01 0 1

0 1 11

)( 4ML 0 10 0

Resposta: 2MMk )(

)(

22

2

MLa

MLa k

Page 42: 1 Linguagens Recursivamente Enumeráveis e Recursivas

42

1a 2a 3a 4a

)( 1ML

0 1 10

)( 2ML

)( 3ML

01 0 1

0 1 11

)( 4ML 0 10 0

Questão: ?3MMk

Page 43: 1 Linguagens Recursivamente Enumeráveis e Recursivas

43

1a 2a 3a 4a

)( 1ML

0 1 10

)( 2ML

)( 3ML

01 0 1

0 1 11

)( 4ML 0 10 0

Resposta: 3MMk )(

)(

33

3

MLa

MLa k

Page 44: 1 Linguagens Recursivamente Enumeráveis e Recursivas

44

De maneira análoga: ik MM

)(

)(

ii

ki

MLa

MLa

)(

)(

ii

ki

MLa

MLa

para qualquer i

Porque temos que:

ou

Page 45: 1 Linguagens Recursivamente Enumeráveis e Recursivas

45

Então, a máquina não pode existir kM

Portanto, a linguagemnão é recursivamente enumerável

L

Fim da Prova

Page 46: 1 Linguagens Recursivamente Enumeráveis e Recursivas

46

Observação:

Não existe algoritmo que descrevaL

(caso contrário seria aceita por alguma Máquina de Turing)

L

Page 47: 1 Linguagens Recursivamente Enumeráveis e Recursivas

47

Recursiva

Recursivamente Enumerável

Não Recursivamente Enumerável

L

Page 48: 1 Linguagens Recursivamente Enumeráveis e Recursivas

48

Uma Linguagem que é Recursivamente

Enumerável e não é Recursiva

Page 49: 1 Linguagens Recursivamente Enumeráveis e Recursivas

49

Queremos encontrar uma linguagem que seja

Existe uma MT que aceita a linguagem

A máquina não pára paraalguma entrada

recursivamente enumerável

mas nãorecursiva

Page 50: 1 Linguagens Recursivamente Enumeráveis e Recursivas

50

Vamos provar que a linguagem

)}(:{ iii MLaaL

É recursivamente enumerávelmas não recursiva

Page 51: 1 Linguagens Recursivamente Enumeráveis e Recursivas

51

1a 2a 3a 4a

)( 1ML

0 1 10

)( 2ML

)( 3ML

01 0 1

0 1 11

)( 4ML 0 10 0

},,{ 43 aaL

Page 52: 1 Linguagens Recursivamente Enumeráveis e Recursivas

52

A linguagem

Teorema:

)}(:{ iii MLaaL

é recursivamente enumerável

Page 53: 1 Linguagens Recursivamente Enumeráveis e Recursivas

53

Prova:

Vamos mostrar uma Máquina de Turing que aceita L

Page 54: 1 Linguagens Recursivamente Enumeráveis e Recursivas

54

Máquina de Turing que aceita LPara qualquer string w

• Compute , para o qualiaw

• Encontre a Máquina de Turing iM(usando o procedimento de enumeração para máquinas de Turing)

• Simule sobre a entradaiM ia

• Se aceita, então aceitaiM w

i

Fim da Prova

Page 55: 1 Linguagens Recursivamente Enumeráveis e Recursivas

55

Observação:

)}(:{ iii MLaaL

)}(:{ iii MLaaL

Recursivamente enumerável

Não recursivamente enumerável

(Portanto, não recursiva)

Page 56: 1 Linguagens Recursivamente Enumeráveis e Recursivas

56

Teorema:

A linguagem )}(:{ iii MLaaL

não é recursiva

Page 57: 1 Linguagens Recursivamente Enumeráveis e Recursivas

57

Prova:

Suponha por contradição que seja recursiva

Então é recursiva:

L

L

Tome a Máquina de Turing que aceita M L

pára para qualquer entrada:M

Se aceita então rejeitaSe rejeita então aceita

MM

Page 58: 1 Linguagens Recursivamente Enumeráveis e Recursivas

58

Portanto:

L seria recursiva

Mas sabemos que:

Lnão é recursivamente enumerável

e, portanto, não é recursiva

CONTRADIÇÃO!!!!

Page 59: 1 Linguagens Recursivamente Enumeráveis e Recursivas

59

Portanto, não é recursivaL

Fim da Prova

Page 60: 1 Linguagens Recursivamente Enumeráveis e Recursivas

60

L

Recursiva

Recursivamente Enumerável

Não Recursivamente Enumerável

L