Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares...
Transcript of Gram´aticas Regularesregivan/pub/MatDidatico/TC/Trans... · 2015. 2. 2. · Gram´aticas Regulares...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Gramaticas Regulares
Equivalencia entre GLD e GLE.
Leitura!!!
Regivan H. N. Santiago (DIMAp-UFRN) Gramaticas Regulares 11 de marco de 2007 15 / 15