Removing unreachable states 

> InternalStates:={q0,q1,q2,q3,q4}:
Alphabet:={0,1}:
delta:=table():
delta[(q0,0)]:=q0:
delta[(q0,1)]:=q1:
delta[(q1,0)]:=q0:
delta[(q1,1)]:=q2:
delta[(q2,0)]:=q2:
delta[(q2,1)]:=q1:
#Unreachable states
delta[(q3,0)]:=q4:
delta[(q3,1)]:=q2:
delta[(q4,0)]:=q4:
delta[(q4,1)]:=q3:
InitialState:=q0:
FinalStates:={q1,q3}:
dfa1:=mkDFA(InternalStates,Alphabet,op(delta),InitialState,FinalStates):
transitionGraph(dfa1);
#
dfa2:=reachableDFA(dfa1):
transitionGraph(dfa2);
 

Plot_2d
 

Plot_2d
 

> InternalStates:={q0,q1,q2,q3,q4}:
Alphabet:={0,1}:
delta:=table():
delta[(q0,0)]:=q0:
delta[(q0,1)]:=q1:
delta[(q1,0)]:=q0:
delta[(q1,1)]:=q2:
delta[(q2,0)]:=q2:
delta[(q2,1)]:=q0:
#Unreachable states
delta[(q3,0)]:=q4:
delta[(q3,1)]:=q2:
delta[(q4,0)]:=q3:
delta[(q4,1)]:=q1:
InitialState:=q0:
FinalStates:={q1,q3,q4}:
dfa:=mkDFA(InternalStates,Alphabet,op(delta),InitialState,FinalStates):
#
reachableDFA(dfa);
 

DFA({q0, q1, q2}, {0, 1}, TABLE([(q2, 1) = q0, (q1, 1) = q2, (q0, 0) = q0, (q1, 0) = q0, (q0, 1) = q1, (q2, 0) = q2]), q0, {q1})
DFA({q0, q1, q2}, {0, 1}, TABLE([(q2, 1) = q0, (q1, 1) = q2, (q0, 0) = q0, (q1, 0) = q0, (q0, 1) = q1, (q2, 0) = q2]), q0, {q1})
(5.4.1)