当前位置:首页 > 芯闻号 > 充电吧
[导读]Atitit  fsm有限状态机概念与最佳实践 目录1. 概念组成与原理成分 11.1. 1、状态机的要素 4个要素,即现态、条件、动作、次态 21.2. 状态表 22. 性状 22.1. 一般一个c

Atitit  fsm有限状态机概念与最佳实践

 

目录

1. 概念组成与原理成分 1

1.1. 1、状态机的要素 4个要素,即现态、条件、动作、次态 2

1.2. 状态表 2

2. 性状 2

2.1. 一般一个class即可 2

2.2. 而言有fsm模式就复杂些了 2

3. 适用场景 主治 适应症 2

3.1. 所有场景(较简单)。 2

4. Bp 最佳实践 用法 2

5. 缺点 不良反应 3

5.1. 有限的应用领域(由 于不可确定性); 3

5.2. 对于大量的 I/O 服务的应用,不容易实现; 3

5.3. 大的程序不便于调试 3

5.4. Fsm是专用自动机,不是通用自动机 3

5.5. 2、 因为其状态有限,当所要描述的系统的状态太多时,可能确定的有限状态机无能为力; 3

5.6. 有限状态机的可扩展性差(或者对比计算机而言是无可编程性) 3

5.7. 3、 有一些任务是有限状态机无法完成的 3

6. 禁忌 不适应场合 4

7. 注意事项 4

8. 相互作用与其他类库模式 5

9. 过量与滥用后果 5

10. 原理 5

11. 理解曲线 5

11.1. 学习曲线最简单的,比起pda,turing   5

12. 储藏 5

13. 包装与api接口 5

14. 执行标准 5

15. 生产组织与个人  attilax 5

16. Ref 5

 

1. 概念组成与原理成分1.1. 1、状态机的要素 4个要素,即现态、条件、动作、次态

状态机可归纳为4个要素,即现态、条件、动作、次态。“现态”和“条件”是因,“动作”和“次态”是果。详解如下:

①现态:是指当前所处的状态。

②条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。

③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。

④次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。

 

1.2. 状态表

我们可以用状态表了表示整个过程,如下图所示。

2. 性状2.1. 一般一个class即可2.2. 而言有fsm模式就复杂些了3. 适用场景 主治 适应症3.1. 所有场景(较简单)。

复杂场景使用pda和turing机

4. Bp 最佳实践 用法

 

5、处理事件输入,实现状态跳转逻辑。 双case

这里有两种写法,一种是在状态中判断事件:一种是事件中判断状态:

 

本人观点:一般业务场景来说,状态的数量是确定的切数目较少,不同状态下需要处理的事件也不一样。而触发的事件数量则比较多,采用上面第二种方式在事件中判断状态也有利于把里面一层的switch/case剥离出来当成单独的函数,做一些代码模块结构的优化,故推荐使用第二种方式,事件中判断状态。

5. 缺点 不良反应5.1. 有限的应用领域(由 于不可确定性);5.2. 对于大量的 I/O 服务的应用,不容易实现;5.3. 大的程序不便于调试5.4. Fsm是专用自动机,不是通用自动机

有限状态机的弱点

1、 每一种有限状态机均功能唯一,即设计好之后无法完成其他原理不同的工作;

5.5. 2、 因为其状态有限,当所要描述的系统的状态太多时,可能确定的有限状态机无能为力;5.6. 有限状态机的可扩展性差(或者对比计算机而言是无可编程性)5.7. 3、 有一些任务是有限状态机无法完成的

,比如它可以判断输入的0、1数列中0或1的个数是否为奇数或偶数,但是无法判断0是否比1多或者相反。

前两个问题表示有限状态机的可扩展性差(或者对比计算机而言是无可编程性),而后者是因为有限状态机状态有限而且不能记下自己需要记录的东西(或者对比图灵机理论是不能写)。

于是我们发现有限状态机不但状态有限,功能也有限(根据计算理论,这是因为它只能接受正则语言,而正则语言是最低级的语言,所以能够解决的问题是有限的)。

事实上,最初的计算“机”(其实更应该说是计算器)都是功能单一的,虽然人们不断地试图在一台机器上集成更多的功能,但是相对于下面要讲到通用计算理论,这些行为还是“盲目”的。

6. 禁忌 不适应场合

 

7. 注意事项



这里需要注意的两个问题:

1、避免把某个“程序动作”当作是一种“状态”来处理。那么如何区分“动作”和“状态”?“动作”是不稳定的,即使没有条件的触发,“动作”一旦执行完毕就结束了;而“状态”是相对稳定的,如果没有外部条件的触发,一个状态会一直持续下去。

2、状态划分时漏掉一些状态,导致跳转逻辑不完整。

所以维护上述一张状态表就非常必要,而且有意义了。从表中可以直观看出那些状态直接存在跳转路径,那些状态直接不存在。如果不存在,就把对应的单元格置灰。 每次写代码之前先把表格填写好,并且对置灰的部分重点review,看看是否有“漏态”,然后才是写代码。QA拿到这张表格之后,写测试用例也是手到擒来。

8. 相互作用与其他类库模式9. 过量与滥用后果10. 原理11. 理解曲线11.1. 学习曲线最简单的,比起pda,turing

12. 储藏 13. 包装与api接口14. 执行标准15. 生产组织与个人  attilax

 

16. Ref

Atiitt fsm有限状态机优缺点

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭