【自动驾驶决策算法之有限状态机】

本文参考https://blog.csdn.net/AdamShan/article/details/80633099

https://blog.csdn.net/qq_35635374/article/details/121784539

https://blog.csdn.net/williamhyin/article/details/105133783

目录

1 有限状态机的介绍

2 有限状态机基本概念

3 有限状态机举例

4 分层有限状态机

5 局限性


1 有限状态机的介绍

(1)在硬件角度看,状态机由状态寄存器组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移

(2)因为状态机是基于有限的离散状态,所以状态机也称为有限状态机,简写为FSM(Finite State Machine)

(3)有限状态机是一个简单的抽象反应系统,它只针对特定的外界激励产生数量有限的响应

其核心思想是,通过有限的状态描述定义,组合产生大量的复杂的逻辑行为

2 有限状态机基本概念

一个有限状态机通常包括以下几个部分

输入集合:也就是激励集合

输出集合:也就是响应集合,有可能是空集

初始状态集合与结束状态集合:不一定有结束状态集合

转换逻辑:从一个状态转移到另一个状态需要满足一定条件

每个状态机根据是否有输出可以分为两类,接收器(Acceptor)和变换器(Transducer)。其中接收器是指没有输出集合但是有结束状态集合,而变换器则有输出集合没有结束状态集合

根据确定性分类,可进一步区分为确定型(Deterministic)和非确定型(Non-Deterministic)有限状态机。在确定型中,每个状态对每个可能的输入只有精确的一个转移。在非确定型自动机中,给定状态对给定可能输入可以没有或有多于一个转移

3 有限状态机举例

在高速道路行驶场景中,通过简化,我们可以用5个状态来组合表达无人车的所有可能驾驶动作。如下图

4 分层有限状态机

假设有限转态机有N中状态,那么其可能的状态转换就有 N×N 种,假如N很大,就会让状态机的结构又庞大又复杂

  • 可维护性差:当新增或者删除状态时,需要改变所有与之关联的状态,所以对状态机的大幅度的修改很容易出错
  • 可扩展性差:当FSM包含大量状态时,有向图可读性很差,逻辑很容易混乱
  • 复用性差:庞大复杂的有限状态机没有很强的适应性(有点像过拟合)

于是就选择把那些同一类型的状态机作为一个状态机,然后用一个状态机,来维护这些子状态机,由于相似的状态被归类,类和类之间存在转移逻辑,那么类和类之间的状态转移可以通过继承这个转移逻辑来实现,这里的转换继承就像面向对象编程一样

5 局限性

(1)要实现复杂的汽车类脑决策,需要人工设计大量有效的状态,转换逻辑等等;

(2)输入集合不一定完全涵盖现实中的可能时间,状态也是,扩展性有弊端;

(3)如果FSM没有设计死锁保护,车辆可能会陷入某种死锁状态

你可能感兴趣的:(自动驾驶决策算法,自动驾驶,人工智能,算法)