中易网

什么是状态机?

答案:1  悬赏:80  
解决时间 2021-10-16 18:12
什么是状态机?
最佳答案
关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态, 状态机停止。
 包含一组状态集(states)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transition function)的计算模型。当输入符号串,模型随即进入起始状态。它要改变到新的状态,依赖于转换函数。在有限状态机中,会有有许多变量,例如,状态 机有很多与动作(actions)转换(Mealy机)或状态(摩尔机)关联的动作,多重起始状态,基于没有输入符号的转换,或者指定符号和状态(非定有 限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态,等等。
 传统应用程序的控制流程基本是顺序的:遵循事先设定的逻辑,从头到尾地执行。很少有事件能改变标准执行流程;而且这些事件主要涉及异常情况。“命令行实用程序”是这种传统应用程序的典型例子。
 另一类应用程序由外部发生的事件来驱动——换言之,事件在应用程序之外生成,无法由应用程序或程序员来控制。具体需要执行的代码取决于接收到的事件,或者它 相对于其他事件的抵达时间。所以,控制流程既不能是顺序的,也不能是事先设定好的,因为它要依赖于外部事件。事件驱动的GUI应用程序是这种应用程序的典 型例子,它们由命令和选择(也就是用户造成的事件)来驱动。
 Web应用程序由提交的表单和用户请求的网页来驱动,它们也可划归到上述类 别。但是,GUI应用程序对于接收到的事件仍有一定程度的控制,因为这些事件要依赖于向用户显示的窗口和控件,而窗口和控件是由程序员控制的。Web应用 程序则不然,因为一旦用户采取不在预料之中的操作(比如使用浏览器的历史记录、手工输入链接以及模拟一次表单提交等等),就很容易打乱设计好的应用程序逻辑。
 显然,必须采取不同的技术来处理这些情况。它能处理任何顺序的事件,并能提供有意义的响应——即使这些事件发生的顺序和预计的不同。有限状态机正是为了满足这方面的要求而设计的。
 有限状态机是一种概念性机器,它能采取某种操作来响应一个外部事件。具体采取的操作不仅能取决于接收到的事件,还能取决于各个事件的相对发生顺序。之所以能 做到这一点,是因为机器能跟踪一个内部状态,它会在收到事件后进行更新。为一个事件而响应的行动不仅取决于事件本身,还取决于机器的内部状态。另外,采取 的行动还会决定并更新机器的状态。这样一来,任何逻辑都可建模成一系列事件/状态组合。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
联想一般多长时间发货?怎么查货到哪了?
2013开奶茶店利润前景怎么样 详细??
50天的宝宝拉肚子怎么办?
青浦有丰田4S店吗
男生剪齐刘海头发要多长
星级酒店装修设计有哪些问题需要避免
请问日本最好的跑车是什么牌子啊
郑州洛阳关林塑料制品批发市场的地址?
一'嗨租车电动汽车租赁怎么样?
请问有什么手机名片设计软件啊?
滨州华日家具专卖店在什么位置?
中国邮政速递物流(人民路)(人民路北100米中国
大自然地板和大自然木门是同一家公司的吗?
找广州声乐老师
喝茶喝咖啡拉肚子,什么原因,怎么办,喜欢喝
推荐资讯
我的女儿1岁了,整天哭闹不吃,生长发育迟缓
CIGS薄膜太阳能电池会是下一代领跑者吗?
亳州工业园区电子厂有招人的吗?急
平谷线燕郊站在哪
安睡宝怎么样
十二地支生克有谁了解?
去右玉县几点有车?
我们班都是1999年和2000年的,现在才六年级。
临沂物流/临沂货运/临沂专线/德
怎样加盟特步?
我刚换的驾照,大连通达驾校门口花钱找人办理
如何预防麦粒肿
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?