NFA DFA

Another NFA Example
0
q0
1
q1
0, 1 q2

Fall 2004
COMP 335
1
Language accepted
L(M ) = {λ, 10, 1010, 101010, ...}
= {10} *
0
q0
1
q1

Fall 2004
COMP 335
0, 1 q2
(redundant
state)
2
Remarks:
•The  symbol never appears on the
input tape
•Simple automata:
Fall 2004
M1
q0
M2
L(M1 ) = {}
L(M 2 ) = {λ}
q0
COMP 335
3
•NFAs are interesting because we can
express languages easier than DFAs
NFA
q0
a
DFA
M1
q2
q1
a
q0
L( M1 ) = {a}
Fall 2004
a
M2
a
q1
L( M 2 ) = {a}
COMP 335
4
Formal Definition of NFAs
M  Q, ,  , q0 , F 
Q:
Set of states, i.e.
q0 , q1, q2 
:
Input aphabet, i.e.
a, b
:
Transition function
q0 : Initial state
F:
Fall 2004
Final states
COMP 335
5
Transition Function 
 q0 , 1  q1
0
q0
1
q1
0, 1 q
2

Fall 2004
COMP 335
6
 (q1,0)  {q0 , q2 }
0
q0
1
q1
0, 1 q
2

Fall 2004
COMP 335
7
 (q0 ,  )  {q0 , q2}
0
q0
1
q1
0, 1 q
2

Fall 2004
COMP 335
8
 (q2 ,1)  
0
q0
1
q1
0, 1 q
2

Fall 2004
COMP 335
9
Extended Transition Function  *
 * q0 , a   q1
q5
q4
a
q0
a
a
b
q1
q2

q3

Fall 2004
COMP 335
10
 * q0 , aa   q4 , q5 
q5
q4
a
q0
a
a
b
q1
q2

q3

Fall 2004
COMP 335
11
 * q0 , ab   q2 , q3 , q0 
q5
q4
a
q0
a
a
b
q1
q2

q3

Fall 2004
COMP 335
12
Formally
q j   * qi , w : there is a walk from qi to q j
with label
w
w
qi
qj
w  1 2  k
qi
Fall 2004
1
k
2
COMP 335
qj
13
The Language of an NFA M
F  q0 ,q5 
q5
q4
a
q0
a
a
b
q1
q2

q3

 * q0 , aa   q4 , q5
aa  L(M )
F
Fall 2004
COMP 335
14
F  q0 ,q5 
q5
q4
a
q0
a
a
b
q1
q2

q3

 * q0 , ab   q2 , q3 , q0 
F
Fall 2004
COMP 335
ab LM 
15
F  q0 ,q5 
q5
q4
a
q0
a
a
b
q1
q2

q3

 * q0 , abaa   q4 , q5
Fall 2004
abaa  L(M )
F
COMP 335
16
F  q0 ,q5 
q5
q4
a
q0
a
a
b
q1
q2

q3

 * q0 , aba   q1
Fall 2004
F
COMP 335
aba  LM 
17
q5
q4
a
q0
a
a
b
q1
q2

q3

LM   ab*  {ab}*{aa}
Fall 2004
COMP 335
18
Formally
The language accepted by NFA
M is:
LM   w1, w2 , w3 ,...
where
 * (q0 , wm )  {qi , q j ,..., qk ,}
and there is some
Fall 2004
qk  F (final state)
COMP 335
19
w LM 
 * (q0 , w)
qi
w
q0
qk
w
w
Fall 2004
COMP 335
qk  F
qj
20
NFA accept Regular Languages
Fall 2004
COMP 335
21
Equivalence of FA
Definition:
An FA
M1 is equivalent to FA M 2
if LM1   LM 2 
that is if both accept the same language.
Fall 2004
COMP 335
22
Example of equivalent FA
NFA
LM1   {10} *
0
q0
1
DFA
LM 2   {10} *
M1
q1
M2
0,1
1
q2
0
q0
1
q1
0
Fall 2004
COMP 335
23
We will prove:
Languages
accepted
by NFA

Regular
Languages
That is, NFA and DFA have
the same computation power
Fall 2004
COMP 335
Languages
accepted
by DFA
24
Step 1
Languages
accepted
by NFA

Regular
Languages
Proof: Every DFA is trivially an NFA
Any language L accepted by a DFA
is also accepted by an NFA
Fall 2004
COMP 335
25
Step 2
Languages
accepted
by NFA

Regular
Languages
Proof: Any NFA can be converted into an
equivalent DFA
Any language accepted by an NFA
is also accepted by a DFA
Fall 2004
COMP 335
26
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
q0 
Fall 2004
COMP 335
27
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
q0 
Fall 2004
a
q1,q2 
COMP 335
28
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
q0 
a
q1,q2 
b

Fall 2004
COMP 335
29
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
a
M
q0 
a
q1,q2 
b

Fall 2004
COMP 335
30
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
a
b
q0 
a
q1,q2 
b

Fall 2004
COMP 335
31
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
a
b
q0 
a
q1,q2 
b
a, b

Fall 2004
COMP 335
32
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
LM   L(M )
a
b
q0 
a
q1,q2 
b
a, b

Fall 2004
COMP 335
33
NFA to DFA: Remarks
We are given an NFA
M
We want to convert it
into an equivalent DFA
That is,
Fall 2004
M
LM   L(M )
COMP 335
34
If the NFA has states
q0 , q1, q2 ,...
Then the DFA has states in the powerset
, q0 , q1, q1 , q2 ,....
Fall 2004
COMP 335
35
Procedure NFA to DFA
1.
Fall 2004
Initial state of NFA:
q0
Initial state of DFA:
q0 
COMP 335
36
NFA
Example
a
M
q0
a

q1
q2
b
DFA
M
q0 
Fall 2004
COMP 335
37
Procedure NFA to DFA
2. For every DFA’s state {qi , q j ,..., qm }
Compute in the NFA
 * qi , a ,
 * q j , a ,
}
 {qi , qj ,..., qm
...
Add the following transition to the DFA
}
 {qi , q j ,..., qm }, a   {qi , qj ,..., qm
Fall 2004
COMP 335
38
NFA
Example
a
M
q0
a

q1
q2
b
 * (q0 , a)  {q1, q2}
DFA
M
q0 
a
q1,q2 
 q0 , a   q1, q2 
Fall 2004
COMP 335
39
Procedure NFA to DFA
Repeat step 2 for all symbols in the alphabet
∑, until no more transitions can be added.
Fall 2004
COMP 335
40
NFA
Example
a
M
q0
a

q1
q2
b
DFA
M
a
b
q0 
a
q1,q2 
b
a, b

Fall 2004
COMP 335
41
Procedure NFA to DFA
3. For any DFA state: {qi , q j ,..., qm }
If some
q j is a final state in the NFA
Then, {qi , q j ,..., qm }
is a final state in the DFA
Fall 2004
COMP 335
42
NFA
Example
a
M
q0
a

q1
q2
q1  F
b
DFA
M
a
b
q0 
a
q1,q2 
q1, q2  F 
b
a, b

Fall 2004
COMP 335
43
Take NFA
Theorem
M
Apply the procedure to obtain DFA
Then,
M
M and M  are equivalent:
LM   LM 
Fall 2004
COMP 335
44
Proof
LM   LM 
LM   LM 
Fall 2004
AND
COMP 335
LM   LM 
45
First we show:
LM   LM 
Take arbitrary string : w L(M )
We will prove:
Fall 2004
w  L(M )
COMP 335
46
w L(M )
M:
w
q0
qf
w  1 2  k
M:
Fall 2004
q0
1
k
2
COMP 335
qf
47
We will show that if
w L(M )
w  1 2  k
M:
M:
q0
1
2
k
1
2
k
{q0 }
Fall 2004
w  L(M )
COMP 335
qf
{q f ,}
48
More generally, we will show that if in
(arbitrary string)
M:
q0
M:
a1
{q0 }
Fall 2004
a1
M:
v  a1a2  an
qi
a2
qj
ql
an
qm
an
a2
{qi ,} {q j ,}
COMP 335
{ql ,} {qm ,}
49
Proof by induction on
The basis case:
M:
v  a1
q0
M:
a1
qi
a1
{q0 }
Fall 2004
|v|
COMP 335
{qi ,}
50
Induction hypothesis:
1 | v | k
v  a1a2  ak
M:
q0
M:
a1
{q0 }
Fall 2004
a1
qi
a2
qj
qc
ak
qd
ak
a2
{qi ,} {q j ,}
COMP 335
{qc ,} {qd ,}
51
Induction Step:
| v | k  1
v  a1a2  ak ak 1  vak 1


v
M:
q0
a1
qi
a2
qj
qc
ak
qd
v
M:
a1
{q0 }
Fall 2004
ak
a2
{qi ,} {q j ,}
v
COMP 335
{qc ,} {qd ,}
52
Induction Step:
| v | k  1
v  a1a2  ak ak 1  vak 1


v
M:
q0
a1
qi
a2
qj
qc
ak
qd
ak 1
qe
v
M:
a1
{q0 }
Fall 2004
ak
a2
{qi ,} {q j ,}
v
COMP 335
ak 1
{qc ,} {qd ,}
{qe ,}
53
Therefore if
w L(M )
w  1 2  k
M:
M:
q0
1
2
k
1
2
k
{q0 }
Fall 2004
w  L(M )
COMP 335
qf
{q f ,}
54
We have shown:
LM   LM 
We also need to show:
LM   LM 
(proof is similar)
Fall 2004
COMP 335
55