Convert from NFA to DFA using Thompson’s rule for (a+b)*abb

NFA for (a+b)*abb

  • ε – closure (0) = {0,1,2,4,7} —- Let A
  • Move(A,a) = {3,8}

ε – closure (Move(A,a)) = {1,2,3,4,6,7,8}—- Let B
 Move(A,b) = {5}

ε – closure (Move(A,b)) = {1,2,4,5,6,7}—- Let C   
Move(B,a) = {3,8}

ε – closure (Move(B,a)) = {1,2,3,4,6,7,8}—- B
Move(B,b) = {5,9}

ε – closure (Move(B,b)) = {1,2,4,5,6,7,9}—- Let D
Move(C,a) = {3,8}

ε – closure (Move(C,a)) = {1,2,3,4,6,7,8}—- B
Move(C,b) = {5}

ε – closure (Move(C,b)) = {1,2,4,5,6,7}—- C
Move(D,a) = {3,8}

ε – closure (Move(D,a)) = {1,2,3,4,6,7,8}—- B
Move(D,b) = {5,10}

ε – closure (Move(D,b)) = {1,2,4,5,6,7,10}—- Let E
Move(E,a) = {3,8}

ε – closure (Move(E,a)) = {1,2,3,4,6,7,8}—- B
Move(E,b) = {5}

ε – closure (Move(E,b)) = {1,2,4,5,6,7}—- C


States a b
A B C
B B D
C B C
D B E
E B C

Transition table for (a+b)*abb

DFA for (a+b)*abb

Leave a Reply