有限状态机

✍ dations ◷ 2025-11-30 23:01:44 #自动机,编译原理,数字电子

有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机(英语:finite-state automation,缩写:FSA),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。

状态存储关于过去的信息,就是说:它反映从系统开始到现在时刻的输入变化。转移指示状态变更,并且用必须满足确使转移发生的条件来描述它。动作是在给定时刻要进行的活动的描述。有多种类型的动作:

FSM(有限状态机)可以使用上面图1那样的状态图(或状态转移图)来表示。此外可以使用多种类型的状态转移表。下面展示最常见的表示:当前状态(B)和条件(Y)的组合指示出下一个状态(C)。完整的动作信息可以只使用脚注来增加。包括完整动作信息的FSM定义可以使用状态表。

除了建模这里介绍的反应系统之外,有限状态自动机在很多不同领域中是重要的,包括电子工程、语言学、计算机科学、哲学、生物学、数学和逻辑学。有限状态机是在自动机理论和计算理论中研究的一类自动机。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。

有两个不同的群组:接受器/识别器和变换器。

接受器和识别器(也叫做序列检测器)产生一个二元输出,说要么“是”要么“否”来回答输入是否被机器接受。所有FSM的状态被称为要么接受要么不接受。在所有输入都被处理了的时候,如果当前状态是接受状态,输入被接受,否则被拒绝。作为规则,输入是符号(字符);动作不使用。图2中的例子展示了接受单词"nice"的有限状态自动机,在这个FSM中唯一的接受状态是状态7。

机器还可以被描述为定义了一个语言,它包含了这个机器所接受而非拒绝的所有字词;我们称这个语言被这个机器接受。通过定义,FSM接受的语言是正则语言 - 就是说,如果一个语言被某个FSM接受,那么它是正则的(cf. Kleene的定理)。

开始状态通常用“没有起点的箭头”指向它来表示

接受状态(或称最终状态)是一个机器回报到目前为止,输入字符串属于它所接受的内容之状态。状态图中通常将其标示为双圆圈。
开始状态也可以是接受状态,此情况下自动机会接受空串。如果开始状态不是接受状态,且没有可以连到任何接受状态的箭头,那么此自动机就不会“接受”任何输入。
一个接受状态的例子如图3:一台判断输入二进位字符串是否含有偶数个0的 确定有限自动机(DFA)。
1 代表着已经输入了偶数个0,因此1 即为接受状态(同时亦为开始状态)。若输入含有偶数个0(包含没有0的字符串),则此机器会以接受状态来结束。
被这台DFA接受的字符串,举例来说是ε(空串), 1, 11, 11…, 00, 010, 1010, 10110…等等。

变换器使用动作基于给定输入和/或状态生成输出。它们用于控制应用。常分为两种类型:

只使用进入动作的FSM,就是说输出只依赖于状态。Moore模型的好处是行为的简单性。图1的例子展示了一个电梯门的Moore FSM。这个状态机识别两个命令:“command_open”和“command_close”触发状态变更。在状态“Opening”中的进入动作 (E:)开启电机开门,在状态“Closing”中的进入动作以反方向开启电机关门。状态“Opened”和“Closed”不进行任何动作。它们信号通知外部世界(比如其他状态机)情况:“门开着”或“门关着”。

只使用输入动作的FSM,就是说输出依赖于输入和状态。Mealy FSM的使用经常导致状态数目的简约。在图4中的例子展示了实现同上面Moore机同样行为的Mealy FSM(行为依赖于实现的FSM执行模型,比如对虚拟FSM可工作但对事件驱动FSM不行)。有两个输入动作(I:):“开启电机关门如果command_close下达”和“反向开启电机开门如果command_open下达”。

在实践中经常使用混合模型。

进一步可区分为确定型(DFA)和非确定型(NDFA、GNFA)自动机。在确定型自动机中,每个状态对每个可能输入只有精确的一个转移。在非确定型自动机中,给定状态对给定可能输入可以没有或有多于一个转移。这个区分在实践而非理论中更有用,因为存在算法把任何NDFA转换成等价的DFA,尽管这种转换一般会增加自动机的复杂性。

只有一个状态的FSM叫做组合FSM并只使用输入动作。这个概念在多个FSM要一起工作的情况下是有用的,这时把纯组合部分看作一种形式的FSM来适合设计工具可能是方便的。

FSM的下一个状态和输出是由输入和当前状态决定的。FSM逻辑在图5中展示。

依据类型不同有多种定义。接受器有限状态机是五元组 ( Σ , S , s 0 , δ , F ) {\displaystyle (\Sigma ,S,s_{0},\delta ,F)} ,这里的:

变换器有限状态自动机是六元组 ( Σ , Γ , S , s 0 , δ , ω ) {\displaystyle (\Sigma ,\Gamma ,S,s_{0},\delta ,\omega )} ,这里的:

如果输出函数是状态和输入字母表的函数( ω : S × Σ Γ {\displaystyle \omega :S\times \Sigma \rightarrow \Gamma } ),则定义对应于Mealy模型,它可以建模为Mealy机。如果输出函数只依赖于状态 ( ω : S Γ {\displaystyle \omega :S\rightarrow \Gamma } ),则定义对应于Moore模型,它可建模为Moore机。根本没有输出函数的有限状态机叫做半自动机或转移系统。

优化一个FSM意味着缩减状态机的状态数目,同时保证状态机能实现同样功能。一种可能是使用真值表或Moore简约过程。另一种可能是无环FSA的自底向上算法。

在数字电路中,FSM可以用可编程逻辑设备、可编程逻辑控制器、逻辑门和触发器或继电器来建造。更明确的说,硬件实现要求寄存器来存储状态变量,确定状态转移的一块组合逻辑,和确定FSM输出的另一块组合逻辑。一类经典硬件实现是Richards 控制器。

下列概念经常用来建造有有限状态机的软件应用:


相关

  • 氦核作用氦核作用 (或α作用、α反应)是两种核聚变的类型之一,能将恒星的氦转换成重元素,另一种即是3氦过程(3α反应)。 当3氦反应进行时只需要氦的参与,而一旦有一些碳产生,能消耗氦的其他
  • 阴道镜阴道镜,一种医用内窥镜,用于女性阴道、子宫颈以及外阴的医学诊断观察。阴道镜于1925年由德国医师汉斯·欣塞尔曼(Hans Hinselmann)发明。亦有一种特制的阴道镜用于强奸案的证据
  • 伊朗石油伊朗石油,1908年英国人威廉·克诺斯·德奇(英语:William Knox D'Arcy)在波斯(今伊朗)马斯吉德苏莱曼地区发现特大油田,并成立英波石油公司The Anglo-Persian Oil Company (APOC)进
  • 泰德·克鲁斯拉斐尔·爱德华·“特德”·克鲁兹(英语:Rafael Edward "Ted" Cruz,1970年12月22日-),美国重量级政治人物,生于加拿大,毕业于哈佛法学院,现任得州联邦参议员、科学与太空委员会主席,曾
  • 婺城区婺城区是中国浙江省金华市下辖的一个区。面积1388平方千米,人口76.17万人。邮政编码321000。区人民政府驻宾虹西路2666号。民间通常将婺城区与金东区合称为“金华”。春秋时
  • 上海鲁迅故居上海鲁迅故居位于今上海市虹口区山阴路132弄9号(原大陆新村1弄9号)一栋三层楼房。第一层是鲁迅的会客室和餐室,第二层为鲁迅书房,鲁迅夫妇卧室,客房,第三层为儿子周海婴的卧室。19
  • 扩散性思考扩散性思考(Divergent thinking)是一种思考的过程及方法,透过讨论许多可能的处理方式,可以得到有创意的概念。扩散性思考一般是以自发性、非线性思维的方式进行,因此许多的概念可
  • 隔板珊瑚隔板珊瑚(学名:)是一属已灭绝的珊瑚,生存于中新世至更新世。生活在温暖浅海的礁石上。其群体为不规则瘤状体,有时形成枝,枝上有众多的珊瑚单体(珊瑚虫)。珊瑚单体间连接十分紧密,多
  • 伊藤沙莉伊藤沙莉(1994年5月4日-),日本女演员,千叶县出身。经纪公司为ALPHA AGENCY(日语:アルファエージェンシー)。伊藤首部参演的作品是《14个月~回到小孩的妻子~》。虽当时只有9岁,但此女研
  • 访问令牌 (Windows)访问令牌(Access Token)是Windows操作系统用于描述进程或线程安全上下文的一种对象。系统使用访问令牌来辨识拥有进程的用户,以及线程试图执行系统任务时是否具有所需的特权。