Automatas Regulares

of 47 /47
Teoría de Autómatas y Lenguajes Formales 1 TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS María Llanos Alonso Díaz-Marta Antonio Fernández Caballero Departamento de Sistemas Informáticos Universidad de Castilla-La Mancha

Embed Size (px)

Transcript of Automatas Regulares

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOSMara Llanos Alonso Daz-Marta Antonio Fernndez CaballeroDepartamento de Sistemas Informticos Universidad de Castilla-La ManchaTeora de Autmatas y Lenguajes Formales 1

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS INDICE Definicin de expresin regular Equivalencia entre expresiones regulares Equivalencia entre AFs y ERs AF ER. Teorema de Kleene ER AF. Teorema de Kleene Equivalencia. Otros mtodos AF ER. Mtodo de la ecuacin fundamental ER AF. Mtodo de las derivadas

Teora de Autmatas y Lenguajes Formales

2

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS DEFINICIN DE EXPRESIN REGULAR (1) Dado un alfabeto , las expresiones regulares sobre y los conjuntos denotados por ellas se definen recursivamente como sigue:1. El conjunto vaco es una expresin regular que denota al lenguaje 2. La cadena vaca es una expresin regular que denota al lenguaje {} 3. Cualquier smbolo a es una expresin regular que denota al lenguaje {a} 4. Si r y s son expresiones regulares denotando los lenguajes L(r) y L(s) respectivamente, entonces, r s (o rs) es una expresin regular que denota al lenguaje L(r) L(s).Teora de Autmatas y Lenguajes Formales 3

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS DEFINICIN DE EXPRESIN REGULAR (2)5. Si r y s son expresiones regulares denotando los lenguajes L(r) y L(s) respectivamente, entonces, r + s es una expresin regular que denota al lenguaje L(r) L(s). 6. Si r es una expresin regular denotando al lenguaje L(r), entonces, r* es una expresin regular que denota al lenguaje L(r)*. 7. Slo son expresiones regulares las que pueden obtenerse mediante la aplicacin de las reglas anteriores.

La precedencia de los operadores es: * > > + .Teora de Autmatas y Lenguajes Formales 4

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO Cul es el lenguaje representado por las siguientes expresiones regulares? 1. 00 2. (0+1)* 3. (0+1)*00(0+1)* 4. (1+10)* 5. (0+cv)(1+10)* 6. (0+1)*011 7. 0*1*2* 8. 00*11*22* 9. 0+1+2+Teora de Autmatas y Lenguajes Formales 5

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EQUIVALENCIA ENTRE EXPRESIONES REGULARES (1) Dos expresiones regulares r y s son equivalentes si describen el mismo lenguaje, es decir, L(r) = L(s). A partir de la definicin de equivalencia podemos comprobar las siguientes propiedades: 1. + es asociativa: r + (s + t) = (r + s) + t 2. + es conmutativa: r + s = s + r 3. + tiene elemento neutro : + r = r + = r 4. es asociativa: r (s t) = (r s) t 5. tiene elemento neutro : r = r = r 6. es distributiva respecto a +:r (s + t) = r s + r t ; (s + t) r = s r + t r6 Teora de Autmatas y Lenguajes Formales

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EQUIVALENCIA ENTRE EXPRESIONES REGULARES (2)7. 8. 9. 10. 11. 12. * = r=r= * = r* r* = r* r r* = r* r (r*)* = r*

Teora de Autmatas y Lenguajes Formales

7

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EQUIVALENCIA ENTRE AFs Y ERs Tres modelos para expresar lenguajes regulares

Teora de Autmatas y Lenguajes Formales

8

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS TEOREMA DE KLEENE. ER AF (1) Para todo lenguaje expresado por una expresin regular, r, existe un autmata finito, M, tal que L(r) = L(M). Esquema de la demostracin: Se construir un AFND- en el que se cumplen las siguientes condiciones: nicamente habr un estado final En el estado final no hay transiciones de salida Ninguna transicin finaliza en el estado inicial Induccin en el nmero de operadores de la expresin regularTeora de Autmatas y Lenguajes Formales 9

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS TEOREMA DE KLEENE. ER AF (2) Caso base: 0 operadores Tres expresiones regulares posibles: , , a r = . Construimos el siguiente autmata M = ({q0, qF}, , {(q0, } = qF}, q0, {qF})

Claramente, M cumple las condiciones impuestas y adems L(M) = L(r).Teora de Autmatas y Lenguajes Formales 10

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS TEOREMA DE KLEENE. ER AF (3) Caso base: 0 operadores Tres expresiones regulares posibles: , , a r = . Construimos el siguiente autmata M = ({q0, qF}, , {}, q0, {qF})

Claramente, M cumple las condiciones impuestas y adems L(M) = L(r).Teora de Autmatas y Lenguajes Formales 11

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS TEOREMA DE KLEENE. ER AF (4) Caso base: 0 operadores Tres expresiones regulares posibles: , , a r = a, con a . Construimos el siguiente autmata M = ({q0, qF}, , {(q0, a} = qF}, q0, {qF})

Claramente, M cumple las condiciones impuestas y adems L(M) = L(r).Teora de Autmatas y Lenguajes Formales 12

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS TEOREMA DE KLEENE. ER AF (5) Hiptesis de induccin Se asume que el enunciado es cierto para cualquier expresin regular con un nmero de operadores n Paso de induccin La expresin regular r tiene exactamente n + 1 operadores. Podemos considerar tres casos: Unin: r = e + s Concatenacin: r = e s Cierre: r = e* donde e y s son expresiones regulares cuyo nmero de operadores es nTeora de Autmatas y Lenguajes Formales 13

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOSTEOREMA DE KLEENE. ER AF (6) Unin: r = e + s

Dado que e y s tienen un nmero menor o igual a n operadores, podemos suponer que existen los AFs E = (Q1, 1, 1, q1, {qFe}) y S = (Q2, 2, 2, q2, {qFS}), cumpliendo las condiciones del enunciado y, tales que, L(E) = L(e) y L(S) = L(s). Suponiendo Q1 y Q2 disjuntos, construimos el autmata: M =(Q1Q2{q0, qF}, 12, , q0, {qF}), donde se define como: (q, a) = 1(q, a) para q Q1 y a 1 {} ; (q0, ) = {q1, q2} (q, a) = 2(q, a) para q Q2 y a 2 {} ; (qFe, ) = (qFs, ) = {qF}

Es claro, que L(M) = L(e) L(s).Teora de Autmatas y Lenguajes Formales 14

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOSTEOREMA DE KLEENE. ER AF (7) Concatenacin: r = e s

Dado que e y s tienen un nmero menor o igual a n operadores, podemos suponer que existen los AFs E = (Q1, 1, 1, q1, {qFe}) y S = (Q2, 2, 2, q2, {qFS}), cumpliendo las condiciones del enunciado y, tales que, L(E) = L(e) y L(S) = L(s). Suponiendo Q1 y Q2 disjuntos, construimos el autmata: M =(Q1Q2, 12, , q1, {qFs}), donde se define como: (q, a) = 1(q, a) para q Q1 y a 1 {} (q, a) = 2(q, a) para q Q2 y a 2 {} (qFe, ) = {q2}

Es claro, que L(M) = L(e) L(s).Teora de Autmatas y Lenguajes Formales 15

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOSTEOREMA DE KLEENE. ER AF (8) Cierre: r = e*

Dado que e tiene un nmero menor o igual a n operadores, podemos suponer que existe el AF E = (Q1, 1, 1, q1, {qFe}), cumpliendo las condiciones del enunciado y, tales que, L(E) = L(e). Construimos el autmata: M =(Q1{q0, qF}, 1, , q0, {qFs}), donde se define como: (q, a) = 1(q, a) para q Q1 y a 1 {} (q0, ) = (qFe, ) = {q1, qF}

Es claro, que L(M) = L(e)*.Teora de Autmatas y Lenguajes Formales 16

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO Construir un AF equivalente a la expresin regular: (0+1)*1(0+1)

Teora de Autmatas y Lenguajes Formales

17

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS TEOREMA DE KLEENE. ER AF (9) Ventajas: Mtodo sencillo de aplicar Desventajas: Muchos estados, AFND-

Teora de Autmatas y Lenguajes Formales

18

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS TEOREMA DE KLEENE. AF ER (1) Todo lenguaje aceptado por un autmata finito determinista M es un lenguaje regular y, por tanto, existe una expresin regular r, tal que L(M) = L(r). Esquema de la demostracin: Definir conjuntos que contengan las cadenas que van de qi a qj, pero limitando los estados por los que pueden pasar. Definir L(M) como la unin de algunos de estos conjuntos. Ver que cada conjunto puede ser generado por una expresin regular (y, por tanto, L(M) tambin). Ideas clave: definicin recursiva de los conjuntos e induccin.Teora de Autmatas y Lenguajes Formales 19

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS TEOREMA DE KLEENE. AF ER (2)Punto de partida Sea L un lenguaje regular y M = ({q1, , qn}, , , q1, F) un AFD tal que L(M) = L. Ntese que q1 es el estado inicial y que q0 Q. Definicin de Rkij Definimos el siguiente conjunto de cadenas: Rkij = {x* | *(qi,x) = qj , y z prefijo propio de x, *(qi,z) = ql , con l k} Expresin regular cuyo lenguaje es el conjunto de cadenas x tal que x es la etiqueta de un camino que va del estado i al estado j sin pasar por nodos intermedios en un nmero mayor que k. Teora de Autmatas y Lenguajes Formales 20

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS

TEOREMA DE KLEENE. AF ER (3)Sobre los conjuntos Rkij

Si k = n, entonces Rkij = {x* | *(qi,x) = qj } Por tanto L(M) = R = Rn1j1 Rn1j2 Rn1jp, con F = {qj1, qj2, , qj }. p Luego, nuestro objetivo es demostrar que existe una expresin regular r, tal que, L(r) = R = L(M)Teora de Autmatas y Lenguajes Formales 21

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS TEOREMA DE KLEENE. AF ER (4) Definicin recursiva de Rkij Base. La base de la recursin ser cuando k = 0. Dado que los estados se numeran desde 1, k = 0 implica que no podemos pasar por ningn estado. Puesto que estamos considerando que M es un AFD, tendremos:

Teora de Autmatas y Lenguajes Formales

22

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOSTEOREMA DE KLEENE. AF ER (5) Definicin recursiva de Rkij Recursin Rkij. Existen dos situaciones a considerar: Cadenas w Rkij tales que durante su lectura no se pasa por el estado qk. Es claro que estas cadenas tambin pertenecen a Rk-1ij. Cadenas w Rkij tales que durante su lectura se pasa (al menos una vez) por el estado qk.

Por tanto, Rkij = Rk-1ik (Rk-1kk)* Rk-1kj Rk-1ijTeora de Autmatas y Lenguajes Formales 23

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOSTEOREMA DE KLEENE. AF ER (6) Obtencin de la expresin regular rkij tal que L(rkij) = RkijCaso base (k=0). Inmediato al ser R0ij un conjunto finito de cadenas:

Hiptesis de induccin. Suponemos cierto para k-1. Paso de induccin. Aplicando la hiptesis de induccin y dado que Rkij = Rk-1ik (Rk-1kk)* Rk-1kj Rk-1ij slo contiene operadores regulares, obtenemos la siguiente expresin regular: rkij = rk-1ik (rk-1kk)* rk-1kj + rk-1ij Por tanto, construimos la expresin regular r = rn1j1 + rn1j2 + + rn1jp, con F = {qj1, qj2, , qj }. p Siendo L(r) = L(M).Teora de Autmatas y Lenguajes Formales 24

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO Obtener la ER equivalente al siguiente AFD:

La expresin regular buscada es:

Teora de Autmatas y Lenguajes Formales

25

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS

Teora de Autmatas y Lenguajes Formales

26

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS TEOREMA DE KLEENE. AF ER (7) Ventajas:Mtodo mecnico que permite obtener la expresin regular Aunque hemos supuesto AFD, es vlido para AFND y AFND- Implementacin recursiva

Desventajas:La aplicacin del mtodo es costosa ( n3 expresiones para un autmata con n estados) La longitud de las expresiones puede crecer en un factor 4 en cada paso expresin regular del orden de 4n smbolos si no se simplifica Implementacin recursiva calcular repetidas veces una misma expresin regular (p.e. rk-1kk en el paso i-simo)Teora de Autmatas y Lenguajes Formales 27

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS ELIMINACIN DE ESTADOS. AF ER (1) Para aplicar el mtodo usaremos lo que se denomina como: Autmatas finitos no deterministas generalizados (AFNDG). Un AFNDG es un AF que admite que sus arcos sean etiquetados con expresiones regulares. Para transformar un AFD en un AFNDG slo hay que ver si tiene transiciones etiquetadas con ms de un smbolo, por ejemplo, {a1, a2 , , am} y sustituir la etiqueta por la expresin regular a1+ a2 + + am. Por conveniencia se exige que:Al estado inicial no lleguen transiciones (basta con aadir un nuevo estado inicial y poner una transicin nula hacia el antiguo). Hay un nico estado final del que no salen transiciones (basta con aadir un nuevo estado final y transiciones nulas desde todos los antiguos estados finales).Teora de Autmatas y Lenguajes Formales 28

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO

Teora de Autmatas y Lenguajes Formales

29

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS ELIMINACIN DE ESTADOS. AF ER (2) Eliminacin de un estado: Sea q {q0, qF} el estado a eliminar. Sea p un estado predecesor de q (hay un arco de p a q) Sea s un estado sucesor de q (hay un arco de q a s) Al eliminar q se rompe el camino existente entre p y s para que no se modifique L(M) se aade un arco entre p y s etiquetado con las cadenas que recorran ese camino. Grficamente:

Teora de Autmatas y Lenguajes Formales

30

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS ELIMINACIN DE ESTADOS. AF ER (3) Eliminar(q):1. pred(q) = {p | p Q - {q} y p q} 2. suc(q) = {s | s Q - {q} y q s} 3. Para todo par (pi, sj) tal que pi pred(q) y sj suc(q), hacer: etiqueta(pi sj) = P Q* S + r, con P = etiqueta(pi q) S = etiqueta(q sj) Q = etiqueta(q q) Q = si no existe q q r = etiqueta(pi sj) r = si no existe pi sj 4. Eliminar q y todas sus transiciones del autmata 5. Aadir todas las nuevas etiqueta al autmataTeora de Autmatas y Lenguajes Formales 31

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS ELIMINACIN DE ESTADOS. AF ER (4) Obtener-ER(AFD M): 1. Construir un AFNDG M a partir de M 2. Mientras |Q| > 2, hacer a) Elegir un estado q de Q {qinicial, qfinal} b) Eliminar(q)

Teora de Autmatas y Lenguajes Formales

32

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLOAFD

AFDNGTeora de Autmatas y Lenguajes Formales 33

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO

Teora de Autmatas y Lenguajes Formales

34

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO

Teora de Autmatas y Lenguajes Formales

35

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO

Teora de Autmatas y Lenguajes Formales

36

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOSECUACIN FUNDAMENTAL. AF ER (1) Planteamiento de la ecuacin Sea M = ({q1, , qn}, , , q1, F) un AF. Encontrar una expresin regular tal que L() = L(M). Definimos el siguiente conjunto: Xi = {x * | *(qi, x) F} Sea {a1ij, , apjij} el conjunto de smbolos pertenecientes a {}, tales que existe una transicin desde qi a qj etiquetada con cada uno de ellos. Entonces, el conjunto Xi puede describirse de la siguiente forma:

Teora de Autmatas y Lenguajes Formales

37

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOSECUACIN FUNDAMENTAL. AF ER (2) Sistema de ecuaciones Para cada estado qi se plantea una ecuacin Xi. Ejemplo:

Ecuaciones obtenidas: X0 = aX1 + bX2 X1 = bX1 + aX2 X2 = bX2 + Dado que por definicin X0 = L(M), nuestro objetivo es resolver el sistema de ecuaciones y obtener la solucin para X0.Teora de Autmatas y Lenguajes Formales 38

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS ECUACIN FUNDAMENTAL. AF ER (3) Resolucin del sistema de ecuaciones Lema de Arden. Una ecuacin X = AX + B, tiene como solucin X = A*B. Si A, entonces X = A*B es la nica solucin.

Teora de Autmatas y Lenguajes Formales

39

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO (1) Resolver por el mtodo de las ecuaciones:X0 = aX1 + bX2 X1 = bX1 + aX2 X2 = bX2 + X2 = b*() = b* X1 = bX1 + ab* = b*ab* X0 = ab*ab* + bb*

Teora de Autmatas y Lenguajes Formales

40

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO (2) Resolver por el mtodo de las ecuaciones:a b

a q0 q1

a q2

a q3 b

b q4

b

Teora de Autmatas y Lenguajes Formales

41

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS MTODO DE LAS DERIVADAS. ER AF (1) Derivada de una expresin regular: Sea una expresin regular definida sobre el alfabeto . Definimos la derivada de respecto al smbolo a , como la expresin regular Da() que genera el lenguaje: L(Da()) = {x * | ax L()}

Teora de Autmatas y Lenguajes Formales

42

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS MTODO DE LAS DERIVADAS. ER AF (2) Reglas para el clculo de las derivadas: Sean a, b . 1. Da(a) = 2. Da(b) = Da() = Da() = 3. Da( + ) = Da() + Da() si L() 4. Da( ) = Da() Da( ) = Da() + Da() si L() 5. Da() = Da() Teora de Autmatas y Lenguajes Formales 43

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS MTODO DE LAS DERIVADAS. ER AF (3) Derivadas sucesivas de una expresin regular: Ahora derivamos respecto a cadenas: D() = Dax() = Dx(Da()) El conjunto de derivadas distintas de una expresin regular es finito (pues en cada derivacin la longitud de las cadenas, que a su vez es finita, disminuye).Teora de Autmatas y Lenguajes Formales 44

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS MTODO DE LAS DERIVADAS. ER AF (4) Algoritmo de sntesis: Dada la expresin regular definida sobre , 1. Calcular el conjunto de derivadas sucesivas {Dx()} 2. Construimos el AFD M = {Q, , , q0, F} como sigue: Q = {Dx()} q0 = D() F = { Dx() | L(Dx()) } (Dx(), a) = Dxa()Teora de Autmatas y Lenguajes Formales 45

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO (1) Obtener el AFD correspondiente a la expresin regular = 01* + 1 por el mtodo de las derivadas.Calculamos el conjunto de derivadas sucesivas: * D() = = 01* + 1 FINAL * D0() = 1* * D1() = FINAL * D00() = D0(1*) = * D01() = D1(1*) = 1* = D0() * D10() = D0() = = D00() * D11() = D1() = = D00() Construimos el autmata: 1 D0 0 D00 1 D1 0, 146

0, 1

0 D

Teora de Autmatas y Lenguajes Formales

TEMA 6: EXPRESIONES REGULARES Y AUTMATAS FINITOS EJEMPLO (2) Obtener el AFD correspondiente a la expresin regular = 0(1+0)*0 + 11(1+0)(1+0)*0 por el mtodo de las derivadas.

Teora de Autmatas y Lenguajes Formales

47