主要特点
有限状态自动机是具有离散输入和输出的系统的一种数学模型。
其主要特点有以下几个方面:
– (1)系统具有有限个状态,不同的状态代表不同的意义。按照实际的需要,系统可以在不同的状态下完成规定的任务。
– (2)我们可以将输入字符串中出现的字符汇集在一起构成一个字母表。系统处理的所有字符串都是这个字母表上的字符串。
– (3)系统在任何一个状态下,从输入字符串中读入一个字符,根据当前状态和读入的这个字符转到新的状态。
– (4)系统中有一个状态,它是系统的开始状态。
– (5)系统中还有一些状态表示它到目前为止所读入的字符构成的字符串是语言的一个句子。
形式定义
· 定义:有限状态自动机(FA—finite automaton)是一个五元组:
– 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,每个状态也都是最终状态。
三进制每位数有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 (最终结果)
最小化
根据Myhill-Nerode定理,在同构意义下接受一个正则语言的最少状态的确定有限状态自动机是唯一的。同时我们还存在有效的算法(时间开销是O(n^2)的)构造出与给定确定有限状态自动机等价的最小化的确定有限状态自动机。