1 reverso de uma linguagem regular. 2 teorema: reverso de uma linguagem regular é uma linguagem...

75
1 Reverso de uma Linguagem Regular

Upload: julia-graca-bergmann

Post on 07-Apr-2016

284 views

Category:

Documents


10 download

TRANSCRIPT

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 )()(