Структура данных для представления автоматов

В настоящее время я пытаюсь придумать структуру данных, соответствующую потребностям двух алгоритмов обучения автоматов, которые я хотел бы реализовать в Haskell: RPNIи ЭДСМ.

Интуитивно, что-то близкое к тому, что молнии для деревьев были бы идеальными: эти алгоритмы представляют собой алгоритмы слияния состояний, которые сохраняют своего рода фокус (Голубая полоса) на состояниях и, следовательно, выиграют от каких-то застежек-молний для быстрого достижения интересных точек. . Но я немного запутался, потому что DFA (детерминистский конечный автомат) представляет собой скорее графическую структуру, чем древовидную структуру: переходы могут заставить вас вернуться в структуру, что вряд ли сделает застежки-молнии в порядке.

Итак, мой вопрос: как бы вы представили DFA (или, по крайней мере, его переходы), чтобы можно было быстро манипулировать им?

5
задан m09 9 May 2012 в 12:56
поделиться