3. Método de Subconjuntos
Dado un NDFA N={Σ ,S, S0,F, δ}, su
correspondiente AFD es D={Σ ,SD, s0D,FD, δ D},
donde:
SD ⊆ P(S)
S0 ⊆ S y S0 ∈P(S)
s0D= S0
FD ⊆ SD ⊆ P(S)=SD y FD={Q ∈SD/Q ∩ F ≠ ∅}
δD: SD x Σ→ SD
Se define como:
D
(∀Q ∈ S )(∀a ∈ ∑), δ D (Q, a ) = δ (q, a )
q∈Q
4. Método de Subconjuntos
Ejemplo 1:
Convertir el siguiente NDFA en un AFD
NDFA: N={Σ,S,So,F,δ}
Σ={a,b}
S={r,s,t}
So={r,s}
a
r
s
F={t}
AFD: D={Σ ,SD, s0D,FD, δ D},
b
b
t
b
Σ={a,b}
SD=P(S)={∅ ,{r},{s},{t},{r,s}, {r,t}, {s,t},S}
s0D={r,s}
FD={{t}, {r,t}, {s,t},S}, todos los subconjuntos que tengan el
estado de finalización t
Cómo calcular δ D? Describirlo en clases
5. Evaluación Perezosa
Caso Base:
El estado s0D ∈ AFD y es un estado alcanzable,
s0D ∈SD ⊆ P(S)
Suposición
Sea el estado Q que pertenece al AFD (Q ∈SD ⊆ P(S))
Caso Inductivo
δD(Q,a)(∀a∈Σ) es alcanzable y δD(Q,a)∈SD ⊆P(S),es decir
δD(Q,a) ∈ AFD
6. Evaluación Perezosa
Ejemplo 1:
Según la Evaluación Perezosa (Resolverla en
clases), el AFD es:
a
r
s
b
b
t
NDFA
{r,s}
Evaluación
Perezosa
b
a
b
a
{s}
b
{}
a
{r,t}
AFD
a,b
a
b
{t}
b
7. Evaluación Perezosa
Ejercicio: Obtener los elementos de la
quíntupla del NDFA y luego obtener el AFD
AFD: D={Σ ,SD, s0D,FD, δ D},
q
0
0
q
1
q
2
1
1,0
Σ={a,b}
SD ⊆ P(S)={∅ ,{q0},{q1},{q2},{q0, q1}, {q1, q2}, {q0, q2}, S}
s0D={q0}
FD={{q2}, {q1, q2}, {q0, q2}, S}
Por Evaluación Perezosa se obtiene el AFD:
1
{q0}
0
0
{q0,q1},
1
0
1
{q0,q2 }
8. Paso de un NDFA a un DFA
Función de Transición Extendida de un AFD que
δˆ D
parte de un NDFA
δˆ D : S D × Σ* → S D ⊆ P( S )
Se define por las siguientes reglas:
(
)
(
)
3. ( ∀Q ∈ S ),( ∀a ∈ Σ ) , ( ∀x ∈ Σ ), δˆ
1. ∀Q ∈ S D ( ∀a ∈ Σ )δˆ D (Q, a ) = δ D (Q, a ) = Conjunto ∈ P( S )
2. ∀Q ∈ S D ,λ − cadena vacía, δˆ(Q, λ ) = Q
D
(
*
)
(
D
(Q, xa) = δ D (δˆ D (Q, x), a ) =
)
3'. ∀Q ∈ S D ,( ∀a ∈ Σ ) , ∀x ∈ Σ* , δˆ D (Q, ax) = δˆ D (δ D (Q, a ), x) =
Para los grafos del Ejercicio, reconocer w=00101
δ ( q, a )
ˆ
q∈δ D ( Q , x )
δˆ(q, x)
q∈δ D ( Q , a )