Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lecture 08

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 38

NFA → DFA Construction

 The algorithm is called subset


construction.
 In the transition table of an
NFA, each entry is a set of
states.
 In DFA, each entry is a single
state
1
NFA → DFA Construction
 The general idea behind
NFA-to-DFA construction is
that each DFA state
corresponds to a set of
NFA states.

2
NFA → DFA Construction
 The DFA uses its state to
keep track of all possible
states the NFA can be in
after reading each input
symbol.

3
NFA → DFA Construction
 We will use the following
operations.
 -closure(T):
set of NFA states reachable
from some NFA state s in T
on -transitions alone.
4
NFA  DFA Construction
 move(T,a):
set of NFA states to which
there is a transition on input
a from some NFA state s in
set of states T.

5
NFA → DFA Construction
 Before it sees the first input
symbol, NFA can be in
any of the state in the set
-closure(s0), where s0 is the
start state of the NFA.

6
NFA → DFA Construction
 Suppose that exactly the
states in set T are
reachable from s0 on a
given sequence of input
symbols.

7
NFA → DFA Construction
 Let a be the next input
symbol.
 On seeing a, the NFA can
move to any of the states in
the set move(T,a).

8
NFA → DFA Construction
 Let a be the next input
symbol.
 On seeing a, the NFA can
move to any of the states in
the set move(T,a).

9
NFA → DFA Construction
 When we allow for
-transitions, NFA can be in
any of the states in
-closure(move(T,a))
after seeing a.

10
Subset Construction
Algorithm:
Input:
NFA N with state set S,
alphabet , start state
s0, final states F
11
Subset Construction
Output:
DFA D with state set S’,
alphabet , start states
s0’ = -closure(s0), final
states F’, transition
table: S’ x  → S’
12
Algorithm
// initially, e-closure(s0) is the only
// state in D states S’ and it is
// unmarked
s0’ = -closure(s0)
S’ = {s0’ } (unmarked)

13
while there is some unmarked state T
in S’
mark state T
for all a in  do
U = -closure( move(T,a) );
if U not already in S’
add U as an unmarked state to S’
Dtran(T,a) = U;
end for
end while
14
Algorithm
F’:
for each DFA state S
if S contains an NFA final state
mark S as DFA final state

15
Subset Construction Example

a
2 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

NFA for (a | b )*abb
16

a
2 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 The start state of equivalent
DFA is -closure(0), which is
A = {0,1,2,4,7}
17

2 a
3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 A = {0,1,2,4,7}, these are
exactly the states reachable
from state 0 via -transition.
18

2 a 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 The input symbol alphabet
here is {a,b}.
19

2 a 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 The algorithm tells us to mark
A and then compute
-closure(move(A,a))
20

2 a
3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 move(A,a)), is the set of states
of NFA that have transition on
‘a’ from members of A.
21

2 a
3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 Only 2 and 7 have such


transition, to 3 and 8.
22

2 a 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 So, -closure(move(A,a)) =
-closure({3,8}) =
{1,2,3,4,6,7,8}
23

2 a 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 Let B = {1,2,3,4,6,7,8}.
 Thus Dtran[A,a] = B
24

2 a 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 For input b, among states in A,
only 4 has transition on b to 5
25

2 a 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 C = -closure({5})
= {1,2,4,5,6,7}
 Thus, Dtran[A,b] = C
26

a
2 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 We continue this process with
the unmarked sets B and C
27

a
2 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 i.e., -closure(move(B,a)),
-closure(move(B,b)),
28

a
2 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 -closure(move(C,a)) and
-closure(move(C,b))
29

a
2 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 Until all sets and states of DFA
are marked.
30

a
2 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 This is certain since there are
only 211 (!) different subsets of
a set of 11 states.
31

a
2 3
 
  a b b
0 1 6 7 8 9 10
 
b
4 5

 And a set, once marked, is


marked forever.
32
Subset Construction
Eventually, the 5 sets are:
A={0,1,2,4,7}
B={1,2,3,4,6,7,8}
C={1,2,4,5,6,7}
D={1,2,4,5,6,7,9}
E={1,2,4,5,6,7,10}
33

a
2 3
 
  a b b
0 1 6 7 8 9 10
 b

4 5

A is start state
A={0,1,2,4,7} D={1,2,4,5,6,7,9}
B={1,2,3,4,6,7,8} E={1,2,4,5,6,7,10}
C={1,2,4,5,6,7}
34

a
2 3
 
  a b b
0 1 6 7 8 9 10
 b

4 5

E is accepting state
A={0,1,2,4,7} D={1,2,4,5,6,7,9}
B={1,2,3,4,6,7,8} E={1,2,4,5,6,7,10}
C={1,2,4,5,6,7}
35
Resulting DFA
a a
a b b
A B D E
a
b a
b
C

b
DFA for (a | b )*abb
36
Resulting DFA
a a
a b b
A B D E
a
b a
b
C

b a a a a b b
37
Final Transition Table
Input symbol
State a b

A B C
B B D
C B C
D B E
E B C 38

You might also like