Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares...

15
Gram´ aticas Regulares Regivan H. N. Santiago DIMAp-UFRN 11 de mar¸ co de 2007 Regivan H. N. Santiago (DIMAp-UFRN) Gram´ aticas Regulares 11 de mar¸ co de 2007 1 / 15

Transcript of Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares...

Page 1: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Regivan H. N. Santiago

DIMAp-UFRN

11 de marco de 2007

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 1 / 15

Page 2: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Definicao Uma gramatica G = 〈V ,T ,S ,P〉 diz-se linear se todas asproducoes sao da forma

A → wBA → BwA → w

onde A,B ∈ V e w ∈ T ∗.Uma gramatica linear e linear a esquerda se todas as producoes tem aforma A → Bw ou A → w . Analogamente, uma gramatica linear e lineara direita se todas as producoestem a forma A → wB ou A → w .Uma gramatica regular e uma gramatica linear a direita ou linear aesquerda.

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 2 / 15

Page 3: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Observe que nas gramatica lineares, lineares a direita, lineares a esquerda,todas as producoes tem no maximo uma variavel no lado direito daproducao, e uma e somente uma variavel no lado esquerdo das producoes.Observe que nem toda gramatica linear e regular. Por exemplo, agramatica

S → aS | Sb | ab

e linear mas nao e regular, pois nem e regular a direita nem regular aesquerda.

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 3 / 15

Page 4: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Exemplo A gramatica G1 = 〈{S}, {a, b},S ,P1〉, com P1 sendo

S → abS | a

e linear a direita. A gramatica G2 = 〈{S}, {a, b},S ,P2〉, com P2 sendo

S → Sba | a

e linear a esquerda. Ambas geram a mesma linguagem, isto e,L(G1) = L(G2).

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 4 / 15

Page 5: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Exemplo Descrever uma gramatica regular que gere a linguagem regularde todas as cadeias no alfabeto {0, 1} que nao contenham dois 0’sseguidos.

S → 0A | A

A → 1A | 10A | λ

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 5 / 15

Page 6: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Exemplo Descrever uma gramatica regular que gere a linguagem, sobre oalfabeto {a, b, c}, de todas as cadeias da forma anbmcp, com n ≥ 0,m ≥ 0 e p ≥ 0.

A → aA | BB → bB | CC → cC | λ

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 6 / 15

Page 7: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Exemplo Seja a linguagem LPal de todas as cadeias sobre o alfabeto{a, b} que quando lidas da esquerda para a direita seja o mesmo quequando lida da direita para a esquerda. Cadeias deste tipo sao conhecidascomo palındromos. Ou seja,

LPal = {w ∈ {a, b}∗ / w = wR}.

A gramatica G = 〈{S ,A,B}, {a, b},S ,P〉 com producoes

S → aA | bB | λA → Sa | λB → Sb | λ

gera esta linguagem, isto e, L(G ) = LPal . Observe que a gramatica G elinear mas nao e linear a direita, nem linear a esquerda, portanto nao eregular. Esta linguagem nao e regular e portanto nao existe qualquergramatica regular que a gere.

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 7 / 15

Page 8: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Gramaticas regulares e Automatos Finito

Theorema Seja G = 〈V ,T ,S ,P〉 uma gramatica linear a direita. EntaoL(G ) e uma linguagem regular.Prova Vamos assumir que V = {V0,V1, . . . ,Vn}, com S = V0 e que paracada i = 0, . . . , n, temos uma ou mais producoes da forma Vi → wiVj ouVi → wi . Se w e uma cadeia em L(G ), entao por causa da forma dasproducoes em G , a derivacao deve ter a forma

V0 =⇒ w1Vi1

=⇒ w1w2Vi2...∗=⇒ w1w2 . . .wkVik

=⇒ w1w2 . . .wkwk+1 = w

(1)

onde wi ∈ T ∗ para cada i = 1, . . . , k + 1.

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 8 / 15

Page 9: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Gramaticas regulares e Automatos Finito

O automato M a ser construıdo reproduzira a derivacao consumindo cadaum desses w ′

i s. O estado inicial do automato sera rotulado V0 e existiraum unico estado final Vf , com f > n. Para cada variavel Vi , comi = 0, . . . , n, existira um estado nao final rotulado Vi . Para cada producao

Vi → a1a2 . . . amVj ,

o automato tera transicoes para conectar Vi e Vj , isto e, δ sera definidotal que

δ∗(Vi , a1a2 . . . am) = Vj .

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 9 / 15

Page 10: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Gramaticas regulares e Automatos Finito

Para cada producao Vi → a1a2 . . . am, a transicao do automatocorrespondente sera δ∗(Vi , a1a2 . . . am) = Vf .

Os estados intermediarios necessarios para isso nao sao de interesse epodem ser dados rotulos arbitrarios. O esquema geral e mostrado nafigura 1. O automato completo e montado destas partes individuais.

Figura: Esquemas de automato

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 10 / 15

Page 11: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Gramaticas regulares e Automatos Finito

Exemplo Construir um automato que aceite a linguagem gerada pelagramatica

V0 → aV1

V1 → abV0 | b

Comecamos do grafo de transicao com vertices V0, V1 e Vf . V0 e o estadoinicial e Vf o estado final. A primeira regra de producao cria uma arestarotulada a entre V0 e V1. Para a segunda regra, precisamos introduzir umvertice adicional tal que exista um caminho rotulado ab entre V1 e V0.Finalmente, precisamos adicionar uma aresta rotulado b entre V1 e Vf ,dando o automato mostrado na figura 2. A linguagem gerada pelagramatica e reconhecida pelo automato e a linguagem regular L((aab)∗ab).

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 11 / 15

Page 12: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Gramaticas regulares e Automatos Finito

Figura: afn resultante de uma gramatica linear a direita.

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 12 / 15

Page 13: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Gramaticas regulares e Automatos Finito

Teorema

Se L e uma linguagem regular, sobre o alfabeto Σ, entao existe umagramatica linear a direita, G = 〈V ,T ,S ,P〉, tal que L(G ) = L.

Prova Seja M = 〈Q,Σ, δ, q0,F 〉 um afd tal que L(M) = L. Assumiremosque Q = {q0, q1, . . . , qn} e Σ = {a1, a2, . . . , am}. Vamos construir umagramatica linear a direita G = 〈V ,T ,S ,P〉, com V = {q0, q1, . . . , qn},T = Σ e S = q0 tal que L(G ) = L(M). Para cada transicao δ(qi , aj) = qk

de M, colocamos em P a producao qi → ajqk . Alem disso, para cada qf

em F , acrescentamos a P a producao qf → λ.

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 13 / 15

Page 14: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Gramaticas regulares e Automatos Finito

Exemplo: Seja o seguinte afd:

A gramatica LD correspondente e

G = 〈{q0, q1, q2}, {0, 1}, q0,P〉, onde

P e dado pelo seguinte conjunto de

producoes:

q0 → 0q0 | 1q1

q1 → 0q0 | 1q2 | λq2 → 0q2 | 1q1

Veja a geracao da cadeia 0011001:q0 =⇒ 0q0 =⇒ 00q0 =⇒001q1 =⇒ 0011q2 =⇒ 00110q2 =⇒001100q2 =⇒ 0011001q1 =⇒0011001λ = 001100.

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 14 / 15

Page 15: Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares Exemplo Seja a linguagem L Pal de todas as cadeias sobre o alfabeto {a,b} que quando

Gramaticas Regulares

Equivalencia entre GLD e GLE.

Leitura!!!

Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 15 / 15