Documente Academic
Documente Profesional
Documente Cultură
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.
Precedencia de los operadores: 1. () 2. * cierre 3. . concatenacin 4. + unin Ejemplo: Algunos ejemplos de expresin regular son: (0 + 1)*01 (aa + ab + ba + bb)* a*(a + b) (aa)*(bb)*b
Ejemplo: Mostrar el lenguaje descrito por una ER mediante notacin conjuntista: 1. L(a*(a+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} = {a2nb2m+1|n,m0} L(a)*L(a+b) {a}*({a} {b})
2. L((aa)*(bb)*b)
3. Si ={a,b,c}, entonces L((a+b+c)*)=*. 4. L(a*.(b+c)) 5. L(0*.1.0*) 6. L((a+b+c+...+z)*.(a+b)*) 7. Que lenguaje describe la expresin a*.(a+b).c*? 8. Dado el lenguaje L={w |w{a,b,c}* donde w tiene al menos un par de as consecutivos}. Escribe la expresin regular para L. 9. Escribe todas las palabras de longitud <4 de L((a+b)*.b.(a+a.b)*).
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.
Definicin (ecuacin caracterstica): Sea un autmata finito A=({q0,q1,,qn},,f,q0,F). Cada estado del autmata tiene asignado una ecuacin caracterstica correspondiente, que describe las distintas formas de llegar desde este estado a un estado final. La ecuacin caracterstica para el estado qi es la siguiente: Xi =bjXj+ bkXk ++ bwXw+ai 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.
Ejemplo: a q0 b c q 3* a,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. q1 c q2 b,d c a,b,c a,b,d d q 4* a,b,c,d q5 a,b,c,d
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
Por tanto, L(X)=L(An+1.X) L((An++A+).B) y dado que xL(X) se sigue xL(An+1.X) o x L((An++A+).B). Dado que L(A), para cualquier wL(An+1.X) se cumple |w|n+1. x tiene longitud n por lo que xL(An+1.X). Por tanto, x L((An++A+).B) y, entonces tambin se verifica xL(A*B).
Razonando de forma similar se puede demostrar que para cualquier palabra xL(A*B) tambin se cumple xL(X).
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. Ejemplo: (para el autmata anterior) Ecuaciones caractersticas: x0=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+ Resolviendo x5: x5=(a+b+c+d)*.= Resolviendo x4: x4=(a+b+c+d). += Resolviendo x2: x2=d.+(a+b+c). +=d Resolviendo x3: x3=c.x3+(a+b+d). +=c.x3+=c*.=c* Resolviendo x1: x1=c.d+a.x0+(b+d).+=cd+a.x0 Resolviendo x0: x0 =b.(cd+a.x0)+c.c*+(a+d).+ = bax0+bcd+c.c*= (ba)*(bcd+cc*) 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: q2 a q0 a, q 1* c 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* !!!!
Transformacin del autmata (eliminacin de transiciones ): similar a la conversin a un autmata determinista los estados nuevos son las clausuras de los estados originales respecto a : q2 a q0 a, q 1* c q2 a {q0,q1}* 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 * A B * B C C C 3. q1 q0 b c q2 a Solucin: x0=b+c.c*.a 4. Autmata no determinista a q0 b c, a q2 q 1* c Solucin: x0=(b+a.c*a)*.a.c* b c
*
1 A A C
14
R=
A a1 an q0 * qf A a1 an {qf} q0 * qf A a1 an q0 {qf} * qf
q0
qf *
R={}
q0
qf *
R={a1}
q0
a1
qf *
15
q0
q0_R1
R1
qf_R1
q f*
q0_R2
R2
qf_R2
Si R=R1.R2 :
q0 q0_R1
R1
qf_R1
q0_R2
R2
qf_R2
q f*
Si R=R1*:
q0_R1 qf_R1 q f*
q0
R1
Se construye el autmata de forma recursiva: q0_R1 y q0_R2: estados iniciales de los subautmatas para R1 y R2 (no se marcan como estados iniciales!) qf_R1 y qf_R2: estados finales de los subautmatas para R1 y R2 (no se marcarn como estados finales!)
16
Ejemplos: Obtener los AFND correspondientes a las siguientes expresiones regulares: 1. R=(1+01)*(0+):
q0 0 1 0 1
q f*
17
Como se puede observar, los autmatas as construidas tienen muchas transiciones que se pueden unir:
q0 0 q1 1, 1 q2
0,
q f*
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 Gramtica Lineal por la Derecha
Autmatas Finitos
Autmatas Finitos Deterministas Autmatas Finitos NO Deterministas
Expresiones Regulares
19