Gramáticas Regulares - Universidad Rey Juan Carlos

Anuncio
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
Tema 2: Gramáticas Regulares
Holger Billhardt
[email protected]
Lenguajes Regulares (Motivación)
n 
Hay distintas formas de de representación de lenguajes
regulares, equivalentes entre sí (se puede realizar
transformaciones entre ellos).
Gramáticas regulares
Gramática Lineal
por la izquierda
Gramática Lineal
por la Derecha
Autómatas Finitos
Autómatas Finitos
Deterministas
Autómatas Finitos
NO Deterministas
Expresiones regulares
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
2
1
Sumario
Tema 2: Gramáticas Regulares .
n 
1. 
Equivalencia de Gramáticas Regulares
1. 
2. 
Lema
Teorema de Equivalencia
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
3
Sumario
Tema 4: Gramáticas Regulares .
n 
1. 
Equivalencia de Gramáticas Regulares
1. 
2. 
Lema
Teorema de Equivalencia
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
4
2
Equivalencia de Gramáticas Regulares
Lema:
n 
q 
Para toda gramática lineal derecha G=(∑N,∑T,S,P)
existe otra gramática lineal derecha equivalente G’,
que no contiene reglas de la forma A::=aS
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
5
Equivalencia de Gramáticas Regulares
q 
q 
Idea de demostración:
Se genera una nueva gramática G’ como sigue:
n 
1. 
2. 
Se pueden considerar dos casos:
G no contiene reglas de la forma A::=aS. En este caso, G’=G.
G sí las contiene. En este caso, G’=(∑N∪{B},∑T,S,P’), siendo B
un nuevo símbolo no terminal, y P’ el siguiente conjunto de
reglas de producción:
P’ = P - {A::=aS ∈ P}
∪ {A::=aB | A::=aS ∈ P}
∪ {A::=a | A::=aS ∈ P y S::=λ ∈ P}
∪ {B::=x | S::=x ∈ P y x≠aS y x∈∑+}
∪ {B::=aB | S::=aS ∈ P}
∪ {B::=a | S::=aS ∈ P y S::=λ ∈ P}
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
6
3
Equivalencia de Gramáticas Regulares
q 
Evidentemente, G’ no contiene reglas de la forma
A::=aS. Por otra parte, L(G’)=L(G), ya que las
derivaciones en las que aparece algún símbolo A dan
lugar a las mismas palabras en ambos casos
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
7
Equivalencia de Gramáticas Regulares
q 
Ejemplos:
Sea la gramática G=({S,A},{a,b},S,{S::=bA, A::=aS|a})
⇒La gramática G’ equivalente, sin la producción A::=aS es la
siguiente:
G’=({S,A,B},{a,b},S,{S::=bA, A::=aB|a, B::=bA})
Se cumple que L(G)=L(G’)= {(ba)i| i≥1}.
n 
Sea la gramática G=({S,A},{a,b},S,{S::=bA|λ, A::=aS})
⇒La gramática G’ equivalente, sin la producción A::=aS es la
siguiente:
G’=({S,A,B},{a,b},S,{S::=bA|λ, A::=aB|a, B::=bA})
Se cumple que L(G)=L(G’)= {(ba)i| i≥1}.
¿Qué pasaría si no se añade la regla A::=a?
n 
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
8
4
Equivalencia de Gramáticas Regulares
q 
Ejemplos:
Situación con S::=aS ∈ P:
añadir B::=aS no valdría ⇒ hay que añadir B::=aB
Sea la gramática
G=({S,A},{0,1},S,{S::=0S|1A|λ, A::=0S|0})
¿Cómo será la gramática equivalente sin reglas A::=aS?
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
9
Equivalencia de Gramáticas Regulares
n 
Teorema de equivalencia:
q 
Para toda gramática lineal por la derecha GD=
(∑N,∑T,S,PD) existe una gramática lineal por la
izquierda GI, tal que L(GD)=L(GI).
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
10
5
Equivalencia de Gramáticas Regulares
q 
Idea de Demostración:
Considérese la gramática construida mediante los siguientes
pasos:
1.  Obtener la gramática G’D=(∑’N,∑T,S,P’D) equivalente a GD sin
reglas de la forma A::=aS (mediante el resultado del lema
anterior).
2.  Construir un grafo dirigido, que denominaremos directo,
asociado a G’D, de la siguiente forma:
§  El conjunto de nodos coincide con ∑’N ∪{λ}
§  Si A::=aB ∈ P’D, incluir un arco de A a B etiquetado con a
§  Si A::=a ∈ P’D, incluir un arco de A a λ etiquetado con a
§  Si S::= λ ∈ P’D, incluir un arco de S a λ sin etiquetar
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
11
Equivalencia de Gramáticas Regulares
3. 
4. 
A partir del grafo directo, construir su grafo inverso asociado,
de la siguiente forma:
§  Intercambiar los nodos S y λ
§  Invertir el sentido de las flechas de todos los arcos
La gramática GI=(∑’N,∑T,S,PI) se obtiene a partir del grafo
inverso de la siguiente forma:
§  Si existe arco desde A hasta B etiquetado con a, incluir
A::=Ba en PI
§  Si existe arco desde A hasta λ etiquetado con a, incluir
A::=a en PI
§  Si existe arco desde S hasta λ, incluir S::=λ en PI
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
12
6
Equivalencia de Gramáticas Regulares
n 
Se puede observar que:
q  Existe una correspondencia directa entre las palabras generadas por
la gramática G’D/GI y todos los caminos posibles desde el nodo S al
nodo λ en el grafo directo/inverso:
a1a2…an∈L(G’D):
sii S→a1A1→a1a2A2→…→a1a2…An-1→ a1a2…an (en G’D)
n  sii a1a2…an es un camino del grafo diretco desde S hasta λ
n  sii an…a2a1 es un camino del grafo inverso desde S hasta λ
n  sii S→An-1an→…→A1…an→a1a2…an (en GI)
n  sii a1a2…an∈L(GI)
(“sii” = sí y sólo si)
n 
n 
Lo que demuestra la equivalencia entre G’D y GI
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
13
Equivalencia de Gramáticas Regulares
n 
Teorema de Equivalencia:
q 
q 
Para toda gramática lineal por la izquierda GI=
(∑N,∑T,S,Pi) existe una gramática lineal por la derecha
GD, tal que L(GD)=L(GI).
Demostración:
n 
Similar al teorema anterior.
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
14
7
Equivalencia de Gramáticas Regulares
Ejemplos:
n 
q 
Sea la gramática: GD=({S,B},{0,1},S,{S::=1B|1, B::=0S})
Obtener una gramática lineal por la izquierda equivalente
siguiendo los pasos anteriores:
1. 
Gramática sin producciones A::=aS
G’D=({S,B,A},{0,1},S,{S::=1B|1, B::=0A, A::=1B|1})
S→1B→10A→101B→1010A→…→101…010A→1(01)n
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
15
Equivalencia de Gramáticas Regulares
2. 
Grafo Directo:
1
S
λ
1
1
0
B
A
1
3. 
Grafo Inverso:
1
S
λ
1
1
0
B
A
1
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
16
8
Equivalencia de Gramáticas Regulares
4. 
Lectura del grafo:
GI=({S,B,A},{0,1},S,{S::=A1|1, B::=A1|1, A::=B0})
S→A1→B01→A101→B0101→…→B(01)n→1(01)n
¿Que pasaría si no se tuviera en cuenta el paso 1?
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
17
Equivalencia de Gramáticas Regulares
Ejemplo:
n 
q 
Sea la gramática lineal por la derecha: G=({S,A},
{0,1},S,{S::=0S | 1A |λ, A::=0S|0}).
Obtener una gramática lineal por la izquierda
equivalente
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
18
9
Equivalencia de Gramáticas Regulares
n 
Gramáticas que generan lenguajes regulares
q 
Sea G una gramática que NO es regular. ¿Es posible
que el lenguaje L(G) sea regular?
⇒ SI. Un lenguaje es regular si existe una gramática
lineal por la izquierda (o lineal por la derecha) que lo
genere.
q 
Para saber si el lenguaje L descrito por una gramática
no regular G es regular podemos intentar transformar
la gramática G en una gramática equivalente que sea
regular.
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
Universidad Rey Juan Carlos
19
Equivalencia de Gramáticas Regulares
n 
Ejemplos:
q 
G=({A,S,C},{a,b,c},S,{S::=aS|bA, A::=bA|b|Cc, C::=b})
q 
analizamos:
n 
n 
de C sólo se puede derivar b
Por tanto, podemos sustituir cualquier C en el cuerpo de una
regla de la gramática en una b y eliminar la regla C::=b. Se
obtiene:
G =({A,S},{a,b,c},S,{S::=aS|bA, A::=bA|b|bc})
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
20
10
Equivalencia de Gramáticas Regulares
q 
Ahora podemos sustituir la regla A::=bc por las reglas
A::=bD y D::=c (D tiene que ser una nueva variable).
Se obtiene la gramática lineal por la derecha:
G
=({A,S,D},{a,b,c},S,{S::=aS|bA,A::=bA|b|bD,D::=c})
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
21
Equivalencia de Gramáticas Regulares
n 
Ejemplos:
G=({A,S,C},{a,b},S,{S::=aS|bAaC, bA::=bA|b, C::=Cb|b})
Obtener una gramática lineal por la derecha
equivalente.
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
22
11
Equivalencia de Gramáticas Regulares
n 
Ejemplos:
G=({A,S},{a,b,c},S,{S::=bA, A::=bAa|a})
¿Puede construirse una gramática lineal por la
derecha equivalente?
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
23
Equivalencia de Gramáticas Regulares
n 
Ejemplos:
G=({A,S},{a,b},S,{S::=bA | aS | bS | λ, A::=bAa | a})
¿Puede construirse una gramática lineal por la
derecha equivalente?
Universidad Rey Juan Carlos
Máquinas Secuenciales, Autómatas y Lenguajes
Formales
24
12
Descargar