Wenn es nur eine Kette von Staaten ohne Schleife gäbe, würden Sie wissen, was zu tun ist?
Wenn es eine einfache Schleife ohne diese überlappende Verzweigung gäbe, würden Sie wissen, was zu tun ist?
(Wenn die Antwort "Nein" lautet, denken Sie zuerst an diese Fälle.)
Die Idee ist nun, den Automaten schrittweise zu transformieren, um ihn in eine Form zu bringen, in der Sie diese Muster erkennen können: Ketten, Schleifen und divergierende Pfade, die am Ende wieder zusammenlaufen (was zu einem Wechsel führt). Achten Sie bei jedem Schritt der Transformation darauf, dass der transformierte Automat immer noch dieselbe Sprache erkennt.
Beachten Sie, dass dies ein nicht deterministischer Automat ist. Das, was Sie gepostet haben, ist zwar deterministisch, muss aber bei der Transformation nicht so bleiben.
q2q1→fq2→gq3q4q2q5q4→jq5→gq3
q3,q4,q5q3q3(hjg)∗
Achten Sie darauf, zu überprüfen, welche Zustände endgültig sind. Es kann hilfreich sein, sich zuerst keine Sorgen zu machen und eine große Schleife zu erstellen und dann Teile zu duplizieren, die auf halbem Weg durch die Schleife enden.
Dies ist nicht unbedingt die effizienteste Technik oder diejenige, die den einfachsten regulären Ausdruck erzeugt, aber es ist einfach.