S'il n'y avait qu'une chaîne d'états sans boucle, sauriez-vous quoi faire?
S'il y avait une boucle simple sans cette ramification qui se chevauchait, sauriez-vous quoi faire?
(Si la réponse est «non», pensez d'abord à ces cas.)
Maintenant, l'idée est de transformer progressivement l'automate pour le mettre sous une forme où vous pouvez repérer ces motifs: chaînes, boucles et chemins divergents qui se reconvertissent à la fin (conduisant à l'alternance). À chaque étape de la transformation, veillez à ce que l'automate transformé reconnaisse toujours le même langage.
Gardez à l'esprit qu'il s'agit d'un automate non déterministe. Celui que vous avez publié se révèle être déterministe, mais il ne doit pas rester de cette façon lorsque vous le transformez.
q2q1→fq2→gq3q4q2q5q4→jq5→gq3
q3,q4,q5q3q3(hjg)∗
Prenez soin de vérifier quels états sont finaux. Cela peut aider à ne pas s'inquiéter de cela au début et à faire une grande boucle, puis à dupliquer les parties qui se terminent à mi-chemin de la boucle.
Ce n'est pas nécessairement la technique la plus efficace ou celle qui génère l'expression régulière la plus simple, mais c'est simple.