赞
踩
欢迎大家关注我的B站:
偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com)
本文参考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)因为状态机是基于有限的离散状态,所以状态机也称为有限状态机,简写为FSM(Finite State Machine)
(3)有限状态机是一个简单的抽象反应系统,它只针对特定的外界激励产生数量有限的响应
其核心思想是,通过有限的状态描述定义,组合产生大量的复杂的逻辑行为
一个有限状态机通常包括以下几个部分
输入集合:也就是激励集合
输出集合:也就是响应集合,有可能是空集
初始状态集合与结束状态集合:不一定有结束状态集合
转换逻辑:从一个状态转移到另一个状态需要满足一定条件
每个状态机根据是否有输出可以分为两类,接收器(Acceptor)和变换器(Transducer)。其中接收器是指没有输出集合但是有结束状态集合,而变换器则有输出集合没有结束状态集合
根据确定性分类,可进一步区分为确定型(Deterministic)和非确定型(Non-Deterministic)有限状态机。在确定型中,每个状态对每个可能的输入只有精确的一个转移。在非确定型自动机中,给定状态对给定可能输入可以没有或有多于一个转移
在高速道路行驶场景中,通过简化,我们可以用5个状态来组合表达无人车的所有可能驾驶动作。如下图
假设有限转态机有N中状态,那么其可能的状态转换就有 N×N 种,假如N很大,就会让状态机的结构又庞大又复杂
于是就选择把那些同一类型的状态机作为一个状态机,然后用一个状态机,来维护这些子状态机,由于相似的状态被归类,类和类之间存在转移逻辑,那么类和类之间的状态转移可以通过继承这个转移逻辑来实现,这里的转换继承就像面向对象编程一样
(1)要实现复杂的汽车类脑决策,需要人工设计大量有效的状态,转换逻辑等等;
(2)输入集合不一定完全涵盖现实中的可能时间,状态也是,扩展性有弊端;
(3)如果FSM没有设计死锁保护,车辆可能会陷入某种死锁状态
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。