Как закодировать конечный автомат как двоичную строку? - PullRequest
1 голос
/ 13 июля 2020

Как кодировать / декодировать конечные автоматы как двоичные строки?

F: [0,1,00,01,...] -> [fsm1, fsm2,...], |fsm1|=<|fsm2|
Decode: Binary string -> FSM

1 Ответ

1 голос
/ 15 июля 2020

Для представления конечного автомата диаграммы состояний могут быть закодированы в формате DOT: https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29

Для реализации конечного автомата на аппаратном уровне подходящим инструментом является язык описания оборудования: https://www.microsemi.com/document-portal/doc_view/130043-state-machine-an

Для реализации конечного автомата в программном обеспечении машина может быть захвачена с помощью одной или двух справочных таблиц.

Одной LUT будет достаточно для машин Мили, где выходы определяются переходами состояний: каждая комбинация (состояние, вход) будет индексировать кортеж (состояние, выход).

Машины Мура - где выходы определяются по состоянию - потребуют второго поиска: Приведенная выше таблица даст только состояние, со второй таблицей, отображающей это состояние на его вывод.

После того, как эти таблицы будут представлены в выбранном вами формате, например JSON, сериализация должна быть простой.

...