You are on page 1of 18

Lecture 7 From NFA to DFA

DFA
For every string x, there is a unique path
from initial state and associated with x.

x is accepted if and only if this path ends


at a final state.
NFA
For any string x, there may exist none or
more than one path from initial state and
associated with x.
NFA DFA
Consider an NFA M=(Q, , , s, F).
For x in *, define
[x] = {q in Q | there exists a path s x q}
Define DFA M=(Q, , , s, F}:
Q = { [x] | x in * },
([x], a) = [xa] for x in * and a in ,
s = [],
F = { [x] | x in L(M) }
Construction of M
Special Case: M has no -move.

[] = {s}
Suppose [x] is known. How to get [xa] for
a in ?
From [x] to [xa]
a
[xa] = { p | there exists a path q path
p for
some q in [x] }
= { p | there exists q in [x],
a
q edgep }

= U (q,a)
q in [x]
Construction of M
F = {[x] | x in L(M)}
= {[x] | [x] F }
Example 1
Construct DFA to accept 00(0+1)*
0

0, 1
0 0 0
q s p 0
s p q
1
1

0,1
Example 2
Design DFA to accept (0+1)*11
0
0 1

0 1 s 1 1
1 s q
s p s p
p q
0

1
Example 3
Design DFA to accept 00(0+1)*11
0

0 0 1 1
s p q r t

0,1 1

1 1 0 1
1 q 1 q
s 0 0 r
p q
r t
0
0
Example 4
Construct DFA M for L(M)=.

s Is this a DFA?

0,1
0
s

1
Example 5
Construct DFA M for L(M)=.

s Is it a DFA?

0
s 0,1
0,1
1
Construction of M
For q in Q, define

-closure(q) = {p | there exists a path q pathp}
[] = {q | there is a path s q}
path
= -closure(s)
Suppose [x] is known. How to get [xa] for
a in ?
From [x] to [xa]
a
[xa] = { p | there exists a path q pathp for
some q in [x] }
= { p | there exists q in [x],
a
q edger pathp }
= { p | for some q in [x] and r in (q,a),
p in -closure(r) }
= Uq in [x]U r in (q,a) -closure(r)
Construction of M
F = {[x] | x in L(M)}
= {[x] | [x] F }
Example 6
Construct DFA M for L(M)=(0+1)*.
0,1

s p q

0,1
0,1
s 0 p
p
q q
1
Example 7
Convert the following NFA to DFA.
q 0
0 0
s
0 1 s 0 q
r r s
p p
p r
1
1 1
0 0
q, r, p

1
0,1 0 0 0 0
0 1 1 1 1
s a b c d e

0 0
s s,a s,a,b 0 s,a,b,c 0 s,a,b,c,d 0 s,a,b,c,d,e
1
s,b 5
1 How many states? 2 =32
s,c
4
1 How many final states? 2 = 16
s,d
1
s,e Can we simplify it? No, it is minimum!

You might also like