# DFA vs NFA Deterministic Finite Automata

## Presentation on theme: "DFA vs NFA Deterministic Finite Automata"— Presentation transcript:

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 x A  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

From NFA To DFA 1 Transition function for NFA b a 2 T a b 
{1} ø {3} a ø {2} ø ø ø ø {3} ø {4} 4 3 a {2} ø ø Waseem Besada

Calculating The Transition function for DFA
Transition function for NFA Transition function for DFA T a b  T a b {1} ø {3} {0,3,4} ? ? ø {2} ø TD({0,3,4},a) = ({0},a)  ({3},a)  ({4},a) = {1,3}  {3,4}  {2} = {1,2,3,4} ø ø ø {3} ø {4} TD({0,3,4},b) = ({0},b)  ({3},b)  ({4},b) = ø  ø  ø = ø {2} ø ø Waseem Besada

Calculating The Transition function for DFA (forts)
Transition function for NFA T a b T a b  {0,3,4} {1,2,3,4} ø {1} ø {3} ø ? ? ø ø ø {2} ø {1,2,3,4} ? ? {2,3,4} {2} ø ø ø {3} ø {4} 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} {2} ø ø Waseem Besada

Calculating The Transition function for DFA (forts)
Transition function for NFA T a b T a b  {0,3,4} {1,2,3,4} ø {1} ø {3} ø ø ø ø {2} ø {1,2,3,4} {2,3,4} {2} ø ø ø {2,3,4} {2,3,4} {2} {3} ø {4} {2} ø ø {2} ø ø Waseem Besada

Finally 1 2 3 4 Transition function for DFA T a b ø ? ? ø ø b 4 b a,b
1 2 3 4 {0,3,4} {1,2,3,4} ø 2 1 ø ? ? ø ø a b {1,2,3,4} {2,3,4} {2} 3 {2,3,4} {2,3,4} {2} a {2} ø ø Waseem Besada

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 a,b a a,c a,b,c b a,b a a,b b a,b a,b c a) b c c) a b) b Waseem Besada

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

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 b  0 Ø {1,2} {1} {2} Ø Ø 2 Ø {2} {1} b 1 a b 2 b Waseem Besada

Solution to exercise 5 DFA transition table NFA transition table T a b
0 Ø {1,2} {1} {2} Ø Ø 2 Ø {2} {1} {0,1} ? ? {1,2} {1,2} {1,2} {1,2} {1,2} 1 a,b a,b 1 Waseem Besada

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 b a Waseem Besada

Solution to exercise 6 (cont’d)
Transition table for NFA T a b  0 {1} Ø {1,2} 1 Ø {2} Ø 2 {2} Ø Ø a b 1 2 a Waseem Besada

Solution to exercise 6 (cont’d)
Transition table for NFA Transition table for DFA T a b {0,1,2} {1,2} {2} {1,2} {2} {2} {2} {2} Ø Ø Ø Ø T a b  0 {1} Ø {1,2} 1 Ø {2} Ø 2 {2} Ø Ø Waseem Besada

Solution to exercise 6(cont’d)
{0,1,2} a Transition table for DFA {1,2} T a b {0,1,2} {1,2} {2} {1,2} {2} {2} {2} {2} Ø Ø Ø Ø b a,b {2} a Waseem Besada

Exercise 7 7. Transform each of the following REs into a NFA, then into a DFA a) a*b* b) a* | b* c) (a|b)* Solution to a) a b a 2 3 1 6 6 1 b 4 5 Waseem Besada

Solution, exercise 6-a T a b Can be reduced to:
{0,1,2,3} {1,2,3} {2,3} {1,2,3} {1,2,3} {2,3} {2,3} Ø {2,3} Ø Ø Ø a b 1 2 3 a a Can be reduced to: a a,b 1 b a b a,b 2 3 b a 2 3 b b Waseem Besada

It is your turn to solve the rest of the exercises
What to do next? It is your turn to solve the rest of the exercises Waseem Besada