1 Hierarquia de Chomsky. 2 Gramáticas Irrestritas: Produções String de variáveis e terminais...

Preview:

Citation preview

1

Hierarquia de Chomsky

2

Gramáticas Irrestritas:

Produçõesvu

String de variáveise terminais

String de variáveise terminais

3

Exemplo de gramática irrestrita:

dAc

cAaB

aBcS

4

Uma linguagem é recursivamente enumerávelse e somente se existe uma gramática irrestrita que gera

L

L

Teorema:

5

Gramáticas Sensíveis ao Contexto:

e: |||| vu

Produçõesvu

String de variáveis e terminais

String de variáveis e terminais

6

A linguagem }{ nnn cba

é sensível ao contexto:

aaAaaaB

BbbB

BbccAc

bAAb

aAbcabcS

|

|

7

Autômato Linear Limitado (LBA)é o mesmo que uma Máquina de Turingmas com uma diferença:

o espaço ocupado pelo string de entrada na fita é o único espaço da fita que pode ser usado ao longo da computação

8

[ ]a b c d e

marcador deextremidadeesquerda

string de entrada

marcador deextremidadedireita

espaço de trabalho na fita

Toda computação é feita entre os marcadores

Autômato Linear Limitado (LBA)

9

LBA’s são definidos como Não Deterministas

Problema em aberto:

LBA’s Não Deterministastêm o mesmo poder de computaçãoque LBA’s Deterministas ?

10

Exemplos de linguagens aceitas por LBAs:

}{ nnn cbaL

}{ !naL

LBAs têm mais poder computacional que NPDAs

Conclusão:

11

Vamos provar mais adiante:

LBA’s têm menos poder computacionalque Máquinas de Turing

12

Uma linguagem é sensível ao contexto se e somente se é aceita por um Autômato Linear LimitadoL

L

Teorema:

Existem linguagens recursivasmas que não são sensíveis ao contexto

Observação:

13

Não Recursivamente Enumerável

Recursivamente Enumerável

Recursiva

Sensível ao Contexto

Livre de Contexto

Regular

Hierarquia de Chomsky

14

Decidibilidade

15

Considere problemes com resposta SIM ou NÃO

Exemplos:

• Uma dada Máquina tem 3 estados ?M

• Um dado string é um número binário? w

• Um dado DFA aceita qualquer entrada? M

16

Um problema é decidível se alguma Máquina de Turing resolve (decide) este problema

Problemas Decidíveis:

• Uma Máquina tem três estados ?M

• Um string é um número binário? w

• Um DFA aceita qualquer entrada? M

17

Máquina deTuringEntrada:instânciado problema

SIM

NÃO

A máquina de Turing que resolve um problemaresponde SIM ou NÃO para cada instância

18

A máquina que decide um problema:

• Se a resposta é SIM pára em um estado SIM

• Se a resposta é NÃO pára em um estado NÃO

estados SiM e NÃO não necessariamentesão estados finais

19

SIM

NÃO

Máquina de Turing que decide um problema

estados SiM e NÃO são estados de parada

20

Existem problemas não decidíveis:

Problema tal que não existe uma MTque decida todas as instâncias do problema

21

Um problema não decidível simples:

O problema de pertinência

22

O Problema de Pertinência

Entrada: Máquina de Turing M

String w

Questão: aceita ? M w

23

Teorema:

O problema de pertinência não é decidível

Prova:Suponha, por contradição, queo problema de pertinência seja decidível

24

Existe uma Máquina de Turingque resolve o problema de pertinência

H

HM

w

SIM M aceita w

NÃO M rejeita w

25

Seja uma linguagem recursivamente enumerável

L

Seja uma Máquina de Turing que aceita

ML

Vamos provar que, se o problema de pertinênciaé decidível, então é também recursiva: L

A prova consiste em descrever uma MTque aceita e pára para qualquer entradaL

26

M aceita ?wNÃO

SIMM

w

Haceitaw

Máquina de Turing que aceitae pára para qualquer entrada

L

rejeitaw

27

Portanto, L é recursiva

Mas já provamos que existem linguagens quesão recursivamente enumeráveis e não são recursivas

Contradição!!!!

Como é escolhida arbitrariamente, isso prova que toda linguagem recursivamente enumerávelé também recursiva

L

28

Portanto, o problema de pertinêncianão é decidível

Fim da Prova

29

Um famoso problema não decidível:

O Problema da Parada

30

O Problema da Parada

Entrada: Máquina de TuringM

String w

Questão: pára sobre ? M w

31

Teorema:

O problema da parada é não decidível

Prova: Suponha, por contradição, queo problema da parada seja decidível

32

Existe uma Máquina de Turing que resolve o problema da parada

H

HM

w

SIM M pára sobrew

Mnãopára sobre

wNÃO

33

H

wwM 0q

yq

nq

Entrada: conteúdo inicial da fita

Codificaçãode M w

String

SIM

NÃO

Máquina H

34

Construa uma máquina tal que:

Se retorna SIM então loop infinitoH

Se retorna NÃO então páraH

35

H

wwM 0q

yq

nq NÃO

aq bq

Loop infinito

SIM

36

HConstrua a máquina :

Entrada:

Se M pára para a entrada Mw

Então loop infinito

Senão pára

Mw (máquina )M

37

MwMM wwcopia

MwH

H

38

HExecute com ela própria como entrada:

Entrada:

Se pára para a entrada

Então loop infinito

Senão pára

Hw ˆ (máquina )H

H Hw ˆ

39

sobre a entrada H Hw ˆ

Se pára então entra em loop infinito

Se não pára então pára

H

H

NÃO FAZ SENTIDO!!!!!

40

Portanto, temos uma contradição

O Problema da Parada é não decidível

Fim da Prova

41

Outra prova do mesmo teorema:

Se o problema da parada fosse decidível entãotoda linguagem recursivamente enumerávelseria também recursiva

42

Teorema:

O problema da parada é não decidível

Prova: Suponha, por contradição, queo problema da parada seja decidível

43

Existe uma Máquina deTuringque resolve o problema da parada

H

HM

w

SIM M pára sobrew

Mnão pára sobre

wNÃO

44

Seja uma linguagem recursamente enumerável L

Seja uma Máquina de Turing que aceitaM L

Vamos provar que é também recursiva: L

vamos descrever uma máquina de Turing que aceita e pára para qualquer entradaL

45

Mpára sobre ?wSIM

NÃOM

w

Execute sobre

Mw

Hrejeita w

aceita w

rejeitaw

Máquina de Turing que aceitae pára para qualquer entrada

L

Pára em estado final

Pára em estadonão final

46

Portanto L seria recursiva

Mas já provamos que existem linguagensrecursivamente enumeráveis que não são recursivas

Contradição!!!!

Como foi escolhida arbitrariamente, provamos que toda linguagem recursivamenteenumerável é também recursiva

L

47

Portanto, o problema da parada é não decidível

Fim da Prova

Recommended