Якби був просто ланцюжок держав, що не мають циклу, ти би знав, що робити?
Якби була проста петля без цього перекриття розгалуження, ви б знали, що робити?
(Якщо відповідь "ні", спочатку подумайте про ці випадки.)
Тепер ідея полягає в тому, щоб перетворити автомат поступово, щоб помістити його у форму, де ви зможете помітити ті візерунки: ланцюги, петлі та розбіжні шляхи, які в кінцевому підсумку перетворюються (ведуть до чергування). На кожному кроці перетворення слідкуйте за тим, щоб трансформований автомат все-таки розпізнавав ту саму мову.
Майте на увазі , що це НЕ -deterministic автомат. Та, яку ви опублікували, буває детермінованою, але вона не повинна залишатися такою, коли ви її трансформуєте.
q2q1→fq2→gq3q4q2q5q4→jq5→gq3
q3,q4,q5q3q3(hjg)∗
Не забудьте перевірити, які стани є остаточними. Це може допомогти спочатку не хвилюватися з цього приводу і зробити одну велику петлю, а потім дублювати частини, які закінчуються через петлю.
Це не обов'язково найефективніший прийом або той, який генерує найпростіший регулярний вираз, але він простий.