Post on 19-Sep-2018
Clase 10: Conversión de AFN a AFD
Solicitado: Ejercicios 08: Conversión de AFN a AFD
1M. en C. Edgardo Adrián Franco Martínez
http://computacion.cs.cinvestav.mx/~efranco
@efranco_escom
edfrancom@ipn.mx
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
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
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
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
C_ε (q5) = {q5} Ʋ{q0,q1,q3}
C_ε (q2) = {q2} Ʋ{q3,q1}
C_ε (q1) = {q1} Ʋ{λ}
C_ε ({q3,q4}) = {q3,q4,q6}
4
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
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
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
Operación Ir_A
• Ir_A (C,α) donde C es un conjunto {e1, e2,
e3, en} de estados del AFN y α es un
símbolo del alfabeto del mismo AFN:
Ir_A (C,α) = C_E(Mover (C ,α))
i.e.
Ir_A (C,α) =C_E(Ʋ Mover (eᵢ ,α))
6
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
Algoritmo de conversión de un AFN a un AFD
1. Se calcula la C_ ε del estado inicial del AFN,
el resultado será el estado inicial S0 del AFD.
• S0 será el estado inicial del AFD y el primer Si del
AFD.
2. Se calcula para cada Si la operación Ir_Apara cada α ϵ Σ, la cual arrojara un estado Si(Pudiendo repetirse).
3. Se realiza la operación 2 con todos losestados hasta que ya no surjan estadosdiferentes.
7
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
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
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
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
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
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
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
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
• El estado inicial es A, ya que originalmente contiene a q0.
• Los estados finales son D y E ya que contienen a q11.
f a b
A B C
B D λ
C E F
D λ λ
E D λ
F B F
12
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
(b|b*a)a
13
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
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
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
Ejercicios 08: Conversión AFN a AFD• Construir los autómatas para las siguientes expresiones
regulares a través de la nomenclatura de Thompson yrealizar el proceso de conversión para obtener losautó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 Jflap para el dibujo y simulación de los autómatas
15
Teo
ría
co
mp
uta
cio
na
l
10
Co
nve
rsió
n d
e A
FN
a A
FD
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z