状态机

状态机是一种用于设计算法的数学抽象。状态机读取一组输入并根据这些输入更改为不同的状态。

状态是对等待执行转换的系统状态的描述。转换是在满足条件或收到事件时执行的一组操作。在状态图中,圆圈表示每个可能的状态,箭头表示状态之间的转换。

查看最终状态,您可以了解导致该状态的一系列输入。

有两种类型的基本状态机

确定性有限状态机

这种状态机只允许在任何允许的输入情况下进行一次可能的转换。这就像“if” 语句 中的 if x then doThis else doThat 不可能。计算机必须执行其中一个选项。

非确定性有限状态机

给定某个状态,输入可以导致多个不同的状态。

图 1:确定性有限状态机。

The machine transitions from state 1 to state 2 for input X and from state 1 to state 3 for input Y

图 1中,状态从状态 1 开始;给定输入 'X',状态更改为状态 2,或者给定输入 'Y',状态更改为状态 3。

图 2:非确定性有限状态机。

The machine may remain in state 1, transitioning to itself, or may transition from state 1 to state 2 for input X

图 2中,给定输入 'X',状态可以保持不变或更改为状态 2。

请注意,任何 正则表达式 都可以用状态机表示。

另请参阅