Automatas Regulares

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

Transcript of Automatas Regulares

Page 1: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 1

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS

FINITOS

María Llanos Alonso Díaz-MartaAntonio Fernández Caballero

Departamento de Sistemas InformáticosUniversidad de Castilla-La Mancha

Page 2: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 2

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

INDICE

Definición de expresión regularEquivalencia entre expresiones regularesEquivalencia entre AFs y ERs

AF → ER. Teorema de KleeneER → AF. Teorema de Kleene

Equivalencia. Otros métodosAF → ER. Método de la ecuación fundamentalER → AF. Método de las derivadas

Page 3: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 3

DEFINICIÓN DE EXPRESIÓN REGULAR (1)Dado un alfabeto Σ, las expresiones regulares sobre Σ y los conjuntos denotados por ellas se definen recursivamentecomo sigue:

1. El conjunto vacío es una expresión regular que denota al lenguaje ∅

2. La cadena vacía ε es una expresión regular que denota al lenguaje {ε}

3. Cualquier símbolo a ∈ Σ es una expresión 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 expresión regular que denota al lenguaje L(r) ⋅ L(s).

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

Page 4: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 4

DEFINICIÓN DE EXPRESIÓN REGULAR (2)

5. Si r y s son expresiones regulares denotando los lenguajes L(r) y L(s) respectivamente, entonces, r + s es una expresión regular que denota al lenguaje L(r) ∪ L(s).

6. Si r es una expresión regular denotando al lenguaje L(r), entonces, r* es una expresión regular que denota al lenguaje L(r)*.

7. Sólo son expresiones regulares las que pueden obtenerse mediante la aplicación de las reglas anteriores.

La precedencia de los operadores es: * > ⋅ > + .

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

Page 5: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 5

EJEMPLO ¿Cuál es el lenguaje representado por las siguientes expresiones regulares?

1. 002. (0+1)*3. (0+1)*00(0+1)*4. (1+10)* 5. (0+cv)(1+10)* 6. (0+1)*0117. 0*1*2* 8. 00*11*22* 9. 0+1+2+

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

Page 6: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 6

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 definición de equivalencia podemos comprobar las siguientes propiedades:

1. + es asociativa: r + (s + t) = (r + s) + t2. + es conmutativa: r + s = s + r3. + tiene elemento neutro ∅: ∅ + r = r + ∅ = r4. ⋅ es asociativa: r ⋅ (s ⋅ t) = (r ⋅ s) ⋅ t5. ⋅ tiene elemento neutro ε: ε ⋅ r = r ⋅ ε = r6. ⋅ es distributiva respecto a +:

r ⋅ (s + t) = r ⋅ s + r ⋅ t ; (s + t) ⋅ r = s ⋅ r + t ⋅ r

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

Page 7: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 7

EQUIVALENCIA ENTRE EXPRESIONES REGULARES (2)

7. ε* = ε8. ∅ ⋅ r = r ⋅ ∅ = ∅9. ∅* = ε10. r* ⋅ r* = r* 11. r ⋅ r* = r* ⋅ r12. (r*)* = r*

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

Page 8: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 8

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

EQUIVALENCIA ENTRE AFs Y ERs

Tres modelos para expresar lenguajes regulares

Page 9: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 9

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. ER → AF (1)

Para todo lenguaje expresado por una expresión regular, r, existe un autómata finito, M, tal que L(r) = L(M).Esquema de la demostración:

Se construirá un AFND-ε en el que se cumplen las siguientes condiciones:

Únicamente habrá un estado finalEn el estado final no hay transiciones de salidaNinguna transición finaliza en el estado inicial

Inducción en el número de operadores de la expresión regular

Page 10: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 10

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. ER → AF (2)Caso base: 0 operadoresTres expresiones regulares posibles: ε, ∅, a

r = ε.Construimos el siguiente autómata

M = ({q0, qF}, Σ, {δ(q0, ε} = qF}, q0, {qF})

Claramente, M cumple las condiciones impuestas y además L(M) = L(r).

Page 11: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 11

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. ER → AF (3)Caso base: 0 operadoresTres expresiones regulares posibles: ε, ∅, a

r = ∅.Construimos el siguiente autómata

M = ({q0, qF}, Σ, {}, q0, {qF})

Claramente, M cumple las condiciones impuestas y además L(M) = L(r).

Page 12: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 12

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. ER → AF (4)Caso base: 0 operadoresTres expresiones regulares posibles: ε, ∅, a

r = a, con a ∈ Σ.Construimos el siguiente autómata

M = ({q0, qF}, Σ, {δ(q0, a} = qF}, q0, {qF})

Claramente, M cumple las condiciones impuestas y además L(M) = L(r).

Page 13: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 13

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. ER → AF (5)

Hipótesis de inducciónSe asume que el enunciado es cierto para cualquier expresión regular con un número de operadores ≤ n

Paso de inducciónLa expresión regular r tiene exactamente n + 1 operadores. Podemos considerar tres casos:

Unión: r = e + sConcatenación: r = e ⋅ sCierre: r = e*

donde e y s son expresiones regulares cuyo número de operadores es ≤ n

Page 14: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 14

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. ER → AF (6)Unión: r = e + s

Dado que e y s tienen un número 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 autómata: M=(Q1∪Q2∪{q0, qF}, Σ1∪Σ2, δ, 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).

Page 15: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 15

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. ER → AF (7)Concatenación: r = e ⋅ s

Dado que e y s tienen un número 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 autómata: M =(Q1∪Q2, Σ1∪Σ2, δ, 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).

Page 16: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 16

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. ER → AF (8)Cierre: r = e*

Dado que e tiene un número 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 autómata: 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)*.

Page 17: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 17

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

EJEMPLO Construir un AF equivalente a la expresión regular: (0+1)*1(0+1)

Page 18: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 18

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. ER → AF (9)

Ventajas:Método sencillo de aplicar

Desventajas:Muchos estados, AFND-ε

Page 19: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 19

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. AF → ER (1)Todo lenguaje aceptado por un autómata finito determinista M es un lenguaje regular y, por tanto, existe una expresión regular r, tal que L(M) = L(r).Esquema de la demostración:

Definir conjuntos que contengan las cadenas que van de qia qj, pero limitando los estados por los que pueden pasar.Definir L(M) como la unión de algunos de estos conjuntos.Ver que cada conjunto puede ser generado por una expresión regular (y, por tanto, L(M) también).Ideas clave: definición recursiva de los conjuntos e inducción.

Page 20: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 20

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. AF → ER (2)Punto de partidaSea L un lenguaje regular y M = ({q1, …, qn}, Σ, δ, q1, F) un AFD tal que L(M) = L.Nótese que q1 es el estado inicial y que q0 ∉ Q.

Definición de Rkij

Definimos el siguiente conjunto de cadenas:Rk

ij = {x∈Σ* | δ*(qi,x) = qj , y ∀z prefijo propio de x, δ*(qi,z) = ql , con l ≤ k}

Expresión regular cuyo lenguaje es el conjunto de cadenas xtal que x es la etiqueta de un camino que va del estado i al estado j sin pasar por nodos intermedios en un número mayor que k.

Page 21: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 21

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

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

ij

Si k = n, entonces Rkij = {x∈Σ* | δ*(qi,x) = qj }

Por tanto L(M) = R = Rn1j1

∪ Rn1j2

∪ … ∪ Rn1jp

, con F = {qj1, qj2

, …, qjp}.

Luego, nuestro objetivo es demostrar que existe una expresión regular r, tal que, L(r) = R = L(M)

Page 22: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 22

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. AF → ER (4)Definición recursiva de Rk

ij

Base. La base de la recursión será cuando k = 0.Dado que los estados se numeran desde 1, k = 0 implica que no podemos pasar por ningún estado.Puesto que estamos considerando que M es un AFD, tendremos:

Page 23: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 23

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. AF → ER (5)Definición recursiva de Rk

ij

Recursión 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 también pertenecen a Rk-1

ij.Cadenas w ∈ Rk

ij tales que durante su lectura se pasa (al menos una vez) por el estado qk.

Por tanto, Rkij = Rk-1

ik ⋅ (Rk-1kk)* ⋅ Rk-1

kj ∪ Rk-1ij

Page 24: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 24

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. AF → ER (6)Obtención de la expresión regular rk

ij tal que L(rkij) = Rk

ijCaso base (k=0).Inmediato al ser R0

ij un conjunto finito de cadenas:

Hipótesis de inducción. Suponemos cierto para k-1.Paso de inducción. Aplicando la hipótesis de inducción y dado que Rk

ij = Rk-1ik ⋅ (Rk-1

kk)* ⋅ Rk-1kj ∪ Rk-1

ij sólo contiene operadores regulares, obtenemos la siguiente expresión regular:

rkij = rk-1

ik ⋅ (rk-1kk)* ⋅ rk-1

kj + rk-1ij

Por tanto, construimos la expresión regular r = rn1j1

+ rn1j2

+ … + rn1jp

, con F = {qj1

, qj2, …, qjp

}.Siendo L(r) = L(M).

Page 25: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 25

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

EJEMPLO Obtener la ER equivalente al siguiente AFD:

La expresión regular buscada es:

Page 26: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 26

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

Page 27: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 27

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

TEOREMA DE KLEENE. AF → ER (7)Ventajas:

Método mecánico que permite obtener la expresión regularAunque hemos supuesto AFD, es válido para AFND y AFND-εImplementación recursiva

Desventajas:La aplicación del método es costosa (≅ n3 expresiones para un autómata con n estados)La longitud de las expresiones puede crecer en un factor 4 en cada paso ⇒ expresión regular del orden de 4n

símbolos si no se simplificaImplementación recursiva ⇒ calcular repetidas veces una misma expresión regular (p.e. rk-1

kk en el paso i-ésimo)

Page 28: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 28

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

ELIMINACIÓN DE ESTADOS. AF → ER (1)Para aplicar el método usaremos lo que se denomina como:Autómatas 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 sólo hay que ver si tiene transiciones etiquetadas con más de un símbolo, por ejemplo, {a1, a2 , …, am} y sustituir la etiqueta por la expresión regular a1+ a2 + … + am.Por conveniencia se exige que:

Al estado inicial no lleguen transiciones (basta con añadir un nuevo estado inicial y poner una transición nula hacia el antiguo).Hay un único estado final del que no salen transiciones (basta con añadir un nuevo estado final y transiciones nulas desde todos los antiguos estados finales).

Page 29: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 29

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

EJEMPLO

Page 30: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 30

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

ELIMINACIÓN DE ESTADOS. AF → ER (2)Eliminación 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 añade un arco entre p y s etiquetado con las cadenas que recorrían ese camino.Gráficamente:

Page 31: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 31

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

ELIMINACIÓN 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, conP = etiqueta(pi → q) S = etiqueta(q → sj) Q = etiqueta(q → q) ó Q = ε si no existe q → qr = etiqueta(pi → sj) ó r = ∅ si no existe pi → sj

4. Eliminar q y todas sus transiciones del autómata5. Añadir todas las nuevas etiqueta’ al autómata

Page 32: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 32

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

ELIMINACIÓN DE ESTADOS. AF → ER (4)

Obtener-ER(AFD M):

1. Construir un AFNDG M’ a partir de M2. Mientras |Q’| > 2, hacer

a) Elegir un estado q de Q’ – {qinicial, qfinal}b) Eliminar(q)

Page 33: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 33

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

EJEMPLO AFD

AFDNG

Page 34: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 34

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

EJEMPLO

Page 35: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 35

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

EJEMPLO

Page 36: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 36

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

EJEMPLO

Page 37: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 37

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

ECUACIÓN FUNDAMENTAL. AF → ER (1)Planteamiento de la ecuación

Sea M = ({q1, …, qn}, Σ, δ, q1, F) un AF.Encontrar una expresión regular α tal que L(α) = L(M).Definimos el siguiente conjunto:

Xi = {x ∈ Σ* | δ*(qi, x) ∈ F}Sea {a1

ij, …, apjij} el conjunto de símbolos pertenecientes a Σ ∪{ε}, tales que existe una transición desde qi a qj etiquetada con cada uno de ellos.Entonces, el conjunto Xi puede describirse de la siguiente forma:

Page 38: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 38

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

ECUACIÓN FUNDAMENTAL. AF → ER (2)Sistema de ecuaciones

Para cada estado qi se plantea una ecuación Xi.Ejemplo:

Ecuaciones obtenidas:X0 = aX1 + bX2

X1 = bX1 + aX2

X2 = bX2 + εDado que por definición X0 = L(M), nuestro objetivo es resolver el sistema de ecuaciones y obtener la solución para X0.

Page 39: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 39

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

ECUACIÓN FUNDAMENTAL. AF → ER (3)

Resolución del sistema de ecuacionesLema de Arden. Una ecuación X = AX + B, tiene como solución X = A*B. Si ε ∉ A, entonces X = A*B es la única solución.

Page 40: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 40

EJEMPLO (1)Resolver por el método de las ecuaciones:

X0 = aX1 + bX2

X1 = bX1 + aX2

X2 = bX2 + ε

X2 = b*(ε) = b*

X1 = bX1 + ab* = b*ab*

X0 = ab*ab* + bb*

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

Page 41: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 41

EJEMPLO (2)Resolver por el método de las ecuaciones:

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

q0 q1 q2 q3 q4

a a a

a

b

b

bb

Page 42: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 42

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

MÉTODO DE LAS DERIVADAS. ER → AF (1)

Derivada de una expresión regular:

Sea α una expresión regular definida sobre el alfabeto Σ. Definimos la derivada de α respecto al símbolo a ∈ Σ, como la expresión regular Da(α) que genera el lenguaje:

L(Da(α)) = {x ∈ Σ* | ax ∈ L(α)}

Page 43: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 43

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

MÉTODO DE LAS DERIVADAS. ER → AF (2)

Reglas para el cálculo de las derivadas:

Sean a, b ∈ Σ.1. Da(a) = ε2. Da(b) = Da(ε) = Da(∅) = ∅3. Da(α + β) = Da(α) + Da(β)4. Da(α ⋅ β) = Da(α) ⋅ β si ε ∉ L(α)

Da(α ⋅ β) = Da(α) ⋅ β + Da(β) si ε ∈ L(α)5. Da(α∗) = Da(α) ⋅ α∗

Page 44: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 44

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

MÉTODO DE LAS DERIVADAS. ER → AF (3)

Derivadas sucesivas de una expresión regular:

Ahora derivamos respecto a cadenas:Dε(α) = αDax(α) = Dx(Da(α))

El conjunto de derivadas distintas de una expresión regular es finito (pues en cada derivación la longitud de las cadenas, que a su vez es finita, disminuye).

Page 45: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 45

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

MÉTODO DE LAS DERIVADAS. ER → AF (4)

Algoritmo de síntesis:

Dada la expresión 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(α)

Page 46: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 46

EJEMPLO (1)Obtener el AFD correspondiente a la expresión regular α = 01* + 1 por el método de las derivadas.

Calculamos el conjunto de derivadas sucesivas:* Dε(α) = α = 01* + 1* D0(α) = 1* FINAL* D1(α) = ε FINAL* D00(α) = D0(1*) = ∅* D01(α) = D1(1*) = 1* = D0(α)* D10(α) = D0(ε) = ∅ = D00(α)* D11(α) = D1(ε) = ∅ = D00(α)

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS

Construimos el autómata:

D0

D1

D00

0

1

0

0, 1

0, 1

1

Page 47: Automatas Regulares

Teoría de Autómatas y Lenguajes Formales 47

EJEMPLO (2)Obtener el AFD correspondiente a la expresión regular α = 0(1+0)*0 + 11(1+0)(1+0)*0 por el método de las derivadas.

TEMA 6: EXPRESIONES REGULARES Y AUTÓMATAS FINITOS