Clase 10:Conversión de AFN a AFD Solicitado: Ejercicios 08: Conversión de AFN a AFD M. en C. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco @efranco_escom edfrancom@ipn.mx 1
Contenido Cerradura épsilon Operación mover Operación Ir_A Algoritmo de conversión de un AFN a un AFD Ejemplo 01 Ejercicios 08: Conversión de AFN a AFD 2
Cerradura épsilon Dado un AFN definimos la operación cerradura épsilon de un estado X como: C_ε(x) = {x} Ʋ{v v es alcanzable con transiciones ε a partir de x } 3
C_ε (q5) = {q5} Ʋ{q0,q1,q3} C_ε (q2) = {q2} Ʋ{q3,q1} C_ε (q1) = {q1} Ʋ{λ} C_ε ({q3,q4}) = {q3,q4,q6} 4
Operación mover Mover (e, α) = {β Ǝ una transacción de e con α hacia el estado β} Mover (q3,b) = {q4} Mover (q0,a) = {λ} Mover({q5,q10},a) = {q6,q11} 5
Operación Ir_A Ir_A (C,α) donde C es un conjunto {e1, e2, e3, en} de estados del AFN y α es un símbolodelalfabetodelmismoafn: Ir_A(C,α) = C_E(Mover (C,α)) i.e. Ir_A(C,α) =C_E(Ʋ Mover (eᵢ,α)) 6
Algoritmo de conversión de un AFN a un AFD 1. SecalculalaC_εdelestadoinicialdelAFN, elresultadoseráelestadoinicials0delafd. S0 será el estado inicial del AFD y el primer Si del AFD. 2. Se calcula para cada Si la operación Ir_A paracadaαϵσ,lacualarrojaraunestadosi (Pudiendo repetirse). 3. Se realiza la operación 2 con todos los estados hasta que ya no surjan estados diferentes. 7
El estado inicial del AFD será S0 y los estados finales serán todos aquellos Si que contengan al estado final del AFN original. La función de transición es el resultado de todas las operaciones Ir_A sobre los Si. 8
Ejemplo 01 Convertir el autómata finito no determinista de la expresión regular (b b*a)a, a un autómata finito determinista. 9
C_ ε(q0)={q0,q1,q2,q3,q5,q8}=a Ir_A(A,a)= C_ ε(mover(a,a))= C_ ε{q6}={q6,q7,q10}=b Ir_A(A,b)= C_ ε(mover(a,b))= C_ ε{q4,q9}={q4,q3,q5,q9,q10}=c Ir_A(B,a)= C_ ε(mover(b,a))= C_ ε{q11}={q11}=d Ir_A(B,b)= C_ ε(mover(b,b))= C_ ε{λ}={λ} 10
Ir_A(C,a)= C_ ε(mover(c,a))= C_ ε{q6,q11}={q6,q7,q10,q11}=e Ir_A(C,b)= C_ ε(mover(c,b))= C_ ε{q4}={q4,q3,q5}=f Ir_A(D,a)= C_ ε(mover(d,a))= C_ ε{λ}={λ} Ir_A(D,b)= C_ ε(mover(d,b))= C_ ε{λ}={λ} Ir_A(E,a)= C_ ε(mover(e,a))= C_ ε{q11}={q11}=d Ir_A(E,b)= C_ ε(mover(e,b))= C_ ε{λ}={λ} 11
Ir_A(F,a)= C_ ε(mover(f,a))= C_ ε{q6}={q6,q7,q10}=b Ir_A(F,b)= C_ ε(mover(f,b))= C_ ε{q4}={q4,q3,q5}=f ElestadoinicialesA,yaqueoriginalmentecontieneaq0. LosestadosfinalessonDyEyaquecontienenaq11. f a b A B C B D λ C E F D λ λ E D λ F B F 12
(b b*a)a 13
Es posible omitir el estado λ, para una fácil interpretación, pero es importante hacer notar que puede ser tratado como un estado más (estado pozo o de error), y es necesario para la implementación correcta del autómata. (b b*a)a 14
Ejercicios 08: Conversión AFN a AFD Construir los autómatas para las siguientes expresiones regulares a través de la nomenclatura de Thompson y realizar el proceso de conversión para obtener los autómatas finitos deterministas correspondientes. 1. abc* ca 2. c(a b) + 3. (a b)*abb 4. [(b b*a)*]a 5. (a* b + ) + *Se entregarán antes del día Lunes 30 de Septiembre de 2013 (23:59:59 hora limite). *Incluir la redacción de cada ejercicio *Portada y encabezados de pagina *Sugerencia utilizar Jflappara el dibujo y simulación de los autómatas 15