有限状态机与状态机有什么不同 (有限状态机与专家系统)
本文目录导航:
有限状态机与状态机有什么不同?
主要区别是,性质不同、表示为状态图不同、输入反应不同、使用安全性不同,具体如下:

一、性质不同
1、摩尔型有限状态机
在计算理论中,摩尔机器有限状态机,其输出值仅由其当前状态确定。
2、米利型有限状态机
在计算理论中,米利型有限状态机是基于它的当前状态和输入生成输出的有限状态自动机(更精确的叫有限状态变换器)。
这意味着它的状态图将为每个转移边包括输入和输出二者。
二、表示为状态图不同
1、摩尔型有限状态机
每个节点(状态)都标有输出值。
2、米利型有限状态机
每个弧(过渡)都标有输出值。
三、输入反应不同
1、摩尔型有限状态机
可能需要更多逻辑来将状态解码为输出 , 在时钟边沿之后更多的门延迟。
2、米利型有限状态机
机器对输入的反应更快,在相同的周期内反应 ,不需要等待时钟。
四、使用安全性不同
1、摩尔型有限状态机
摩尔机器使用更安全,输出在时钟边沿变化(总是在一个周期后)。
2、米利型有限状态机
输入更改可能会在逻辑完成后立即导致输出更改,当两台机器互连时出现大问题,如果不小心,可能会发生异步反馈。
状态机两种写法
有限状态机(FSM)在硬件电路设计和软件处理中都扮演着重要角色,尤其在软件中,它被称为有限消息机(FMM)。
FSM通过将复杂的逻辑分解为有限个稳定状态,实现了从连续处理到离散数字处理的转变,这符合计算机的工作原理。
尽管它基于有限状态,但在实际应用中,它可以处理无穷的事务,形成闭环系统。
有限状态机的工作原理如图1所示:当事件(event)发生时,根据当前状态(cur_state),决定执行(action)并设置下一个状态(nxt_state)。
例如,图2是一个简单的状态机实例,它展示了状态转移的过程:在状态s0中,如果遇到e0,执行a0并保持状态;e1导致状态转移至s1,执行a1;同样,e2则执行a2并转移到s2。
有限状态机的表示方法多样,既可以使用状态转移图,也可以用二维表格,如表1所示。
在C代码实现上,有两种主要的写法。
第一种是“竖着写”(在状态中判断事件),如示例中的switch语句,逐个检查当前状态下的事件。
另一种是“横着写”(在事件中判断状态),通过为每个事件编写独立的函数,这些函数会根据接收到的当前状态来决定下一步操作。
状态机的概念与设计
状态机的基本结构及类型有限状态机(Finite State Machine,FSM)由三部分构成:状态触发器、状态数以及公共时钟脉冲源。
FSM中的状态数有限,且状态的转换在同一个时钟源的同一脉冲边沿同步进行,因此被称为时钟同步状态机。
状态机的基本操作主要分为两类:米利型(Mealy)状态机和穆尔型(Moore)状态机。
米利型状态机的输出信号与电路的输入信号有关,而穆尔型状态机的输出仅依赖于当前状态,与输入信号无关。
状态机的状态图表示法状态图使用圆圈表示状态,圆圈内的符号指示状态。
带箭头的方向线表示状态转换,当箭头的起点和终点在同一圆圈上时,表示状态不变。
状态转换有两种方式:无条件转移和有条件转移。
无条件转移直接从一个状态转移到另一个状态,而有条件转移则需要满足特定条件。
米利型状态图示例展示了状态机的输出不仅取决于当前状态,还受到输入信号的影响。
而穆尔型状态图则将输出变量写在状态圆圈内部,直观表示输出只依赖于当前状态。
状态机的设计步骤设计状态机的步骤包括:分析需求、定义状态、确定转换规则、设计状态转移图等。
第3步,即设计状态图,是整个设计过程中的关键步骤。
状态图清晰地反映了状态机各个状态之间的转换关系和条件。
如果状态数量较多,可以使用状态表表示转换条件。
对于输出信号较多的情况,可以采用输出逻辑真值表进行描述。