Calcular Expresion Regular
Calcular Expresion Regular
Calcular Expresion Regular
1.
Objetivos.
El objetivo de este bolet n es ilustrar uno de los m etodos que permiten calcular la expresi on regular que denota el mismo lenguaje que un Aut omata Finito reconoce mediante ejemplos y, adem as, proporcionar la soluci on a alguno de los problemas propuestos en el bolet n para que pod ais comprobar si hab eis aplicado bien este m etodo.
2.
Idea Principal.
Los teoremas de Kleene, el de An alisis y el de S ntesis, establecen la equivalencia entre los AFs y las expresiones regulares. En concreto, el de An alisis permite armar que dado un AFD, existe una expresi on regular que lo denota. Su demostraci on ya establece un m etodo para calcular dicha expresi on regular, pero en la pr actica no es el m etodo que se suele utilizar para realizar dicho c alculo. En su lugar, es m as aconsejable el uso de la Regla de Arden. Para aplicarla, hay que establecer un sistema de ecuaciones lineales en expresiones regulares y resolverlo. Cada ecuaci on de un sistema de ecuaciones lineales en expresiones regulares tiene la siguiente forma general X = rX + s en la que r y s son expresiones regulares sobre un alfabeto . Dependiendo de que r o r se tienen dos soluciones para dicha ecuaci on: - r y, entonces, X = r s. Para comprobarlo, basta ver que X = rX + s = r(r s) + s = (rr + )s = r s = X. - r y, entonces, hay innitas soluciones X = r (s + t), donde t es una expresi on regular cualquiera sobre (normalmente, este caso no nos afectar a). Este resultado puede comprobarse de la siguiente forma, X = rX + s = r(r (s + t)) + s = (rr + )s + rr t = (r+ + )s + r+ t. Como r = r+ si r, entonces lo anterior queda, (r+ + )s + r+ t = (r + )s + r t = r (s + t) = X.
3.
El m etodo se basa en el establecimiento de un sistema de ecuaciones lineales en expresiones regulares a partir del AF. Sea A, A = , Q, f, q0 , F 1
un AFD o un AFN; a A se le puede asociar un sistema de ecuaciones lineales en expresiones regulares de la siguiente forma: 1. 2. 3. Se asocia una variable a cada estado: qi Q, se le asocia Xi . Las ecuaciones se construyen en funci on de las transiciones: si qj f (qi , a), entonces en la ecuaci on de la variable Xi aparece el t ermino aXj en su parte derecha: Xi = ... + aXj + .... Adem as, se asocia el t ermino a los estados nales: si qi F , entonces en la ecuaci on de la variable Xi aparece en su parte derecha: Xi = ... + + .... El lenguaje reconocido por el AF es la expresi on regular de la variable asociada a su estado inicial.
3.1.
Ejemplo 1.
Hay que calcular la expresi on regular que denota el lenguaje reconocido por el aut omata que se muestra en la siguiente gura:
X3
0
q3
1 1 1 0 0
X1
0, 1
q1
q2 X2
X0
q0
Sobre la gura se ha asociado ya a cada estado su correspondiente variable. De acuerdo al segundo y tercer paso del m etodo, el sistema de ecuaciones lineales que hay que resolver es el siguiente: X0 X1 X2 X3 = 0X1 + 1X1 + = (0 + 1)X1 + = 0X2 + 1X3 + = 1X2 + 0X1 = 0X3 + 1X1
ltima ecuaci Recordemos que la soluci on de la ecuaci on general, X = rX + s es X = r s. En la u on, si identicamos t erminos con r y s se tiene: X3 = 0 X3 + 1X1 .
r s
Se tienen X2 y X3 en funci on de X1 . Al substituir en la ecuaci on de X1 se obtiene X1 = 0X2 + 1X3 + = 01 0X1 + 10 1X1 + = (01 0 + 10 1)X1 + Agrupando t erminos se llega a X1 = (01 0 + 10 1) X1 + , X1 = (01 0 + 10 1) = (01 0 + 10 1) .
r s
3.2.
Ejemplo 2.
El siguiente ejemplo es el mismo que ten eis en los apuntes de teor a ilustrando el Teorema de An alisis (y as podr eis comparar ambos m etodos). El aut omata es el siguiente:
Se asocia X1 al estado q1 , X2 al estado q2 y X3 al estado q3 . El sistema de ecuaciones lineales resultante es: X1 = 0X2 + 1X3 X2 = 0X2 + 1X3 + X3 = 1X3 + 0X2 Podemos comenzar con la ecuaci on de X3 : X3 = 1 X3 + 0X2 , X3 = 1 0X2 .
r s
Ahora se substituyen X2 y X3 en la ecuaci on de X1 : X1 = 0X2 + 1X3 = 0(0 + 11 0) + 11 0X2 = 0(0 + 11 0) + 11 0(0 + 11 0) y, si se agrupan t erminos, se llega a X1 = (0 + 11 0)(0 + 11 0) = (( + 11 )0)(( + 11 )0) = 1 0(1 0) = (1 0) 1 0 = (1 + 0) 0. Es decir, L(AF D) = (1 + 0) 0. Nota: Las expresiones regulares tienen un mont on de propiedades y, a veces, nos asusta el mogoll on. En el desarrollo anterior hemos usado tres de las que m as salen; recordadlas, que son muy tiles: u (1) ( + ) = , (2) = y (3) ( ) = ( + ) . Otra buena pol tica para evitar enmogollanarse es simplicar desde el principio todo lo que podamos. Del sistema original, X1 = 0X2 + 1X3 X2 = 0X2 + 1X3 + X3 = 1X3 + 0X2 se sigue que X2 = X1 + . Si se usa esa relaci on, el resultado es bastante m as simple: X3 = 1 0X2 , X2 = X1 + X3 = 1 0(X1 + ). Al substituir en X1 : X1 = 0X2 + 1X3 = 0(X1 + ) + 11 0(X1 + ) = (0 + 11 0)X1 + (0 + 11 0) = (0 + 11 0) (0 + 11 0) se llega con menos pasos al mismo resultado (bueno, falta volver a aplicar las tres propiedades anteriores para obtener la expresi on simplicada, pero... aplicadlas vosotros y vais entren andoos ;-).
3.3.
1.
Autoevaluaci on.
Construir expresiones regulares que denoten los mismos lenguajes que los reconocidos por los siguientes aut omatas nitos:
Soluci on: El primer aut omata queda denotado por la expresi on regular 0 . La verdad es que se ve a ojo... en este problema lo complicado es obtenerla formalmente. Como pistas, las siguientes: 4
la expresi on regular concatenada con cualquier otra expresi on regular es (r = r = , expr. reg. r: si no concateno nada con r qu e obtengo? nada!). Por denici on = {, } = . Para acabar de liar el problema, ten eis el segundo aut omata: L(AF D) = ((0(10) (0 + 11) + 1(01) (1 + 00)) (0(10) (1 + ) + 1(01) (0 + ))). 2. Calcular la expresi on regular asociada al AFD m nimo que reconoce el mismo lenguaje que el representado en la gura (obtener antes el AFD m nimo).
0
q0
1
q1
1 0 0 1 1 0
q3
0
q5
1
q2
q4
Soluci on: AFD m nimo: q0 q1 y q2 q3 . Expr. Reg.: L(AF D) = (0 + 1) 1(0 + 1) 3. En el Bolet n de Autoevaluaci on 1, se propuso la transformaci on del siguiente AF a AFD:
AFD equivalente: F f {q0 } {q 1 , q 3 } {q1 } {q 2 , q 4 } {q2 } a b c {q1 , q3 } {q1 } {q1 } {q 2 , q 4 } {q1 } {q2 } {q 1 , q 3 } {q2 } {q 1 , q 3 } {q2 }
F F
Completar el problema dando la expresi on regular del AFD m nimo equivalente. Soluci on: L(AF D) = (a + b)(b + c) c + .
4.
Obtener el AFD m nimo que reconozca el lenguaje reconocido por el siguiente AF,
Calcular la expresi on regular asociada al lenguaje reconocido por el aut omata anterior. Soluci on: Pistas: el AFD m nimo tiene 3 estados y los 3 son nales. L(AF D) = (a c) (a + b(b + c) ).