1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem...

75
1 Reverso de uma Linguagem Regular

Transcript of 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem...

Page 1: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

1

Reverso de uma Linguagem Regular

Page 2: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

2

Teorema:reverso de uma linguagem regularé uma linguagem regular

RL L

Idéia da prova:Construa um NFA que aceita :RL

inverta as transições do NFAque aceita L

Page 3: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

3

ProvaComo é regular, existe um NFA que aceita

L

Exemplo:baabL *

a

b

ba

L

Page 4: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

4

Inverta as Transições

a

b

ba

Page 5: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

5

Torne o antigo estado inicial o estado final

a

b

ba

Page 6: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

6

Adicione um novo estado inicial

a

b

ba

Page 7: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

7

a

b

ba

A máquina resultante aceita RL

baabL *

ababLR *

RL é regular

Page 8: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

8

Gramáticas

Page 9: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

9

GramáticasGramáticas expressam linguagens

Exemplo: Inglês

verbpredicate

nounarticlephrasenoun

predicatephrasenounsentence

_

_

Page 10: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

10

walksverbrunsverb

dognounboynoun

thearticleaarticle

Page 11: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

11

Uma derivação de “the boy walks”:

walksboytheverbboytheverbnounthe

verbnounarticleverbphrasenounpredicatephrasenounsentence

__

Page 12: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

12

Uma derivação de “a dog runs”:

runsdogaverbdogaverbnouna

verbnounarticleverbphrasenounpredicatephrasenounsentence

__

Page 13: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

13

Linguagem da gramática:L = { “a boy runs”, “a boy walks”, “the boy runs”, “the boy walks”, “a dog runs”, “a dog walks”, “the dog runs”, “the dog walks” }

Page 14: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

14

Notação

dognounboynoun

Variável ouNão terminal

TerminalRegra deProdução

Page 15: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

15

Outro ExemploGramática:

Derivação da sentença :

SaSbS

abaSbS

ab

aSbS S

Page 16: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

16

aabbaaSbbaSbS

aSbS S

aabb

SaSbSGramática:

Derivação da sentença :

Page 17: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

17

Outras derivações:

aaabbbaaaSbbbaaSbbaSbS

aaaabbbbaaaaSbbbbaaaSbbbaaSbbaSbS

Page 18: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

18

Linguagem da gramática

SaSbS

}0:{ nbaL nn

Page 19: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

19

Mais Notação

Gramática

:V

:S

:P

Conjunto de variáveis

Conjunto de símbolos terminais

Variável inicial

Conjunto de regras de produção

Page 20: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

20

Exemplo

Gramática :

S

aSbSG

PSTVG ,,,

}{SV },{ baT

},{ SaSbSP

Page 21: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

21

Mais NotaçãoForma Sentencial: Uma sentença que contém variáveis e terminais

Exemplo:

aaabbbaaaSbbbaaSbbaSbS

forma sentencial sentença

Page 22: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

22

Escrevemos:

Como abreviação de:

aaabbbS*

aaabbbaaaSbbbaaSbbaSbS

Page 23: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

23

De modo geral:

Se:

nww*

1

nwwww 321

Page 24: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

24

Por default: ww*

Page 25: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

25

Exemplo

SaSbS

aaabbbS

aabbS

abS

S

*

*

*

*

Gramática Derivações

Page 26: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

26

baaaaaSbbbbaaSbb

aaSbbS

S

aSbSGramática

ExemploDerivações

Page 27: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

27

Outro Exemplo de GramáticaGramática :

AaAbAAbS

Derivações:

G

Page 28: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

28

Mais Derivações

aaaabbbbbaaaaAbbbbbaaaAbbbbaaAbbbaAbbAbS

bbaS

bbbaaaaaabbbbS

aaaabbbbbS

nn

Page 29: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

29

Linguagem de uma Gramática

Para uma gramática com variável inicial :

GS

}:{)( wSwGL

String de terminais

Page 30: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

30

ExemploGramática :

AaAbAAbS

Já que: bbaS nn

G

Page 31: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

31

Uma Notação Conveniente

AaAbA

|aAbA

thearticleaarticle

theaarticle |

Page 32: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

32

Gramáticas Lineares

Page 33: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

33

Gramáticas Lineares Gramáticas com no máximo uma variável

do lado direito de cada produção

Exemplos:

AaAbAAbS

SaSbS

Page 34: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

34

Uma Gramática Não-Linear

bSaSaSbS

SSSS

Gramática :G

)}()(:{)( wnwnwGL ba

Page 35: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

35

Outra Gramática Linear

Gramática :

AbBaBAAS

|

}0:{)( nbaGL nn

G

Page 36: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

36

Gramática Linear à DireitaTodas as produções têm a forma:

Exemplo:

xBA

xAou

aSabSS

Page 37: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

37

Gramática Linear à EsquerdaTodas as produções têm a forma:

Exemplo:

BxA

aBBAabA

AabS

|

xAou

Page 38: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

38

Gramáticas Regulares

Page 39: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

39

Gramáticas RegularesUma gramática regular é qualquergramática linear à direita ou à esquerda

Exemplos:

aSabSS

aBBAabA

AabS

|

1G 2G

Page 40: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

40

ObservaçãoGramáticas regulares geram

linguagens regularesExemplos:

aSabSS

aabGL *)()( 1

aBBAabA

AabS

|

1G2G

Page 41: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

41

Gramáticas Regulares Geram

Linguagens Regulares

Page 42: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

42

Teorema

LinguagensGeradas porGramáticas Regulares

LinguagensRegulares

Page 43: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

43

Teorema - Parte 1

Toda gramática regular gerauma linguagem regular

LinguagensGeradas porGramáticas Regulares

LinguagensRegulares

Page 44: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

44

Teorema - Parte 2

Toda linguagem regular é gerada por uma gramática regular

LinguagensGeradas porGramáticas Regulares

LinguagensRegulares

Page 45: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

45

Prova – Parte 1

LinguagensGeradas porGramáticas Regulares

Linguagensegulares

A linguagem gerada por umq gramática regular é regular

)(GLG

Page 46: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

46

O caso de Gramáticas Lineares à Direita

Seja uma gramática linear à direita

Vamos provar : é regular

Idéia da Prova: Vamos construir um NFA

com

G

)(GL

M)()( GLML

Page 47: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

47

Gramática é linear à direitaG

Exemplo:

aBbBBaaABaAS

|

|

Page 48: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

48

Construa o NFA tal quetodo estado é uma variável da gramática:

M

aBbBBaaABaAS

|

|

S FV

A

B

estado final especial

Page 49: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

49

Adicione arcos para cada produção:

S FV

A

B

a

aAS

Page 50: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

50

S FV

A

B

a

BaAS |

Page 51: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

51

S FV

A

B

a

BaaABaAS

|

a

a

Page 52: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

52

S FV

A

B

a

bBBBaaABaAS

|

a

a

b

Page 53: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

53

S FV

A

B

a

abBBBaaABaAS

|

|

a

a

b

a

Page 54: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

54

aaabaaaabBaaaBaAS

S FV

A

B

a

a

a

b

a

Page 55: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

55

S FV

A

B

a

a

a

b

aabBBBaaABaAS

|

|

G

M GramáticaNFA

abaaaabGLML**)()(

Page 56: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

56

Em GeralDada uma gramática linear à direita

com variáveis

e produções:

G

jmi VaaaV 21

mi aaaV 21

ou

Page 57: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

57

Construímos o NFA tal que:

cada variável corresponde a um estado:

M

iV

0VFV

1V

2V

3V

4V estado finalespecial

Page 58: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

58

Para cada produção:

adicionamos transições e os estados intermediários requeridos

jmi VaaaV 21

iV jV………

1a 2a ma

Page 59: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

59

Para cada produção:

adicionamos transições e os estados intermediários requeridos

mi aaaV 21

iV FV………

1a 2a ma

Page 60: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

60

O NFA resultante tem a forma:M

0VFV

1V

2V

3V

4V

1a

3a3a

4a

8a

2a 4a5a

9a5a

9a

)()( MLGL Temos que:

Page 61: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

61

O caso de Gramática Linear à Esquerda

Seja uma gramática linear à esquerda

Vamos provar: é regular

Idéia da Prova :Construir uma gramática linear à

direita com

G

)(GL

G RGLGL )()(

Page 62: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

62

Como é uma gramática linear à esquerdaas produções são da forma:

G

kaaBaA 21

kaaaA 21

Page 63: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

63

Construindo a gramática linear à direitaG

Em :G kaaBaA 21

Em :G BaaaA k 12

BvA R

Page 64: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

64

Construindo a gramática linear à direitaG

em :G kaaaA 21

Em :G 12aaaA k

vA

RvA

Page 65: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

65

É fácil ver que:

Como é linear à direita, temos:

RGLGL )()(

)(GL RGL )(

G

)(GLLinguagemRegular

LinguagemRegular

LinguagemRegular

Page 66: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

66

Prova - Parte 2

Toda linguagem regular é gerada por uma gramática regular

LG

LinguagensGeradas porGramáticas Regulares

LinguagensRegulares

Page 67: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

67

Idéia da Prova :Seja um NFA com . Construa, a apartir de uma gramática regular tal que

Toda linguagem regular é gerada por uma gramática regular

LG

M )(MLL

MG )()( GLML

Page 68: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

68

Como é regularexiste um NFA tal que

LM )(MLL

Exemplo:a

b

a

b*)*(* abbababL

)(MLL

M1q 2q

3q

0q

Page 69: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

69

Convertendo em uma gramática linear à direita

M

a

b

a

b

M0q 1q 2q

3q10 aqq

Page 70: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

70

a

b

a

b

M0q 1q 2q

3q21

11

10

aqqbqqaqq

Page 71: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

71

a

b

a

b

M0q 1q 2q

3q

32

21

11

10

bqqaqqbqqaqq

Page 72: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

72

a

b

a

b

M0q 1q 2q

3q

3

13

32

21

11

10

qqqbqqaqqbqqaqq

G

LMLGL )()(

Page 73: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

73

Em Geral

Para cada transição: aq p

Adicione a produção: apq

variável terminal variável

Page 74: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

74

Para cada estado final: fq

Adicione a produção: fq

Page 75: 1 Reverso de uma Linguagem Regular. 2 Teorema: reverso de uma linguagem regular é uma linguagem regular Idéia da prova: Construa um NFA que aceita : inverta.

75

Como é uma gramática linear à direta

é também uma gramática

regular

com

G

G

LMLGL )()(