Lect - 5,6 (Conversion of NFA To DFA)
Lect - 5,6 (Conversion of NFA To DFA)
Equivalence of Machines
Conversion of NFA to DFA
1
Equivalence of Machines
Definition:
if L( M1 ) = L( M 2 )
NFA M1
L(M1 ) = {10} * 0
q0 q1
1
DFA M2 0,1
L(M 2 ) = {10} * 0
q0 q1 1 q2
1
0
Book: Prof. Sipser-MIT 3
Conversion of NFA to DFA: Example
DFA M
q0
DFA M
q0 a
q1, q2
NFA M a
q0 a q1 q2
b
DFA M
q0 a
q1, q2
b
trap state
Book: Prof. Sipser-MIT 22
(q1 , a ) = {q1 , q2 }
*
NFA M a * (q2, a ) =
q0 a q1 q2 union
b q1, q2
a
DFA M
q0 a
q1, q2
b
Book: Prof. Sipser-MIT 23
(q1 , b ) = {q0 }
*
b q0
a
DFA M b
q0 a
q1, q2
b
Book: Prof. Sipser-MIT 24
NFA M a
q0 a q1 q2
b
a
DFA M b
q0 a
q1, q2
b
a, b trap state
Book: Prof. Sipser-MIT 25
END OF CONSTRUCTION
NFA M a
q0 a q1 q2 q1 F
b
a
DFA M b
q0 a
q1, q2
q1, q2 F
b
a, b
Book: Prof. Sipser-MIT 26
General Conversion Procedure
Input: an NFA M
step
1. Initial state of NFA: q0
(q0 , ) = q0 ,
*
NFA M
q0 a q1 q2
b
DFA M
q0
DFA M
q0 a
q1, q2
(q0 , a ) = q1, q2
Book: Prof. Sipser-MIT 32
step
3. Repeat Step 2 for every state in DFA and
symbols in alphabet until no more states
can be added in the DFA
a
DFA M b
q0 a
q1, q2
b
a, b
Book: Prof. Sipser-MIT 34
step
4. For any DFA state {qi , q j ,..., qm }
q0 a
q1, q2
q1, q2 F
b
a, b
Book: Prof. Sipser-MIT 36