NFA To DFA Conversion: Rabin and Scott (1959)
NFA To DFA Conversion: Rabin and Scott (1959)
Prasad L12NFA2DFA 1
Removing Nondeterminism
Prasad L12NFA2DFA 2
NFA-λ
λ p2
a p1
λ
p3
q1 λ
λ p5
q2 a
p4
p3 - closure ( p1)
- closure (U{qi })
i
U - closure(q )
i
i
Prasad L12NFA2DFA 4
Transition Function
t : Q Powerset(Q )
t ( qi , a )
U - closure ( ( q
q j -closure ( qi )
j , a ))
t ( q1 , a ) U - closure( (q
q j { q1 , q 2 }
j , a ))
Prasad L12NFA2DFA 5
t ( q1 , a ) - closure ( ( q1 , a ))
- closure ( ( q2 , a ))
t ( q1 , a ) - closure( p1 ) - closure( p4 )
t ( q1 , a ) { p1 , p2 , p3} { p4 , p5}
Prasad L12NFA2DFA 6
Equivalence Construction
• Given NFA-λ M, construct a DFA DM such
that L(M) = L(DM).
• Observe that
Prasad L12NFA2DFA 7
a
{q1,…,qn} {p1,…,pm}
( q j , * a *) pi
Prasad L12NFA2DFA 8
Start state of DFA =
- closure ({q0 })
a q1 b
a
q0
λ a+c*b*
a
q2
Prasad L12NFA2DFA 10
{q0}
a {q0,q1,q2}
{q0}
b
c
Prasad L12NFA2DFA 11
a
a b
{q0,q1,q2} {q1}
{q0}
b c
{q1,q2}
c
a,b,c
Prasad L12NFA2DFA 12
b
{q1} a,c
c
b {q1}
{q1,q2} a
Prasad L12NFA2DFA 13
Equivalent DFA
a
a c
{q0} {q0,q1,q2} c
b {q1,q2}
b,c b
b
a,c
{q1} a
a,b,c
Prasad L12NFA2DFA 14