DFA vs NFA

advertisement
DFA vs NFA
Deterministic Finite Automata
Non-Deterministic Finite Automata
Characterized as 5-tuple
< S, A, T, s0, F >
• S is the set of states
• A is the alphabet
• T is the transition function:
S xA S
• s0 is the start state
• F is the set of accepting states.
Characterized as 5-tuple
< S, A, T, s0, F >
• S is the set of states
• A is the alphabet
• T is the transition function:
S x (A{})  PS
• s0 is the start state
• F is the set of accepting states.
Waseem Besada
1
From NFA To DFA
1
Transition function for NFA
T
a
b

0
{1}
ø
{3}
b
a
2
0
a
1
ø
{2}
ø
2
ø
ø
ø
3
{3}
ø
{4}
4
{2}
ø
ø


a
Waseem Besada
4
3
2
Calculating The Transition
function for DFA
Transition function for DFA
Transition function for NFA
T
a
b
T
a
b

{0,3,4}
?
?
0
{1}
ø
{3}
1
ø
{2}
ø
2
ø
ø
ø
3
{3}
ø
{4}
4
{2}
ø
ø
TD({0,3,4},a) = ({0},a)  ({3},a)  ({4},a)
= {1,3}  {3,4}  {2}
= {1,2,3,4}
TD({0,3,4},b) = ({0},b)  ({3},b)  ({4},b)
=øøø
=ø
Waseem Besada
3
Calculating The Transition
function for DFA (forts)
Transition function for DFA
Transition function for NFA
T
a
b
T
a
b

{0,3,4}
{1,2,3,4}
0
{1}
ø
{3}
ø
ø?
ø
?ø
1
ø
{2}
ø
{1,2,3,4}
{2,3,4}
?
{2}
?
2
ø
ø
ø
3
{3}
ø
{4}
4
{2}
ø
ø
TD({1,2,3,4},a) = ({1},a)  ({2},a)  ({3},a)  ({2},a)
= ø  ø  {3,4}  {2}
= {2,3,4}
Similarly,
TD({1,2,3,4},b) = {2}
Waseem Besada
4
Calculating The Transition
function for DFA (forts)
Transition function for DFA
Transition function for NFA
a
b
T
a
b

{0,3,4}
{1,2,3,4}
ø
0
{1}
ø
{3}
ø
ø
ø
1
ø
{2}
ø
{1,2,3,4}
{2,3,4}
{2}
2
ø
ø
ø
{2,3,4}
{2,3,4}
{2}
3
{3}
ø
{4}
{2}
ø
ø
4
{2}
ø
ø
T
Waseem Besada
5
Finally
b
Transition function for DFA
4
b
0
a
T
a,b
2
1
a
b
3
a
0
1
2
3
4
Waseem Besada
a
b
{0,3,4}
{1,2,3,4}
ø
ø?
ø
?ø
{1,2,3,4}
{2,3,4}
{2}
{2,3,4}
{2,3,4}
{2}
{2}
ø
ø
6
Exercise 2, solution
2. Construct directly (that is don’t use the transformation
procedure given in the lecture) a DFA for each of the
following REs.
a) a | b
b) a | b*
c) ab* | bc*
b
a
a,b
b
a,b
a,b
a
a
a,b
c
a)
b
a
b
a,b
a,c
b
a,b,c
a,b
c
c)
b)
Waseem Besada
7
Exercise 4, solution
4. Construct directly (that is don’t use the transformation
procedure given in the lecture) a NFA for each of the
following REs.
a) a*bc*| bc
b) a* | ab
a
c
a

b
a
c

a
b
b)
a)
Waseem Besada
8
Exercise 5
5. Construct a DFA table for the following NFA transition table.
The start state is 0 and there is one accepting state, 2.
a
0 Ø
1 {2}
2 Ø
b
{1,2}
Ø
{2}

{1}
Ø
{1}
 b
1
0

a
b
2
b
Waseem Besada
9
Solution to exercise 5
NFA transition table
DFA transition table
T
a
b
a
{0,1} {1,2}
?
{1,2}
?
0
{1,2}
0 Ø
1 {2}
2 Ø
{1,2} {1,2}
b

{1,2}
Ø
{2}
{1}
Ø
{1}
1
0
a,b
Waseem Besada
1
a,b
10
Exercise 6
6. Consider the following NFA over the alphabet {a,b}:
a) Find a regular expression for the language accepted by
the NFA.
b) Write down the transition table for the NFA.
c) Transform the NFA into a DFA
d) Draw a picture of the resulting DFA.
a

0
0
a
Waseem Besada
b
0

11
Solution to exercise 6 (cont’d)
Transition table for NFA
T
a
b


0
0
1
2
{1}
Ø
{2}
Ø
{2}
Ø
a
1
a
{1,2}
Ø
Ø
Waseem Besada
b
2

12
Solution to exercise 6 (cont’d)
Transition table for NFA
Transition table for DFA
T
a
b
{0,1,2} {1,2}
{1,2}
{2}
{2}
{2}
Ø
Ø
T a
{2}
{2}
Ø
Ø
b

0 {1} Ø {1,2}
1 Ø {2} Ø
2 {2} Ø Ø
Waseem Besada
13
Solution to exercise 6(cont’d)
{0,1,2}
a
{1,2}
b
a,b
{2}
Transition table for DFA
T
a
b
{0,1,2} {1,2}
{1,2}
{2}
{2}
{2}
Ø
Ø
{2}
{2}
Ø
Ø
a
Waseem Besada
14
Exercise 7
7. Transform each of the following REs into a NFA, then into
a DFA
a) a*b*
b) a* | b*
Solution to a)
0

 2
1 
4

a
b
c) (a|b)*
3 

6
0

a
1

b
6

5

Waseem Besada
15
Solution, exercise 6-a
T
{0,1,2,3}
{1,2,3}
{2,3}
Ø
a
b
{1,2,3}
{1,2,3}
Ø
Ø
a
a
0
{2,3}
{2,3}
{2,3}
Ø
a
a
0
1
b
a,b
a
2
3
2

3
a,b
b
b

Can be reduced to:
0
1

b
2
a
3
b
b
Waseem Besada
16
What to do next?
It is your turn
to solve the rest of the exercises
Waseem Besada
17
Download