FSM

概念

FSM, Finite State Machine 有限状态机,是一种数学计算模型,在任意给定的时刻只会存在在给定的有限状态中的一个。FSM 会在特定的外部输入条件下发生从一个状态到另一状态的改变,这个过程叫状态转移(transition)。

一个 FSM 由以下部分构成:

  • 状态表(a list of its states)
  • 初始状态(Initial state)
  • 每个转移的条件(the conditions for each transition)

另外,在自动机理论中,FSM 也叫做 DFA(Deterministic Finite Automaton, 确定性有限自动机),与 NFA(Nondeterministic Finite Automaton, 非确定性有限自动机)相对。DFA 的特点是:

  • 每个状态转移由当前状态和输入唯一确定;
  • 每次状态转移都要读取输入。

FSM 分为两种,一种是 Mealy FSM,一种是 More FSM。

Mealy FSM 下,下个状态由当前状态和输入决定,输出也是由当前状态和输入决定;而 More FSM 下,下个状态由当前状态和输入决定,但输出仅由当前状态决定,跟输入无关。

描述

状态转移表(State Transition Table)

当前状态→
条件↓
状态A 状态B 状态C
条件X
条件Y 状态C
条件Z

状态转移表描述了当某个状态下触发某个条件会达到什么状态。下面以投币式旋转门为例:

当前状态→
条件↓
锁定 解锁
推动旋转杠 锁定 锁定
投币 解锁 解锁

UML 状态机(UML State Machines)

使用 UML 语言在 draw.io 上绘制上述的投币式旋转门的状态图如下:

参考

posted @ 2019-08-11 10:52  東籬老農  阅读(642)  评论(0编辑  收藏  举报