
有限状态自动机(FSM "finite state machine" 或者FSA "finite state automaton" )是为研来自究有限内存的致呢最计算过程和某些语言类而抽象出的一种计算模型。有限状态自动机拥有有限数量的状态,每个状态可以迁移到零个或多属看重棉认个状态,输入字串决定执行哪个状态的迁移。有限状态自动机可以表示为一个有向图。有限状态自动机是自动机理论的研究对象。
- 中文名 有限状态自动机
- 外文名 finite state machine
- 研究对象 自动机理论
- 识别语言 正规语言
主要特点
有限状态自动机是具有离散输入和输出的系统的一种数学模型。
其主要特点有以下几个方面:
– (1)系统具有有限个状态,不同的状态代表不同的意义。按照实际的需要,系统可以在不同的状态下完成规定的任务。
– 独列讲(2)我们可以将输入字符串中出现的字符汇集在一起构成一个字母表。系统处理的所有字符串都是这个字母表上的字符串。
– (3)系统在任何一个状态下,从输圆武好形垂入字符串中读入一个字符,来自根据当前状态和读入的这个字符转到新的状态。
360百科 – (4)系统中有一个罪贵时类著状态,它是系统的开准罗夜始状态。
– (5)系统中还有一些状态表示它到目前为止所读入的字符构成的字符串是语言的一个句子。
形式定义
· 定义:有限状态自动机(FA-finite automa皇助团济致破界总行正ton)是一个五元组:
– M=(Q, 确象病束西红皮危著Σ, δ, q0, F)
样很 · 其中,
– Q--状态的非空有穷集合。∀q∈Q,q称为M的一个状态。
– Σ--输入字母表。
– δ--状态转移函数,有时又叫作状态转换函数或者移动函数,δ:Q×副或似合Σ→Q,δ(q,a)=p。
– q0--M的开始状态,也可叫作初始状态或启动状态。q0∈Q。
– F--M的终止状态集合。F被Q包含。任给q∈F,q称为M的终止状态。
类型
有多种类型的有限状态自动机:接受器判断是否接受输入;转换器对给定输入产生一个输出。常见的转换器有 Moore 机 逐波标具与 Mealy 机。Moore 机对每一个状态都附加有输出动作,Mealy 不时机对每一个转移都附加有输出动作。
有限状态自动机还可以分成确定与非确定两种。非确定有限状态自动机可以转化为确定有限状态自动机。
有限状态自动机识句企阶奏胶别的语言是正规语言。
有限状态自动机除了它在理论上的价值,还在数字电路设计、词法分析、文本编辑器程序等领域得到了应用。
自动机接受的所有字串构成了自动机识别的语言 L(M)。
非确定聚井座掉步调有限状态自动机
一个非确定有限状态自动机(NFA "Non-deterministic finite automaton")M 是由下述元素构成的五元组 (Q,Σ,δ,q0,F)
有穷状态集合 Q ;
财养销读 有穷输入字母表 Σ;
转移函数 δ: Q × Σ -> 2Q;
初始状态 q0;
终结状态集合 F,F 包含于 Q 。
自动机从初始状态 q0 起,逐一读入输入串(由输入字母表 Σ 的字母构成)的每一个字母,根据当前状态、输入字母和转移函数 δ 决定自动机的下一步状态;如果输入串结束时,自动机处于终结状态集合 F 的某一个状态,这表示自动机接受该字串;否则自动机不接受该字串。
非确定有限状态续种衣处阳派入卫的逐自动机与确定有限状态非班几足自动机的唯一区别是采核洲划术波它们的转移函数不同。确定有限状态自动机对每一个可能的输入只有一个状态的转移。非确定有限状态自动机对每一个可能的输入可以有多个状态转移,接受到输入时从这多个状态转移中非确定地选择一个。
自动孙评机接受的所有字串构成了自动机识别的语言 L(M)色。
计算能力
确定有限状态自动机与非确定有限状态自动机识别的语言都普孩河弱较待印作罗争这是正则语言。由于正则语言的良好性质,许多为其他自动机(下推自动机或图灵机)富期不能判定的问题,在有限状态自动机的情形下,都可以得到判定,并且存在有效的算法。
对一个确定有限状态自动机,下述判定问题都可以判定,并且存在有效的算法牛初微节出承半。
该自动机识别的语言是否为空集。
该自动机识别的语言是否为有限集。
该自动机是否与另一个确定有限状态自动机识别来自同一个的语言。
例如:有限状片余态自动机:输入串为3进制数云同染划船,输出为模5的余数(0,1,2,3,4)
模5的余数总共只有5个儿美坐注修脸系步衣,这就是5个状态。初始状态为0,每个状态也都是最终状态。
360百科 三进制每位数有3种可能,因普吸视终种而足每金石此每种状态有3种跃迁可能。
把3进制串理解成从高位到低位一个一个输入,每条输入就是一次跃迁,状态就是到当前输入为止的3进制数模5的余数。
跃迁的函数如下:
目标状态 = (当前状态 *进制数(此题为3) + 串的当前位)% 5。
举例如下:
三项高夜节量火进制数 12112
当前状态 输入 跃迁
0(start) 1 (0*3+1) % 5 = 1
1 元六红争2 (1*3+2) % 5 = 0
0 1 (0*3+1) % 5 = 1
1 1 (1*3+1) % 5 = 4
4 2 (4*3良阳染清+2) % 5 = 4 (最终结果)
</CA>
最小化
根据 Myhill-Nerode 定理,在同构意义下接受一个正则语言的最少状态的确定有限状态自动机是唯一的。同时我们还存在有效的算法(时间开销是O(n^2)的)构造出与给定确定有限状态自动机等价的最小化的确定有限状态自动机。