Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capitulo 7
Capitulo 7
7.1.1 Definicin
Dado un alfabeto , las expresiones regulares sobre se definen
de forma recursiva por las siguientes reglas:
1. Las siguientes expresiones son expresiones regulares
primitivas:
a, siendo a.
2. Sean y expresiones regulares, entonces son expresiones
regulares derivadas:
+ (unin)
. (o simplemente ) (concatenacin)
* (cierre)
()
3. No hay ms expresiones regulares sobre que las
construidas mediante estas reglas.
=
=
=
=
=
2. L((aa)*(bb)*b)
L(a*)L((a+b))
=
L(a)*(L(a) L(b)) =
{,a,aa,aaa,...}{a,b}
{a,aa,...,b,ab,aab,...}
{an|n1}{anb|n0}
=
L(a)*L(a+b)
{a}*({a} {b})
{a2nb2m+1|n,m0}
Ejemplos:
={a,b,c}
1. c*.c+c*=c*?
c*.c+c* =
=
=
=
=
c*.c+c*+
c.c*+c*+
+c.c*+c*
c*+c*
c*
(por 6)
(por 11)
(por 2)
(por 7)
(por 2)
2. c+c*=c*?
c+c*
=
=
=
=
=
=
c++c.c*
+c+c.c*
+c.+c.c*
+c.(+c*)
+c.c*
c*
(por 7)
(por 2)
(por 4)
(por 3)
(por 6)
(por 7)
3. ((c+b.a)*.a*)*=((c+b.a)+a)* ?
4. Dado dos expresiones regulares R= b.c+a.c*.a.c+a.c*.c+a y
S=(b+a.c*a).c+a.c*. Representan S y R el mismo lenguaje?
5. Demuestre que las expresiones R=(a*.(b+c)*+b*)* y
S=(a+b+c)* son iguales.
Observacin: De este modo slo se puede demostrar que dos
expresiones regulares son equivalentes. Sin embargo, mediante
este mtodo, no es posible demostrar que dos expresiones
regulares describen lenguajes distintos.
Ejemplo:
q1
a
q0
c
q2
q 4*
b,d
q 3*
a,b,c
c
a,b,d
a,b,c,d
q5
a,d
a,b,c,d
x0=b.x1+c.x3+a.x5+d.x5+=b.x1+c.x3+(a+d).x5+
x1=c.x2+a.x0+(b+d).x5+
x2=d.x4+(a+b+c).x5+
x3=c.x3+(a+b+d).x5+
x4=(a+b+c+d).x5+
x5=(a+b+c+d).x5+
Observacin:
1. Se puede definir las ecuaciones caractersticas para
autmatas finitos deterministas y no deterministas.
2. Xi es una expresin regular (con variables) que describe las
cadenas que llevan del estado qi a un estado final.
Evidentemente L(X0)=L(A).
Teniendo todas las ecuaciones caractersticas, se puede resolver
la ecuacin para el estado inicial obteniendo la expresin regular
del lenguaje. El siguiente lema proporciona una regla para
eliminar las variables en las ecuaciones.
10
Lema 1:
Sea X una variable y A y B expresiones regulares. Si X=A.X+B
y L(A), enconces X=A*.B.
Demostracin:
Sea cualquier palabra xL(X) con |x|=n y X=A.X+B. Se
demuestra que se cumple xL(A*B).Consideramos la definicin
de X:
X=A.X+B
X=A.(A.X+B)+B=A2.X+A.B+B
X=A2.(A.X+B)+A.B+B=A3.X+A2.B+A.B+B
X=An+1.X+An.B++A.B+B= An+1.X+(An++A+).B
11
Observaciones:
La aplicacin de la regla Si X=A.X+B, enconces
X=A*.B slo es posible si L(A).
Si el autmata tiene transiciones , entonces es posible
que no se pude aplicar esta regla.
En consecuencia, ser necesario eliminar transiciones
antes (convertir el autmata en uno sin transiciones ).
Ejemplo:
q2
a
q0
a,
q 1*
x2=
x1=cx1+(a+)x0+
=c*.((a+)x0+)
=(c*.a+c*)x0+c*
x0=x1+ax2+
=((c*.a+c*)x0+c*)+a
=(c*.a+c*)x0+c*
(c*.a+c*)*.c* !!!!
q2
a
q0
a,
q 1*
c,a
{q0,q1}*
x2=
x01=(c+a)x01++ax2
=(c+a)x01++a=(c+a)x01+=(c+a)*.=(c+a)*
13
1
A
A
C
xA=0xB+1xA+
xB=0xC+1xA+
xC=0xC+1xC+
Solucin: xA=(01+1)*(0+)
3.
q1
a,b,c
q0
q 3*
a,b,c
c
q2
a
Solucin: x0=b+c.c*.a
q4
a,b,c
4. Autmata no determinista
q 1*
Solucin:
x0=(b+a.c*a)*.a.c*
q0
b
c,
q2
14
R=
R={}
R={a1}
A
a1 an
q0
* qf
q0
A
a1 an
{qf}
q0
* qf
q0
qf *
A
a1
an
q0 {qf}
* qf
q0
a1
qf *
qf *
15
Si R=R1+R2 :
A
a1 an
{q0_R1,q0_R2}
q0
q0_R1
qf_R1
{qf}
q0_R2
qf_R2
{qf}
* qf
q0_R1
R1
qf_R1
q f*
q0
q0_R2
R2
qf_R2
Si R=R1.R2 :
A
a1 an
{q0_R1}
q0
q0_R1
qf_R1
{q0_R2}
q0_R2
qf_R2
{qf}
* qf
q0
q0_R1
qf_R1
R1
q0_R2
R2
qf_R2
Si R=R1*:
a1 an
{q0_R1,
qf}
q0_R1
qf_R1
{qf}
* qf
{q0}
q f*
A
q0
q0
q0_R1
R1
qf_R1
q f*
16
q f*
17
q1
q0
1
q2
1,
0,
q f*
q 0*
q 1*
0
q2
1
1,0
2. R=(1+01*)*
3. R=a.a*.b.b*
4. R= (b+a).a*
18
Corolario:
Sean LREG, LAF y LER las clases de los lenguajes aceptados por
autmatas finitos, generados por gramticas regulares y descritos
por expresiones regulares, respectivamente.
LREG=LAF=LER
Gramticas regulares
Gramtica Lineal por
la izquierda
Autmatas Finitos
Autmatas Finitos
Deterministas
Autmatas Finitos NO
Deterministas
Expresiones Regulares
19