python 状态机框架_有限状态机(FSM)的简单理解和Python实现

最近在项目中,涉及到对行为和状态进行建模的需求,尝试用有限状态机(Finite-state machine, FSM)来实现。

1. 概念介绍

1.1 运行机制

基于对有限状态机的粗浅理解,大体的运行机制为:

系统所处的状态是明确并且有限的,必定属于状态全集中的某一种;

系统接受输入,根据判定条件,决定是维持当前状态,还是切换到某一个新的状态;

在维持或切换的过程中,执行一些预设的操作。

可以认为有限状态机是一个离散系统,每接受一次输入,进行一次判断和切换。

1.2 所含要素

一个有限状态机包含如下几个要素:

状态:系统所处的状态,在运行过程中又可以分为当前状态和下一阶段状态;

事件:也可以理解为每一次运行的输入;

条件:根据输入事件执行的判定条件,条件是基于状态的,当前所处的每一种状态,都可以有自己对应的一套判定条件,来决定下一步进入哪一种状态;

动作:确定切换路径后,执行的附加操作。

以一个共3种状态的FSM为例,共有3套判定条件,根据当前所处的状态来确定使用哪一种判定条件,共有3*3=9种动作,决定每一种状态切换过程中需要执行的动作。

1.3 分析方法

通常可以用一个表格来对所处理的FSM进行分析,防止情况的遗漏。

你可能感兴趣的:(python,状态机框架)