如何将有限状态机编码为二进制字符串?

How to encode finite state machine as a binary string?

如何将有限状态机编码/解码为二进制字符串?

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

为了表示 FSM,状态图可以用 DOT 格式编码: https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29

要在硬件中实现 FSM,硬件描述语言是合适的工具: https://www.microsemi.com/document-portal/doc_view/130043-state-machine-an

要在软件中实现 FSM,可以通过一两次查找 table 来捕获机器。

对于 Mealy 机器,一个 LUT 就足够了,其中输出是用状态转换定义的:每个(状态,输入)组合将索引到一个(状态,输出)元组。

Moore 机器 - 输出由状​​态决定 - 需要第二次查找:上面的 table 将只产生状态,第二个 table 将该状态映射到它的输出.

一旦这些 table 以您选择的格式表示,比如 JSON,那么序列化应该很容易。