Cómo resolver el siguiente problema de autómatas finitos

Este es el código GraphViz.

digraph fsm_at_least_two_as_in_five {
rankdir = LR;
tamaño = “11,2”
nodo [forma = doble círculo]; DOS_A abbbb bbbb;
nodo [forma = círculo];

Inicial -> ONE_A [etiqueta = “a”];
Inicial -> b [etiqueta = “b”];

ONE_A -> ab [etiqueta = “b”];
ONE_A -> TWO_A [etiqueta = “a”];

TWO_A -> TWO_A [etiqueta = “a”];
TWO_A -> TWO_A [etiqueta = “b”];

ab -> TWO_A [etiqueta = “a”];
ab -> abb [etiqueta = “b”];

abb -> TWO_A [etiqueta = “a”];
abb -> abbb [etiqueta = “b”];

abbb -> TWO_A [etiqueta = “a”];
abbb -> abbbb [etiqueta = “b”];

b -> ab [etiqueta = “a”];
b -> bb [etiqueta = “b”];

bb -> abb [etiqueta = “a”];
bb -> bbb [etiqueta = “b”];

bbb -> abbb [etiqueta = “a”];
bbb -> bbbb [etiqueta = “b”];

bbbb -> bbbb [etiqueta = “a”];
bbbb -> bbbb [etiqueta = “b”];
}