Академический Документы
Профессиональный Документы
Культура Документы
7.1.1. Definicin
7.1.3. Propiedades
1
7.1. Concepto de Expresin Regular
Ejemplo:
1. Lenguaje formado por las cadenas que terminan en 01:
{0,1}*.{01}=
({0}{1})*.{01}
Expresin regular: (0+1)*01
2. Lenguaje formado por palabras de longitud par sobre as y
bs:
{aa,ab,ba,bb}*=
({aa}{ab}{ba}{bb})*
Expresin: (aa+ab+ba+bb)*
2
7.1.1 Definicin
Ejemplo:
Algunos ejemplos de expresin regular son:
(0 + 1)*01
(aa + ab + ba + bb)*
a*(a + b)
(aa)*(bb)*b
3
7.1.2 Lenguaje descrito por una ER
4
Ejemplo: Mostrar el lenguaje descrito por una ER mediante
notacin conjuntista:
2. L((aa)*(bb)*b) = {a2nb2m+1|n,m0}
4. L(a*.(b+c))
5. L(0*.1.0*)
6. L((a+b+c+...+z)*.(a+b)*)
5
7.1.3 Propiedades de Expresiones Regulares
Respecto a la operacin *:
7. *=+.*
8. *=
9. *=
10. *.*=*
11. .*=*.
12. (*)*=*
13. (*+*)*=(*.*)*=(+)*=(*.)*.*
14. (.)*.=.(.)*
Para comprobar si dos expresiones son equivalentes se puede
intentar transformarlos mediante estas reglas en una misma
expresin.
6
Ejemplos:
={a,b,c}
1. c*.c+c*=c*?
c*.c+c* = c*.c+c*+ (por 6)
= c.c*+c*+ (por 11)
= +c.c*+c* (por 2)
= c*+c* (por 7)
= c* (por 2)
2. c+c*=c*?
c+c* = c++c.c* (por 7)
= +c+c.c* (por 2)
= +c.+c.c* (por 4)
= +c.(+c*) (por 3)
= +c.c* (por 6)
= c* (por 7)
3. ((c+b.a)*.a*)*=((c+b.a)+a)* ?
7
7.2 Teoremas de equivalencia
8
7.2.1 ER equivalente a un autmata finito
Tres mtodos principales para convertir expresiones regulares en
autmatas:
Mtodo de las rnij (Hopcroft).
Eliminacin de estados (Hopcroft,Linz)
Ecuaciones caractersticas (Alfonseca, Isasi) (equivalente al
mtodo de la eliminacin de estados)
donde:
La expresin bkXk forma parte de la ecuacin si y slo si
existe una transicin del estado qi al estado qk para el
smbolo de entrada bk
ai es una expresin tal que ai= si qiF; ai= en otro
caso.
9
Ejemplo:
q1 c d
a q2
b q 4*
q0 b,d a,b,c a,b,c,d
c
q 3* c
a,b,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).
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:
X=An+1.X+An.B++A.B+B= An+1.X+(An++A+).B
11
Ejemplos: Resolucin de ecuaciones
1. X=abX X=abX+=(ab)*=
2. X=abX+ X=(ab)*= (ab)*
3. X=abX+cX X=(ab+c)X+= (ab+c)*=
Teorema 1:
Dado un autmata finito A=(Q,,f,q0,F), existe una expresin
regular R tal que L(R)=L(A).
Demostracin:
La expresin regular equivalente se obtiene resolviendo de forma
sucesiva las ecuaciones caractersticas del autmata. La expresin
regular R ser la que se obtiene a partir de la ecuacin
caracterstica correspondiente al estado inicial del autmata:
R=X0.
12
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:
x2=
q2 x1=cx1+(a+)x0+
c
a a, q 1* =c*.((a+)x0+)
q0 =(c*.a+c*)x0+c*
x0=x1+ax2+
=((c*.a+c*)x0+c*)+a
=(c*.a+c*)x0+c*
(c*.a+c*)*.c* !!!!
q2 q2
c
a a, q 1* a
c,a
q0 {q0,q1}*
x2=
x01=(c+a)x01++ax2
=(c+a)x01++a=(c+a)x01+=(c+a)*.=(c+a)*
13
Ejemplos: Obtener las expresiones regulares para los siguientes
autmatas:
1.
A a b xp=axq+bxp+
p q p xq=axp+bxq+
* q p q Solucin: xp=(ab*a+b)*(ab*)
2.
A 0 1 xA=0xB+1xA+
* A B A xB=0xC+1xA+
* B C A xC=0xC+1xC+
C C C Solucin: xA=(01+1)*(0+)
3.
a,b,c
*
q1
q 3*
b a a,b,c
q0
c q4
q2 c a,b,c
a b
Solucin: x0=b+c.c*.a
4. Autmata no determinista
c
a q 1*
q0 a Solucin:
x0=(b+a.c*a)*.a.c*
c, q2
b
14
7.2.2 AFND equivalente a una Expresin Regular
Dos mtodos principales para convertir expresiones regulares en
autmatas:
Mtodo de las derivadas (Alfonseca) se obtiene una
gramtica regular que se puede convertir en AFND
Mtodo de composicin de autmatas (Alfonseca, Linz,
Hopcroft)
Teorema 2:
Dada una expresin regular R sobre el alfabeto , existe un
autmata finito no determinista A tal que L(R)=L(A).
Demostracin:
Basndose en la estructura de la expresin regular R, la
demostracin procede por induccin estructural. Sea
={a1,,an}.
R= A a1 an
q0 q0 qf *
* qf
R={} A a1 an
q0 {qf} q0 qf *
* qf
R={a1} A a1 an
q0 {qf} q0 a1 qf *
* qf
15
Si R es una expresin regular derivada:
Si R=R1+R2 :
A a1 an
q0_R1 qf_R1
q0 {q0_R1,q0_R2}
R1
q0_R1 q f*
qf_R1 {qf} q0
q0_R2
q0_R2 qf_R2
qf_R2 {qf} R2
* qf
Si R=R1.R2 :
A a1 an q0_R1 qf_R1
q0
q0 {q0_R1} R1
q0_R1
qf_R1 {q0_R2}
q0_R2
q0_R2 qf_R2 q f*
qf_R2 {qf}
R2
* qf
Si R=R1*:
A a1 an
q0 {q0_R1,
qf} q0_R1 qf_R1 q f*
q0
q0_R1 R1
qf_R1 {qf}
* qf {q0}
16
Ejemplos: Obtener los AFND correspondientes a las siguientes
expresiones regulares:
1. R=(1+01)*(0+):
q0
0
1
0
q f*
17
Como se puede observar, los autmatas as construidas
tienen muchas transiciones que se pueden unir:
0 q1
q0 1
q2 0, q f*
1,
0 q 1* 0
q 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
Autmatas Finitos
Expresiones Regulares
19