You are on page 1of 14

Tema 3: Expresiones regulares

Departamento de Sistemas Informaticos y Computacion

DSIC - UPV

http://www.dsic.upv.es

p.1/14

Tema 3: Expresiones regulares


Deniciones y propiedades Obtencin de AFD a partir de expresiones regulares Reglas para el clculo de las derivadas Mtodo de las derivadas Sistemas de ecuaciones en ER Sistemas de ecuaciones asociados a autmatas nitos

DSIC - UPV

http://www.dsic.upv.es

p.2/14

Relaciones entre formalismos

AFD

AFN

AF

Gramaticas lineales (por la derecha)

Expresiones regulares
DSIC - UPV

http://www.dsic.upv.es

p.3/14

Expresiones Regulares. Denicion


Inductivamente, una expresin regular sobre se dene: denota el lenguaje vacio denota el lenguaje {} a , a denota el lenguaje {a} Si r y s son expresiones regulares que denotan Lr y Ls : (r) denota el lenguaje Lr r + s denota el lenguaje Lr Ls rs denota el lenguaje Lr Ls (r) denota el lenguaje L r Slo son expresiones regulares las construidas de esta forma () Prioridad de operadores: Concatenacin Unin

DSIC - UPV

http://www.dsic.upv.es

p.4/14

Expresiones Regulares. Propiedades


Sean , y expresiones regulares 1. + ( + ) = ( + ) + ( ) = ( ) 2. + = + 3. ( + ) = ( ) + ( ) ( + ) = ( ) + ( ) 4. = = 5. + = + = = = 6. = 7. = 8. = + 9. ( + ) = ( ) = ( + ) 10. ( ) = () 11. ( ) = ( + ) 12. ( ) = ( + ) +

DSIC - UPV

http://www.dsic.upv.es

p.5/14

de AFD a partir de expresiones regulares Obtencion


Reglas para el clculo de las derivadas Respecto a smbolos (a, b , r, s E.R.) 1. a1 = 2. a1 = 3. a1 a = ; a1 b = si (a = b) 4. a1 (r + s) = a1 r + a1 s 5. a1 (rs) = (a1 r)s si r (a1 r)s + a1 s si r x )

6. a1 r = (a1 r)r Respecto a cadenas (a , 1. 1 r = r 2. (xa)1 r = a1 (x1 r)

DSIC - UPV

http://www.dsic.upv.es

p.6/14

de AFD a partir de expresiones regulares Obtencion


Mtodo de las derivadas Un autmata A es equivalente a una expresin regular r sii: L(A) = L(r) Entrada: Expresin regular r Salida: AFD A equivalente a r Mtodo: 1. Calcular {x1 | x } 2. Denir A = (Q, , , q0 , F ) como sigue: Q = {x1 r|x } alfabeto de r (x1 r, a) = (xa)1 r q0 = 1 r = r x1 r F x1 r

DSIC - UPV

http://www.dsic.upv.es

p.7/14

de AFD a partir de expresiones regulares Obtencion


ejemplos: r1 = aa bb r2 = ab + b r3 = 1(01) r4 = a bb a r5 = (0 + 1) 00 r6 = (a + b) bb(a + b) r7 = a(bb a) r8 = (a + b) b(a + b) b(a + b)

DSIC - UPV

http://www.dsic.upv.es

p.8/14

Sistemas de ecuaciones en expresiones regulares


Ecuacin en expresiones regulares: Ecuacin lineal donde variables y coecientes toman la forma de expresiones regulares. X = rX + s Lema de Arden: Sea X = rX + s una ecuacin en expresiones regulares. X = r s es una solucin para la ecuacin. Es nica si r demostramos que r s es solucin: rX + s
X =r s

= rr s + s = (rr + )s

prop.10

r s

Si r existen innitas soluciones: t , r (s + t) es solucin: X =rX + s = rr (s + t) + s = rr s + rr t + s = =(rr + )s + rr t


rr +=r

r s + r t
DSIC - UPV

X =r (s+t)

X
p.9/14

http://www.dsic.upv.es

Sistemas de ecuaciones en expresiones regulares


Dado un sistema de ecuaciones en expresiones regulares: X1 = r11 X1 + r12 X2 + . . . + r1n Xn + s1 X2 = r11 X1 + r12 X2 + . . . + r1n Xn + s2 ... Xn = r11 X1 + r12 X2 + . . . + r1n Xn + s3

la resolucin viene tras aplicar el mtodo de Gauss utilizando el Lemma de Arden para reducir. til para obtener una E.R. a partir de un A.F. o una gramtica regular.

DSIC - UPV

http://www.dsic.upv.es

p.10/14

Sistemas de ecuaciones asociados a automatas nitos


Entrada: Autmata nito A = (Q, , , q1 , F ) con Q = {q1 , q2 , . . . , qn } Salida: Sistema de ecuaciones donde X1 es el lenguaje del autmata Mtodo: 1. Por cada estado qi introducir una variable Xi 2. Si qi F entonces en la parte derecha de la i-esima ecuacin aparece el trmino 3. Si qj (qi , a) entonces en la parte derecha de la i-esima ecuacin aparece el trmino aXj , con a {}

DSIC - UPV

http://www.dsic.upv.es

p.11/14

Sistemas de ecuaciones asociados a automatas nitos


Ejemplos: b q0 a q1 a a,b q3 a,b

0 1 q1 1

0 q2

b q2

DSIC - UPV

http://www.dsic.upv.es

p.12/14

Sistemas de ecuaciones asociados a G.R. (l.d.)


Entrada: G = (N, , P, S ) Salida: Sistema de ecuaciones donde XS = L(G) Mtodo: 1. Por cada A N introducir una variable XA 2. Si A a P , a {} entonces: XA = . . . + a 3. Si A aB P , a {} entonces: XA = . . . + aXB

DSIC - UPV

http://www.dsic.upv.es

p.13/14

Sistemas de ecuaciones asociados a G.R. (l.d.)


Ejemplos: S aS | bA XS XA A bB | aS | = B bB | | aB X B S 1S | 0A XS = XA A 1S | 0B B 1S | | 0B X B aXS + bXA bXB + aXS + bXB + + aXB 1X S + 0X A 1X S + 0X B 1X S + + 0X B

DSIC - UPV

http://www.dsic.upv.es

p.14/14

You might also like