Reachable States 

> nfa1:=mkNFA({q0,q1,q2,q3,q4},{a,b},table([(q0,a)={q3},(q1,a)={q2},(q2,a)={q3,q4},(q3,b)={q2,q4}]),q0,{q4}):
nfa2:=reachableNFA(nfa1):
transitionGraph(nfa1);
transitionGraph(nfa2);
 

Plot_2d
 

Plot_2d
 

> nfa1:=randomNFA(6,3,2):
nfa2:=reachableNFA(nfa1):
while nops(op(op(nfa2)[3]))<=0 do
nfa1:=randomNFA(6,3,2):
nfa2:=reachableNFA(nfa1):
od:
(transitionGraph(nfa1));
(transitionGraph(nfa2));
 

Plot_2d
 

Plot_2d