Se ci fosse solo una catena di stati senza loop, sapresti cosa fare?
Se ci fosse un semplice ciclo senza questa ramificazione sovrapposta, sapresti cosa fare?
(Se la risposta è "no", pensa prima a questi casi.)
Ora, l'idea è quella di trasformare progressivamente l'automa per metterlo in una forma in cui è possibile individuare quei modelli: catene, anelli e percorsi divergenti che si riconciliano alla fine (portando all'alternanza). Ad ogni passo della trasformazione, assicurati che l'automa trasformato riconosca ancora la stessa lingua.
Tieni presente che si tratta di un automa non deterministico. Quello che hai pubblicato sembra essere deterministico, ma non deve rimanere così quando lo trasformi.
q2q1→fq2→gq3q4q2q5q4→jq5→gq3
q3, q4, q5q3q3( h j g)*
Fai attenzione a verificare quali stati sono definitivi. All'inizio può essere utile non preoccuparsi di questo e creare un ciclo grande, quindi duplicare le parti che terminano a metà del ciclo.
Questa non è necessariamente la tecnica più efficiente o quella che genera l'espressione regolare più semplice, ma è semplice.