1 Formas Normais de Gramáticas Livres de Contexto.

58
1 Formas Normais de Gramáticas Livres de Contexto

Transcript of 1 Formas Normais de Gramáticas Livres de Contexto.

Page 1: 1 Formas Normais de Gramáticas Livres de Contexto.

1

Formas Normaisde

Gramáticas Livres de Contexto

Page 2: 1 Formas Normais de Gramáticas Livres de Contexto.

2

Forma Normal de Chomsky

Todas as produções têm a forma:

BCA

variável variável

aA e

terminal

Page 3: 1 Formas Normais de Gramáticas Livres de Contexto.

3

Exemplos:

bA

SAA

aS

ASS

Não Forma Normalde Chomsky

aaA

SAA

AASS

ASS

Forma Normalde Chomsky

Page 4: 1 Formas Normais de Gramáticas Livres de Contexto.

4

Conversão para Forma Normal de Chomsky

Exemplo:

AcB

aabA

ABaS

NãoForma Normalde Chomsky

Page 5: 1 Formas Normais de Gramáticas Livres de Contexto.

5

AcB

aabA

ABaS

Introduza variáveis para terminais:

cT

bT

aT

ATB

TTTA

ABTS

c

b

a

c

baa

a

cba TTT ,,

Page 6: 1 Formas Normais de Gramáticas Livres de Contexto.

6

Introduza variável intermediária:

cT

bT

aT

ATB

TTTA

ABTS

c

b

a

c

baa

a

cT

bT

aT

ATB

TTTA

BTV

AVS

c

b

a

c

baa

a

1

1

1V

Page 7: 1 Formas Normais de Gramáticas Livres de Contexto.

7

Introduza variável intermediária:

cT

bT

aT

ATB

TTV

VTA

BTV

AVS

c

b

a

c

ba

a

a

2

2

1

1

2V

cT

bT

aT

ATB

TTTA

BTV

AVS

c

b

a

c

baa

a

1

1

Page 8: 1 Formas Normais de Gramáticas Livres de Contexto.

8

Gramática Final na Forma Normal de Chomsky:

cT

bT

aT

ATB

TTV

VTA

BTV

AVS

c

b

a

c

ba

a

a

2

2

1

1

AcB

aabA

ABaS

Gramática inicial

Page 9: 1 Formas Normais de Gramáticas Livres de Contexto.

9

De qualquer gramática livre de contextoque não esteja na Forma Normal de Chomsky

podemos obter: Uma gramática equivalente na Forma Normal de Chomsky

Em geral:

Page 10: 1 Formas Normais de Gramáticas Livres de Contexto.

10

O Procedimento

Primeiro remova:

Variáveis nulas

Produções Unitárias

Page 11: 1 Formas Normais de Gramáticas Livres de Contexto.

11

Para cada símbolo : a

Nas produções: substitua por a aT

Adicione a produção aTa

Nova variável: aT

Page 12: 1 Formas Normais de Gramáticas Livres de Contexto.

12

Substitua toda produção nCCCA 21

por

nnn CCV

VCV

VCA

12

221

11

Novas variáveis intermediárias:

221 ,,, nVVV

Page 13: 1 Formas Normais de Gramáticas Livres de Contexto.

13

Teorema:

Para toda gramática livre de contextoexiste uma gramática equivalentena Forma Normal de Chomsky

Page 14: 1 Formas Normais de Gramáticas Livres de Contexto.

14

Observações

• Formas normais de Chomsky são boas para parsing e para a prova de teoremas

• É muito fácil encontrar a Forma Normal de Chomsky para qualquer gramática livre de contexto

Page 15: 1 Formas Normais de Gramáticas Livres de Contexto.

15

Forma Normal de Greinbach

Todas as produções têm a forma:

kVVVaA 21

terminal variáveis

0k

Page 16: 1 Formas Normais de Gramáticas Livres de Contexto.

16

Exemplos:

bB

bbBaAA

cABS

||

Forma Normal de Greinbach

aaS

abSbS

Não Forma Normal de Greinbach

Page 17: 1 Formas Normais de Gramáticas Livres de Contexto.

17

aaS

abSbS

Conversão para a Forma Normal de Greinbach:

bT

aT

aTS

STaTS

b

a

a

bb

Forma Normalde Greinbach

Page 18: 1 Formas Normais de Gramáticas Livres de Contexto.

18

Teorema:

Para qualquer gramática livre de contextoexiste uma gramática equivalentena Forma Normal de Greinbach

Page 19: 1 Formas Normais de Gramáticas Livres de Contexto.

19

Observações

• Formas normais de Greinbach são muito boas para parsing

• É difícil obter a Forma Normal de Greinbach para qualquer gramática livre de contexto

Page 20: 1 Formas Normais de Gramáticas Livres de Contexto.

20

Uma Aplicação de

Forma Normal de Chomsky

Page 21: 1 Formas Normais de Gramáticas Livres de Contexto.

21

O Algoritmo CYK

Entrada:

• Gramática na Forma Normal de ChomskyG

• String

Saída:

ou não )(GLw

w

se

Page 22: 1 Formas Normais de Gramáticas Livres de Contexto.

22

Algoritmo CKY

• Gramática :G

bB

ABB

aA

BBA

ABS

• String : w aabbb

Exemplo de entrada:

Page 23: 1 Formas Normais de Gramáticas Livres de Contexto.

23

a a b b b

aa ab bb bb

aab abb bbb

aabb abbb

aabbb

aabbb

Page 24: 1 Formas Normais de Gramáticas Livres de Contexto.

24

aA

aA

bB

bB

bB

aa ab bb bb

aab abb bbb

aabb abbb

aabbb

bB

ABB

aA

BBA

ABS

Page 25: 1 Formas Normais de Gramáticas Livres de Contexto.

25

aA

aA

bB

bB

bB

aa abS,B

bbA

bbA

aab abb bbb

aabb abbb

aabbb

bB

ABB

aA

BBA

ABS

Page 26: 1 Formas Normais de Gramáticas Livres de Contexto.

26

aA

aA

bB

bB

bB

aa abS,B

bbA

bbA

aabS,B

abbA

bbbS,B

aabbA

abbbS,B

aabbbS,B

bB

ABB

aA

BBA

ABS

Page 27: 1 Formas Normais de Gramáticas Livres de Contexto.

27

Portanto: )(GLaabbb

Complexidade deTempo :3||w

O algoritmo CYK pode ser facilmente convertido em um parser

Observação:

Page 28: 1 Formas Normais de Gramáticas Livres de Contexto.

28

Autômatos de PilhaPDAs

Page 29: 1 Formas Normais de Gramáticas Livres de Contexto.

29

Autômato de Pilha -- PDA

String de entrada

Pilha

Estados

Page 30: 1 Formas Normais de Gramáticas Livres de Contexto.

30

Símbolo Marcador de Fundo de Pilha

Pilha Pilha

fundo de pilhasímbolo especial

Page 31: 1 Formas Normais de Gramáticas Livres de Contexto.

31

Os Estates

Símbolona entrada

Símbolodesempilhado

Símboloempilhado

Page 32: 1 Formas Normais de Gramáticas Livres de Contexto.

32

topo

entrada

pilha

Substitua

$ $

c

Page 33: 1 Formas Normais de Gramáticas Livres de Contexto.

33

Push

$ $

c

topo

entrada

pilha

Page 34: 1 Formas Normais de Gramáticas Livres de Contexto.

34

Pop

$ $

topo

entrada

pilha

Page 35: 1 Formas Normais de Gramáticas Livres de Contexto.

35

Não Muda

$ $

btopo

entrada

pilha

Page 36: 1 Formas Normais de Gramáticas Livres de Contexto.

36

Não Determinismo

Page 37: 1 Formas Normais de Gramáticas Livres de Contexto.

37

NPDA: PDA Não Determinista

Exemplo:

Page 38: 1 Formas Normais de Gramáticas Livres de Contexto.

38

0q

Exemplo de Execução:

Entrada

estadocorrente

Instante 0

Pilha

Page 39: 1 Formas Normais de Gramáticas Livres de Contexto.

39

Entrada

Instante 1

Pilha

Page 40: 1 Formas Normais de Gramáticas Livres de Contexto.

40

Entrada

Pilha

Instante 2

Page 41: 1 Formas Normais de Gramáticas Livres de Contexto.

41

Input

Pilha

Instante 3

Page 42: 1 Formas Normais de Gramáticas Livres de Contexto.

42

Entrada

Pilha

Time 4

Page 43: 1 Formas Normais de Gramáticas Livres de Contexto.

43

Entrada

Pilha

Instante 5

Page 44: 1 Formas Normais de Gramáticas Livres de Contexto.

44

Entrada

Pilha

Instante 6

Page 45: 1 Formas Normais de Gramáticas Livres de Contexto.

45

Entrada

Pilha

Instante 7

Page 46: 1 Formas Normais de Gramáticas Livres de Contexto.

46

Entrada

Instante 8

aceita

Pilha

Page 47: 1 Formas Normais de Gramáticas Livres de Contexto.

47

Um string é aceito se:

• Toda a entrada é consumida

• O último estado é um estado final

A pilha está vazia no final

Page 48: 1 Formas Normais de Gramáticas Livres de Contexto.

48

O string de entradaé aceito pelo NPDA:

aaabbb

Page 49: 1 Formas Normais de Gramáticas Livres de Contexto.

49

}0:{ nbaL nn

é a linguagem aceita pelo NPDA:

Em geral,

Page 50: 1 Formas Normais de Gramáticas Livres de Contexto.

50

Autômato de Pilha - convenções• Adotamos a convenção de que um autômato

de pilha M aceita um string w se algum caminho de computação de w em M, iniciando no estado inicial, com a pilha vazia, termina em um estado final, com a pilha vazia.

• Assim, todo autômato começa emplilhando o marcador de fundo de pilha e toda transição que leva a um estado final desempliha esse marcador de fundo de pilha.

• Para simplificar, daqui em diante vamos supor que a pilha já começa tendo o marcador no fundo e que um string é aceito se a computação termina em um estado final, tendo a pilha apenas este marcador.

Page 51: 1 Formas Normais de Gramáticas Livres de Contexto.

51

Outro Exemplo de NPDA

bb

aa

,

,

bb

aa

,

,

NPDA M

}{)( RwwML

Page 52: 1 Formas Normais de Gramáticas Livres de Contexto.

52

Exemplo de Execução:

Entrada

Instante 0

Pilha

bb

aa

,

,

bb

aa

,

,

Page 53: 1 Formas Normais de Gramáticas Livres de Contexto.

53

Entrada

Instante 1

Pilha

bb

aa

,

,

bb

aa

,

,

Page 54: 1 Formas Normais de Gramáticas Livres de Contexto.

54

Entrada

Instante 2

Pilha

bb

aa

,

,

bb

aa

,

,

Page 55: 1 Formas Normais de Gramáticas Livres de Contexto.

55

Entrada

Instante 3

Pilha

bb

aa

,

,

bb

aa

,

,

Page 56: 1 Formas Normais de Gramáticas Livres de Contexto.

56

Entrada

Instante 4

Stack

bb

aa

,

,

bb

aa

,

,

Page 57: 1 Formas Normais de Gramáticas Livres de Contexto.

57

Entrada

Instante 5

Pilha

1q

bb

aa

,

,

bb

aa

,

,

Page 58: 1 Formas Normais de Gramáticas Livres de Contexto.

58

Entrada

Instante 6

Pilha

bb

aa

,

,

bb

aa

,

,

aceita