




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、形式语言与自动机理论形式语言与自动机理论Formal Languages and Automata Theory蒋宗礼蒋宗礼课程目的和基本要求课程目的和基本要求 课程性质课程性质技术基础技术基础 基础知识要求基础知识要求 数学分析(或者高等数学),离散数学数学分析(或者高等数学),离散数学 主要特点主要特点 抽象和形式化抽象和形式化 理论证明和构造性理论证明和构造性 基本模型的建立与性质基本模型的建立与性质 课程目的和基本要求课程目的和基本要求 本专业人员本专业人员4 4种基本的专业能力种基本的专业能力计算思维能力计算思维能力算法的设计与分析能力算法的设计与分析能力程序设计和实现能力程序设计和
2、实现能力计算机软硬件系统的认知、分析、设计与应用能力计算机软硬件系统的认知、分析、设计与应用能力 计算思维能力计算思维能力逻辑思维能力和抽象思维能力逻辑思维能力和抽象思维能力构造模型对问题进行形式化描述构造模型对问题进行形式化描述理解和处理形式模型理解和处理形式模型课程目的和基本要求课程目的和基本要求 知识知识掌握正则语言、下文无关语言的文法、识别模掌握正则语言、下文无关语言的文法、识别模型及其基本性质、图灵机的基本知识。型及其基本性质、图灵机的基本知识。 能力能力培养学生的形式化描述和抽象思维能力。培养学生的形式化描述和抽象思维能力。使学生了解和初步掌握使学生了解和初步掌握“问题、形式化描述
3、、问题、形式化描述、自动化(计算机化)自动化(计算机化)”这一最典型的计算机问这一最典型的计算机问题求解思路。题求解思路。 主要内容主要内容 语言的语言的文法文法描述。描述。 RL RG、 FA、RE、RL的性质的性质 。 CFL CFG(CNF、GNF)、PDA、CFL的性质。的性质。 TM 基本基本TM、构造技术、构造技术、TM的修改。的修改。 CSL CSG、LBA。教材及主要参考书目教材及主要参考书目1.1.蒋宗礼,姜守旭蒋宗礼,姜守旭. 形式语言与自动机理论形式语言与自动机理论. 北京:北京:清华大学出版社,清华大学出版社,2003年年 2. John E Hopcroft, Raj
4、eev Motwani, Jeffrey D Ullman. Introduction to Automata Theory, Languages, and Computation (2nd Edition). Addison-Wesley Publishing Company, 2001 3. John E Hopcroft, Jeffrey D Ullman. Introduction to Automata Theory, Languages, and Computation. Addison-Wesley Publishing Company, 1979第第3章章 有穷状态自动机有穷状
5、态自动机 主要内容主要内容 确定的有穷状态自动机确定的有穷状态自动机(DFA) 作为对实际问题的抽象、直观物理模型、形式作为对实际问题的抽象、直观物理模型、形式定义,定义,DFA接受的句子、语言,状态转移图。接受的句子、语言,状态转移图。 不确定的有穷状态自动机不确定的有穷状态自动机(NFA) 定义;定义; NFA与与DFA的等价性;的等价性;第第3章章 有穷状态自动机有穷状态自动机 带空移动的有穷状态自动机带空移动的有穷状态自动机(-NFA) 定义。定义。 -NFA与与DFA的等价性。的等价性。 FA是正则语言的识别器是正则语言的识别器 正则文法正则文法(RG)与与FA的等价性。的等价性。
6、相互转换方法。相互转换方法。 带输出的有穷状态自动机。带输出的有穷状态自动机。 双向有穷状态自动机。双向有穷状态自动机。第第3章章 有穷状态自动机有穷状态自动机 重点:重点:DFA的概念,的概念,DFA、NFA、-NFA 、RG之间的等价转换思路与方法。之间的等价转换思路与方法。 难点:对难点:对DFA概念的理解,概念的理解,DFA、RG的构的构造方法,造方法, RG与与FA的等价性证明。的等价性证明。3.1 语言的识别语言的识别 推导和归约中的回溯问题将对系统的效率产推导和归约中的回溯问题将对系统的效率产生极大的影响生极大的影响 SaA|aB AaA|c BaB|d分析句子分析句子aaac
7、的过程中可能需要回溯。的过程中可能需要回溯。3.1 语言的识别语言的识别 系统识别语言系统识别语言anc|n1and|n1的字符的字符串过程中状态的变化图示如下:串过程中状态的变化图示如下: 3.1 语言的识别语言的识别 识别系统识别系统(模型模型) 系统具有有穷个状态,不同的状态代表系统具有有穷个状态,不同的状态代表不同的意义。按照实际的需要,系统可以不同的意义。按照实际的需要,系统可以在不同的状态下完成规定的任务。在不同的状态下完成规定的任务。 我们可以将输入字符串中出现的字符汇我们可以将输入字符串中出现的字符汇集在一起构成一个字母表。系统处理的所集在一起构成一个字母表。系统处理的所有字符
8、串都是这个字母表上的字符串。有字符串都是这个字母表上的字符串。 3.1 语言的识别语言的识别 系统在任何一个状态系统在任何一个状态(当前状态当前状态)下,从下,从输入字符串中读入一个字符,根据当前状输入字符串中读入一个字符,根据当前状态和读入的这个字符转到新的状态。当前态和读入的这个字符转到新的状态。当前状态和新的状态可以是同一个状态,也可状态和新的状态可以是同一个状态,也可以是不同的状态;当系统从输入字符串中以是不同的状态;当系统从输入字符串中读入一个字符后,它下一次再读时,会读读入一个字符后,它下一次再读时,会读入下一个字符。这就是说,相当于系统维入下一个字符。这就是说,相当于系统维持有一
9、个读写指针,该指针在系统读入一持有一个读写指针,该指针在系统读入一个字符后指向输入串的下一个字符。个字符后指向输入串的下一个字符。 3.1 语言的识别语言的识别 系统中有一个状态,它是系统的开始状系统中有一个状态,它是系统的开始状态,系统在这个状态下开始进行某个给定态,系统在这个状态下开始进行某个给定句子的处理。句子的处理。 系统中还有一些状态表示它到目前为止系统中还有一些状态表示它到目前为止所读入的字符构成的字符串是语言的一个所读入的字符构成的字符串是语言的一个句子,把所有将系统从开始状态引导到这句子,把所有将系统从开始状态引导到这种状态的字符串放在一起构成一个语言,种状态的字符串放在一起构
10、成一个语言,该语言就是系统所能识别的语言。该语言就是系统所能识别的语言。 3.1 语言的识别语言的识别 相应的物理模型相应的物理模型一个右端无穷的输入带。一个右端无穷的输入带。一个有穷状态控制器一个有穷状态控制器(finite state control,FSC) 。一个读头。一个读头。 系统的每一个动作由三个节拍构成:读入系统的每一个动作由三个节拍构成:读入读头正注视的字符;根据当前状态和读入读头正注视的字符;根据当前状态和读入的字符改变有穷控制器的状态;将读头向的字符改变有穷控制器的状态;将读头向右移动一格。右移动一格。 3.1 语言的识别语言的识别 有穷状态自动机的物理模型有穷状态自动机
11、的物理模型 3.2有穷状态自动机有穷状态自动机 有穷状态自动机有穷状态自动机(finite automaton,FA) M=(Q,q0,F)Q状态的非空有穷集合。状态的非空有穷集合。 qQ,q称为称为M的一个的一个状态状态(state)。输入字母表输入字母表(Input alphabet)。输入字。输入字符串都是符串都是上的字符串。上的字符串。 q0q0Q,是,是M的的开始状态开始状态(initial state),也可叫做初始状态或者启动状态。也可叫做初始状态或者启动状态。3.2有穷状态自动机有穷状态自动机 状态状态转移函数转移函数(transition function),有时候又叫做状态
12、转换函数或者移动函数。有时候又叫做状态转换函数或者移动函数。:QQ,对,对 (q,a)Q,(q,a)=p表示:表示:M在状态在状态q读入字符读入字符a,将状态,将状态变成变成p,并将读头向右移动一个带方格而指,并将读头向右移动一个带方格而指向输入字符串的下一个字符。向输入字符串的下一个字符。FF Q,是,是M的的终止状态终止状态(final state)集集合。合。 qF,q称为称为M的的终止状态,终止状态,又称为又称为接受状态接受状态(accept state)。 3.2有穷状态自动机有穷状态自动机 例例 3-1 下面是一个有穷状态自动机下面是一个有穷状态自动机 M1=(q0,q1,q2,0
13、,1,q0,q2)其中其中,1(q0,0)= q1,1(q1,0)= q2,1(q2,0)= q1 用表用表3-1表示表示1。状态说明状态说明状态状态输入字符输入字符0开始状态开始状态q0q1 q1q2终止状态终止状态q2q13.2有穷状态自动机有穷状态自动机 M2=(q0,q1,q2,q3,0,1,2,2,q0,q2)2(q0,0)= q1,2(q1,0)= q22(q2,0)= q1,2(q3,0)= q32(q0,1)= q3,2(q1,1)= q32(q2,1)= q3,2(q3,1)= q32(q0,2)= q3,2(q1,2)= q32(q2,2)= q3,2(q3,2)= q3
14、3.2有穷状态自动机有穷状态自动机 状态说明状态说明状态状态输入字符输入字符012开始状态开始状态q0q1q3q3 q1q2q3q3终止状态终止状态q2q1q3q3 q3q3q3q3表表3-2 2转换函数转换函数 3.2有穷状态自动机有穷状态自动机 将将扩充扩充为为QQ*:对任意的对任意的qQ,w*,a,定义,定义 ),(),()2(),() 1 (awqwaqqq3.2有穷状态自动机有穷状态自动机 ),(),(),(),(aqaqaqaq两值相同,不用区分这两个符号。两值相同,不用区分这两个符号。 3.2有穷状态自动机有穷状态自动机 确定的有穷状态自动机确定的有穷状态自动机由于对于任意的由于
15、对于任意的qQ, a,(q,a)均有均有确定的值,所以,将这种确定的值,所以,将这种FA称为称为确定的有穷状确定的有穷状态自动机态自动机(deterministic finite automaton,DFA) 3.2有穷状态自动机有穷状态自动机 M接受接受(识别识别)的语言的语言 对于对于 x*如果如果(q,w)F,则称,则称x被被M接受,接受,如果如果(q,w) F,则称,则称M不接受不接受x。L(M)=x| x*且且(q,w)F称为由称为由M接受接受(识别识别)的语言的语言 L(M1)= L(M2)=02n|n1 如果如果L(M1)=L(M2),则称,则称M1与与M2等价。等价。 3.2有
16、穷状态自动机有穷状态自动机 例例 3-2 构造一个构造一个DFA,它接受的语言为,它接受的语言为x000y|x,y0,1*q0M的启动状态;的启动状态;q1M读到了一个读到了一个0,这个,这个0可能是子串可能是子串“000”的的第第1个个0;q2M在在q1后紧接着又读到了一个后紧接着又读到了一个0,这个,这个0可能可能是子串是子串“000”的第的第2个个0;q3M在在q2后紧接着又读到了一个后紧接着又读到了一个0,发现输入字,发现输入字符串含有子串符串含有子串“000”;因此,这个状态应该是终;因此,这个状态应该是终止状态。止状态。3.2有穷状态自动机有穷状态自动机 (q0,1)= q0M在在
17、q0读到了一个读到了一个1,它需要,它需要继续在继续在q0 “等待等待”可能是子串可能是子串“000”的第的第1个个0的输入字符的输入字符0;(q1,1)= q0M在刚刚读到了一个在刚刚读到了一个0后,读后,读到了一个到了一个1,表明在读入这个,表明在读入这个1之前所读入之前所读入的的0并不是子串并不是子串“000”的第的第1个个0,因此,因此,M需要重新回到状态需要重新回到状态q0,以寻找子串,以寻找子串“000”的第的第1个个0;3.2有穷状态自动机有穷状态自动机 (q2,1)= q0M在刚刚发现了在刚刚发现了00后,读到了后,读到了一个一个1,表明在读入这个,表明在读入这个1之前所读入的
18、之前所读入的00并并不是子串不是子串“000”的前两个的前两个0,因此,因此,M需要需要重新回到状态重新回到状态q0,以寻找子串,以寻找子串“000”的第的第1个个0;(q3,0)= q3M找到了子串找到了子串“000”,只用,只用读入该串的剩余部分。读入该串的剩余部分。(q3,1)= q3M找到了子串找到了子串“000”,只用,只用读入该串的剩余部分。读入该串的剩余部分。3.2有穷状态自动机有穷状态自动机 M=(q0,q1,q2,q3,0,1, (q0,0)= q1,(q1,0)= q2,(q2,0)= q3,(q0,1)= q0,(q1,1)= q0,(q2,1)= q0,(q3,0)=
19、q3,(q3,1)= q3,q0,q3) 状态说明状态说明状态状态输入字符输入字符01开始状态开始状态q0q1q0 q1q2q0 q2q3q0终止状态终止状态q3q3q33.2有穷状态自动机有穷状态自动机 一种更为直观的表示一种更为直观的表示3.2有穷状态自动机有穷状态自动机 状态转移图状态转移图(transition diagram) qQ q是该有向图中的一个顶点;是该有向图中的一个顶点; (q,a)=p 图中有一条从顶点图中有一条从顶点q到顶到顶点点p的标记为的标记为a的弧;的弧; qF 标记为标记为q的顶点被用双层圈标出;的顶点被用双层圈标出; 用标有用标有S的箭头指出的箭头指出M的开
20、始状态。的开始状态。 状态转移图又可以叫做状态转移图又可以叫做状态转换图。状态转换图。 3.2有穷状态自动机有穷状态自动机 例例 3-3构造一个构造一个DFA,它接受的语言为,它接受的语言为x000|x0,1*。状态状态q0读到的读到的0可能是输入字符串的最后三个可能是输入字符串的最后三个0的第的第1个个0;在状态在状态q1紧接着读到的紧接着读到的0可能是输入字符串的可能是输入字符串的最后三个最后三个0的第的第2个个0;在状态在状态q2紧接着读到的紧接着读到的0可能是输入字符串的可能是输入字符串的最后三个最后三个0的第的第3个个0;3.2有穷状态自动机有穷状态自动机 在状态在状态q3紧接着读到
21、的紧接着读到的0也可能是输入字符串也可能是输入字符串的最后三个的最后三个0的第的第3个个0;如果在状态如果在状态q1,q2,q3读到的是读到的是1,则要重新检,则要重新检查输入串是否以三个查输入串是否以三个0结尾。结尾。 3.2有穷状态自动机有穷状态自动机 几点值得注意几点值得注意 定义定义FA时,常常只给出时,常常只给出FA相应的状态转相应的状态转移图就可以了。移图就可以了。 对于对于DFA来说,并行的弧按其上的标记字来说,并行的弧按其上的标记字符的个数计算,对于每个顶点来说,它的符的个数计算,对于每个顶点来说,它的出度恰好等于输入字母表中所含的字符的出度恰好等于输入字母表中所含的字符的个数
22、。个数。 3.2有穷状态自动机有穷状态自动机 不难看出,字符串不难看出,字符串x被被FA M接受的充分必接受的充分必要条件是,在要条件是,在M的状态转移图中存在一条的状态转移图中存在一条从开始状态到某一个终止状态的有向路,从开始状态到某一个终止状态的有向路,该有向路上从第该有向路上从第1条边到最后一条边的标记条边到最后一条边的标记依次并置而构成的字符串依次并置而构成的字符串x。简称此路的标。简称此路的标记为记为x。 一个一个FA可以有多于可以有多于1个的终止状态。个的终止状态。 3.2有穷状态自动机有穷状态自动机 接受语言接受语言x000|x0,1*x001|x0,1*的的FA 3.2有穷状态
23、自动机有穷状态自动机 即时描述即时描述(instantaneous description,ID ) x,y*,(q0,x)=q, xqy称为称为M的一个的一个即即时描述,时描述,表示表示xy是是M正在处理的一个字符串,正在处理的一个字符串,x引导引导M从从q0启动并到达状态启动并到达状态q,M当前正注视当前正注视着着y的首字符。的首字符。 如果如果xqay是是M的一个即时描述,且的一个即时描述,且(q,a)=p,则则xqay M xapy。 3.2有穷状态自动机有穷状态自动机 Mn :表示:表示M从即时描述从即时描述经过经过n次移动到次移动到达即时描述达即时描述。 M存在即时描述存在即时描述
24、1,2,n-1,使得,使得 M 1,1M 2,n-1M 当当n=0n=0时,有时,有=。即。即M M 0 0 。 M M + + :表示:表示M M从即时描述从即时描述经过至少经过至少1 1次移动到次移动到达即时描述达即时描述。 M M * * :表示:表示M M从即时描述从即时描述经过若干步移动经过若干步移动到达即时描述到达即时描述。 3.2有穷状态自动机有穷状态自动机 当意义清楚时,我们将符号当意义清楚时,我们将符号M、Mn、M*、M+中的中的M省去,分别用省去,分别用、n、*、+表示。表示。 3.2有穷状态自动机有穷状态自动机 对下图所示的对下图所示的DFA有如下的有如下的ID转换:转换
25、:3.2有穷状态自动机有穷状态自动机 q01010010001 1q0010010001 10q110010001 101q00010001 1010q1010001 10100q210001 101001q00001 1010010q1001 10100100q201 3.2有穷状态自动机有穷状态自动机 101001000q31 1010010001q0即 q0101001000110 1010010001q0 q01010010001+ 1010010001q0 q01010010001* 1010010001q0 3.2有穷状态自动机有穷状态自动机 对于x*, q0 x1+ x1q0 q
26、0 x10+ x10q1 q0 x100+ x100q2 q0 x000+ x000q3 3.2有穷状态自动机有穷状态自动机 能引导能引导FA从开始状态到达从开始状态到达q的字符串的集合为:的字符串的集合为:set(q)=x | x*,(q0,x)=q对图对图3-3所给的所给的DFA 中的所有中的所有q,求,求set(q)。set(q0)=x | x*,x=或者或者x以以1结尾结尾set(q1)=x | x*,x=0或者或者x以以10结尾结尾set(q2)=x | x*,x=00或者或者x以以100结尾结尾set(q3)=x | x*,x以以000结尾结尾set(q4)=x | x*, x以以
27、001结尾结尾这这5个集合是两两互不相交。个集合是两两互不相交。 3.2有穷状态自动机有穷状态自动机 对于任意一个对于任意一个FA M=(Q,q0,F)我们可以按照如下方式定义关系我们可以按照如下方式定义关系RM: 对对 x,y*,xRMy qQ,使得,使得xset(q)和和yset(q)同时成立。同时成立。 按照这个定义所得到的关系实际上是按照这个定义所得到的关系实际上是*上上的一个等价关系。利用这个关系,可以将的一个等价关系。利用这个关系,可以将*划分成不多于划分成不多于|Q|个等价类。个等价类。 3.2有穷状态自动机有穷状态自动机 例例 3-4 构造一个构造一个DFA,它接受的语言,它接
28、受的语言为为0n1m2k|n,m,k1。 q0M的启动状态;的启动状态;q1M读到至少一个读到至少一个0,并等待读更多的,并等待读更多的0;q2M读到至少一个读到至少一个0后,读到了至少一个后,读到了至少一个1,并等待读更多的,并等待读更多的1;q3M读到至少一个读到至少一个0后跟至少一个后跟至少一个1后,后,并且接着读到了至少一个并且接着读到了至少一个2。 3.2有穷状态自动机有穷状态自动机 先设计先设计“主体框主体框架架”再补充细节再补充细节 3.2有穷状态自动机有穷状态自动机 当当FA一旦进入状态一旦进入状态qt,它就无法离开此状,它就无法离开此状态。所以,态。所以,qt相当于一个陷阱状
29、态相当于一个陷阱状态(trap)。一般地,我们将陷阱状态用作在其他状态一般地,我们将陷阱状态用作在其他状态下发现输入串不可能是该下发现输入串不可能是该FA所识别的语言所识别的语言的句子时进入的状态。在此状态下的句子时进入的状态。在此状态下,FA读读完输入串中剩余的字符完输入串中剩余的字符。 3.2有穷状态自动机有穷状态自动机 在构造一个识别给定语言的在构造一个识别给定语言的FA时,用画时,用画图的方式比较方便、直观。我们可以先根图的方式比较方便、直观。我们可以先根据语言的主要特征画出该据语言的主要特征画出该FA的的“主体框主体框架架”,然后再去考虑画出一些细节要求的,然后再去考虑画出一些细节要
30、求的内容。内容。3.2有穷状态自动机有穷状态自动机 FA的状态具有一定的记忆功能:不同的状的状态具有一定的记忆功能:不同的状态对应于不同的情况,由于态对应于不同的情况,由于FA只有有穷个只有有穷个状态,所以,在识别一个语言的过程中,状态,所以,在识别一个语言的过程中,如果有无穷种情况需要记忆,我们肯定是如果有无穷种情况需要记忆,我们肯定是无法构造出相应的无法构造出相应的FA的。的。 3.2有穷状态自动机有穷状态自动机 例例 3-5构造一个构造一个DFA,它接受的语言,它接受的语言为为x|x0,1*,且当把,且当把x看成二进制看成二进制数时,数时,x模模3与与0同余同余。 q0对应除以对应除以3
31、余数为余数为0的的x组成的等价类;组成的等价类; q1对应除以对应除以3余数为余数为1的的x组成的等价类;组成的等价类; q2对应除以对应除以3余数为余数为2的的x组成的等价类;组成的等价类; qsM的开始状态。的开始状态。3.2有穷状态自动机有穷状态自动机 qs在此状态下读入在此状态下读入0时,有时,有x=0,所以应,所以应该进入状态该进入状态q0;读入;读入1时,时,有有x=1,所以应,所以应该进入状态该进入状态q1。即:。即:(qs,0)= q0;(qs,1)= q1 。3.2有穷状态自动机有穷状态自动机 q0能引导能引导M到达此状态到达此状态的的x除以除以3余余0,所以有:所以有:x=
32、3*n+0。 读入读入0时,引导时,引导M到达下一个状态的字符串到达下一个状态的字符串为为x0,x0=2*(3*n+0)=3*2*n+0。所以,。所以,(q0,0)= q0; 读入读入1时,时,M到达下一个状态的字符串为到达下一个状态的字符串为x1,x1=2*(3*n+0)+1=3*2*n+1。所以,。所以,(q0,1)= q1;3.2有穷状态自动机有穷状态自动机 q1能引导能引导M到达此状态的到达此状态的x除以除以3余余1,所以有:所以有:x=3*n+1。 读入读入0时,引导时,引导M到达下一个状态的字符串到达下一个状态的字符串为为x0,x0=2*(3*n+1)=3*2*n+2。所以即:。所
33、以即:(q1,0)= q2; 读入读入1时,引导时,引导M到达下一个状态的字符串到达下一个状态的字符串为为x1,x1=2*(3*n+1)+1=3*2*n+2+1=3*(2*n+1)。所以所以(q1,1)= q0 3.2有穷状态自动机有穷状态自动机 q2能引导能引导M到达此状态的到达此状态的x除以除以3余余2,所以:,所以:x=3*n+2。 读入读入0时,引导时,引导M到达下一个状态的字符串到达下一个状态的字符串为为x0,x0=2*(3*n+2)=3*2*n+4=3*(2*n+1)+1。所以。所以(q2,0)= q1; 读入读入1时,引导时,引导M到达下一个状态的字符串为到达下一个状态的字符串为
34、x1,x1=2*(3*n+2)+1=3*2*n+4+1=3*(2*n+1)+2。所以,。所以,(q2,1)= q2 。3.2有穷状态自动机有穷状态自动机 接受语言接受语言x|x0,1*,且当把,且当把x看成二进看成二进制数时,制数时,x模模3与与0同余同余的的DFA如下:如下: 3.2有穷状态自动机有穷状态自动机 例例 3-6 构造一个构造一个DFA,它接受的语言,它接受的语言L=x|x0,1*,且对,且对x中任意一个中任意一个长度不大于长度不大于5的子串的子串a1a2an,a1+a2+an3,n5 。 输入串为输入串为 a1a2aiai+4ai+5am3.2有穷状态自动机有穷状态自动机 当当
35、i=1,2,3,也就是,也就是M读到输入串的第读到输入串的第1、2、3个字符时,它需要将这些字符记下来。个字符时,它需要将这些字符记下来。因为因为a1ai可能需要用来判定输入串的最可能需要用来判定输入串的最初初45个字符组成的子串是否满足语言的要个字符组成的子串是否满足语言的要求。求。 当当i=4,5,也就是,也就是M读到输入串的第读到输入串的第4、5个个字符时,在字符时,在a1+a2+ai3的情况下,的情况下,M需要将需要将a1ai记下来;在记下来;在a1+a2+ai3时,时,M应该进入陷阱状态应该进入陷阱状态qt。 3.2有穷状态自动机有穷状态自动机 当当i=6,也就是,也就是M读到输入串
36、的第读到输入串的第6个字符,个字符,此时,以前读到的第此时,以前读到的第1个字符个字符a1就没有用了,就没有用了,此时它要看此时它要看a2+a3+a63是否成立,如果是否成立,如果成立,成立,M需要将需要将a2a6记下来;在记下来;在a2+a3+ai3时,时,M应该进入陷阱状态应该进入陷阱状态qt。 3.2有穷状态自动机有穷状态自动机 当当M完成对子串完成对子串a1a2aiai+4的考察,并发的考察,并发现它满足语言的要求时,现它满足语言的要求时,M记下来的是记下来的是aiai+4,此时它读入输入串的第,此时它读入输入串的第i+5个字符个字符ai+5,以前读到的第,以前读到的第i个字符个字符a
37、i就没有用了,就没有用了,此时它要看此时它要看ai+1+ai+2+ai+53是否成立,是否成立,如果成立,如果成立,M需要将需要将ai+1,ai+2,ai+5记下记下来;来;在在ai+1+ai+2+ai+53时,时,M应该进入陷应该进入陷阱状态阱状态qt。 3.2有穷状态自动机有穷状态自动机 M需要记忆的内容有:需要记忆的内容有: 什么都未读入什么都未读入20=1种;种; 记录有记录有1个字符个字符21=2种;种; 记录有记录有2个字符个字符22=4种;种; 记录有记录有3个字符个字符23=8种;种; 记录有记录有4个字符个字符24-1=15种;种; 记录有记录有5个字符个字符25-6=26种
38、;种; 记录当前的输入串不是句子记录当前的输入串不是句子1种。种。 3.2有穷状态自动机有穷状态自动机状态设置状态设置qM还未读入任何字符;还未读入任何字符;qt陷阱状态;陷阱状态;qa1a2aiM记录有记录有i个字符,个字符,1i5。a1,a2,ai0,1。取取DFA M=(Q,0,1,q,F)F= q qa1a2ai| a1,a2,ai0,1且且1i5且且a1+a2+ai3Q=qt F 3.2有穷状态自动机有穷状态自动机 (q,a1)=qa1 (qa1,a2)=qa1a2 (qa1a2,a3)=qa1a2a3 qa1a2a3a如果a1+a2+a3+a3(qa1a2a3,a)= qt如果a1
39、+a2+a3+a3 3.2有穷状态自动机有穷状态自动机 qa1a2a3a4a 如果a1+a2+a3+a4+a3(qa1a2a3a4,a)= qt如果a1+a2+a3+a4+a3qa2a3a4a5a a2+a3+a4+ a5+a3(qa1a2a3a4a5,a)=qt如果a2+a3+a4+ a5+a3(qt,a1)=qt3.3 NFA 3.3.1 作为对作为对DFA的修改的修改 希望是接受希望是接受x|x0,1*,且,且x含有子串含有子串00或或11的的FA如下:如下:3.3.1 作为对作为对DFA的修改的修改 希望是接受希望是接受x|x0,1*,且,且x 的倒数第的倒数第10个字符为个字符为1的
40、的FA如下如下 :3.3.1 作为对作为对DFA的修改的修改 这两个图所给的这两个图所给的“FA”与前面我们所定义与前面我们所定义的的FA,即,即DFA,的区别在于:,的区别在于: 并不是对于所有的并不是对于所有的(q,a)Q,(q,a)都有一个状态与它对应;都有一个状态与它对应; 并不是对于所有的并不是对于所有的(q,a)Q,(q,a)只对应一个状态。只对应一个状态。 “FA”在任意时刻可以处于有穷多个状态。在任意时刻可以处于有穷多个状态。 “FA”具有具有“智能智能”。3.3.2 NFA的形式定义的形式定义 不确定的有穷状态自动机不确定的有穷状态自动机(non-deterministic
41、finite automaton ,NFA) M是一个五元组是一个五元组M=(Q,q0,F) Q、q0、F的意义同的意义同DFA。 :Q2Q,对,对 (q,a)Q,(q,a)= p1,p2,pm表示表示M在状态在状态q读入字符读入字符a,可,可以选择地将状态变成以选择地将状态变成p1、或者、或者p2、或者、或者pm ,并将读头向右移动一个带方格而指向输入字符并将读头向右移动一个带方格而指向输入字符串的下一个字符。串的下一个字符。 3.3.2 NFA的形式定义的形式定义 FA的状态转移图、的状态转移图、FA的状态对应的等价类、的状态对应的等价类、FA的即时描述的即时描述对对NFA都有效。都有效。
42、 接受接受x|x0,1*,且,且x含有子串含有子串00或或11的的FA对应的移动函数定义表。对应的移动函数定义表。3.3.2 NFA的形式定义的形式定义 状态说明状态说明状态状态输入字符输入字符01启动状态启动状态q0q0,q1 q0,q2 q1q3 q2q3终止状态终止状态q3q3q33.3.2 NFA的形式定义的形式定义 接受接受x|x0,1*,且,且x 的倒数第的倒数第10个字符个字符为为1的的FA对应的移动函数定义表。对应的移动函数定义表。3.3.2 NFA的形式定义的形式定义 状态说明状态说明状态状态输入字符输入字符01启动状态启动状态q0q0 q0,q1 q1q2q2 q2q3q3
43、 q3q4q4 q4q5q5 q5q6q6 q6q7q7 q7q8q8 q8q9 q9 q9q10 q10终止状态终止状态q103.3.2 NFA的形式定义的形式定义 将将扩充扩充为为QQ2:*对任意的对任意的qQ,w*,a,定义,定义 a),(rp,使得w),(q $r|p),() 2(),() 1 (waqqq3.3.2 NFA的形式定义的形式定义a)(q,a)(q,p|pa)(r,p,|pa)(r,p),(q, r|p),(),(qraqaq和关于和关于DFADFA的结论一样,两值相同,也不的结论一样,两值相同,也不用区分这两个符号。用区分这两个符号。 3.3.2 NFA的形式定义的形式
44、定义 进一步扩充进一步扩充的定义域:的定义域:2Q*2Q。对任意的对任意的P Q,w*PqwqwP),(),(3.3.2 NFA的形式定义的形式定义 由于,对由于,对 (q,w)Q* ),(),(),(wqwqwqqq所以,不一定严格地区分所以,不一定严格地区分的第的第1个分量是一个个分量是一个状态还是一个含有一个元素的集合。状态还是一个含有一个元素的集合。 3.3.2 NFA的形式定义的形式定义 对任意的对任意的qQ,w*,a: (q,wa)=(q,w),a) 对输入字符串对输入字符串a1a2an (q,a1a2an)=(q, a1), a2),),an) 。3.3.2 NFA的形式定义的形
45、式定义 M接受接受(识别识别)的语言的语言 对于对于 x*,如果如果(q0,w) F,则称则称x被被M接受,如果接受,如果(q0,w)F=,则称则称M不接受不接受x。 L(M)=x| x*且且(q0,w) F,称为由称为由M接受接受(识别识别)的语言。的语言。 3.3.3 NFA与与DFA等价等价 对于一个输入字符,对于一个输入字符,NFA与与DFA的差异是的差异是前者可以进入若干个状态,而后者只能进前者可以进入若干个状态,而后者只能进入一个惟一的状态。虽然从入一个惟一的状态。虽然从DFA看待问题看待问题的角度来说的角度来说,NFA在某一时刻同时进入若在某一时刻同时进入若干个状态,但是,这若干
46、个状态合在一起干个状态,但是,这若干个状态合在一起的的“总效果总效果”相当于它处于这些状态对应相当于它处于这些状态对应的一个的一个“综合状态综合状态”。因此,我们考虑让。因此,我们考虑让DFA用一个状态去对应用一个状态去对应NFA的一组状态。的一组状态。 3.3.3 NFA与与DFA等价等价 NFA M1=(Q,1,q0,F1)与与DFA M2=(Q2,2,q0,F2)的对应关系:的对应关系: NFA从开始状态从开始状态q0启动,我们就让相应的启动,我们就让相应的DFA从状态从状态q0启动。所以启动。所以q0= q0。 对于对于NFA 的一个状态组的一个状态组q1,q2,qn,如,如果果NFA
47、在此状态组时读入字符在此状态组时读入字符a后可以进入状后可以进入状态组态组p1,p2,pm,则让相应的则让相应的DFA在状态在状态q1,q2,qn读入字符读入字符a时,进入状态时,进入状态p1,p2,pm。 3.3.3 NFA与与DFA等价等价 定理定理 3-1 NFA与与DFA等价。等价。证明:证明:(1)(1)构造与构造与M1等价的等价的DFA M2 。 M1=(Q,1,q0,F1) M2=(Q2,2,q0,F2) Q2=2Q F2=p1,p2,pm|p1,p2,pm Q&p1,p2,pmF1 3.3.3 NFA与与DFA等价等价 2(q1,q2,qn,a)=p1,p2,pm1(q1,q2
48、,qn,a)= p1,p2,pm (2) 证明证明1(q0,x)= p1,p2,pm 2(q0,x)=p1,p2,pm。 设设x*,施归纳于,施归纳于|x| x=,1(q0,)= q0,2(q0,)=q0 3.3.3 NFA与与DFA等价等价 设当设当|x|=n是结论成立。下面证明当是结论成立。下面证明当|x|=n+1是结是结论也成立。不妨论也成立。不妨设设x=wa,|w|=n,a 1 1(q(q0 0,wawa)=)=1 1( (1 1(q(q0 0,w)w),a)a) = =1 1(q(q1 1,q q2 2,q qn n ,a)a) =p =p1 1,p p2 2,p pm m 由归纳假
49、设,由归纳假设, 1 1(q(q0 0,w)=qw)=q1 1,q q2 2,q qn n 2 2(q(q0 0 ,w)=qw)=q1 1,q q2 2,q qn n 3.3.3 NFA与与DFA等价等价 根据根据2的定义,的定义, 2(q1,q2,qn,a)=p1,p2,pm 1(q1,q2,qn,a)=p1,p2,pm 所以,所以,2(q0,wa)=2(2(q0,w),a) =2(q1,q2,qn,a) =p1,p2,pm 3.3.3 NFA与与DFA等价等价 故,如果故,如果1(q0,wa)= p1,p2,pm则必则必有有2(q0,wa)= p1,p2,pm。由上述推导可知,反向的推导也
50、成立。这就由上述推导可知,反向的推导也成立。这就是说,结论对是说,结论对|x|=n+1也成立。也成立。 由归纳法原理,结论对由归纳法原理,结论对 x*成立。成立。 3.3.3 NFA与与DFA等价等价 (3) 证明证明L(M1)=L(M2) 设设xL(M1),且,且1(q0,x)= p1,p2,pm,从而从而1(q0,x)F1,这就是说,这就是说, p1,p2,pmF1,由由F2的定义,的定义,p1,p2,pmF2。3.3.3 NFA与与DFA等价等价再由再由(2)知,知,2(q0,x)=p1,p2,pm所以,所以,xL(M2)。故。故L(M1) L(M2)。 反过来推,可得反过来推,可得L(
51、M2) L(M1)。从而从而L(M1)=L(M2)得证。得证。 综上所述,定理成立。综上所述,定理成立。例例 3-7 图图3-9所示的所示的NFA 对应的对应的DFA的状态的状态转移函数如表转移函数如表3-7所示。所示。 图图3-9表表3-7 状态转移函数状态转移函数状态说明状态说明状态状态输入字符输入字符01启动启动 q0q0,q1q0,q2 q1q3 q2q3终止终止 q3q3q3 q0,q1q0,q1,q3q0,q2 q0,q2q0,q1q0,q2,q3终止终止 q0,q3q0,q1,q3q0,q2,q3 q1,q2q3q3终止终止 q1,q3q3q3终止终止 q2,q3q3q3 q0,
52、q1,q2q0,q1,q3q0,q2,q3终止终止 q0,q1,q3q0,q1,q3q0,q2,q3终止终止 q0,q2,q3q0,q1,q3q0,q2,q3终止终止 q1,q2,q3q3q3终止终止 q0,q1,q2,q3q0,q1,q3q0,q2,q3 3.3.3 NFA与与DFA等价等价 不可达状态不可达状态( (inaccessible state)inaccessible state):不存不存在从在从 q q0 0 对应的顶点出发,到达该状态对应对应的顶点出发,到达该状态对应的顶点的路。我们称此状态从开始状态是的顶点的路。我们称此状态从开始状态是不可达的。不可达的。 表表3-7中,
53、所有标记中,所有标记“ ”的状态是从开始的状态是从开始状态可达的,其他是不可达的状态可达的,其他是不可达的无用的。无用的。 3.3.3 NFA与与DFA等价等价 构造给定构造给定NFA等价的等价的DFA策略策略先只把开始状态先只把开始状态q0填入表的状态列中,如果填入表的状态列中,如果表中所列的状态列有未处理的,则任选一个未表中所列的状态列有未处理的,则任选一个未处理的状态处理的状态q1,q2,qn,对,对中的每个字中的每个字符符a,计算,计算(q1,q2,qn,a),并填入相,并填入相应的表项中,如果应的表项中,如果(q1,q2,qn,a)在在表的状态列未出现过,则将它填入表的状态列。表的状
54、态列未出现过,则将它填入表的状态列。如此重复下去,直到表的状态列中不存在未处如此重复下去,直到表的状态列中不存在未处理的状态。理的状态。 3.3.3 NFA与与DFA等价等价图图 3-11 图图3-9所示所示NFA的等价的等价DFA 3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 接受语言接受语言0n1m2k|n,m,k0的的NFA 3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 接受语言接受语言0n1m2k|n,m,k0的的NFA是否可是否可以构造成下图所示的以构造成下图所示的“-NFA ”? 其构造显然比图其构造显然比图1-13所示的所示的NFA更容易。更容易。当然还希
55、望它们是等价的。当然还希望它们是等价的。3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 带空移动的不确定的有穷状态自动机带空移动的不确定的有穷状态自动机(non-deterministic finite automaton with -moves,-NFA)M=(Q,q0,F),Q、q0、F的意义同的意义同DFA。 :Q()2Q 3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 非空移动非空移动 (q,a)Q (q,a)= p1,p2,pm 表示表示M在状态在状态q读入字符读入字符a,可以选择地,可以选择地将状态变成将状态变成p1、p2、或者或者pm ,并将读,并将读头向右移
56、动一个带方格而指向输入字符头向右移动一个带方格而指向输入字符串的下一个字符。串的下一个字符。3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 空移动空移动 qQ (q,)= p1,p2,pm 表示表示M在状态在状态q不读入任何字符,可以选不读入任何字符,可以选择地将状态变成择地将状态变成p1、p2、或者或者pm 。也。也可以叫做可以叫做M在状态在状态q做一个空移动做一个空移动(又可以又可以称为称为移动移动),并且选择地将状态变成,并且选择地将状态变成p1、p2、或者或者pm。3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 进一步扩充进一步扩充的定义域:的定义域:2Q*2Q。对
57、任意的对任意的P Q,w* 。 对任意的对任意的qQ,w*,a。 -CLOSURE(q)=p|从从q到到p有一条标记为有一条标记为的路的路。 PppCLOSUREPCLOSURE)()()2(3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机)(),() 3(qCLOSUREq),(),(),(),(|)(),()4(wrrararpwqrpPPCLOSUREwaq使得 3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 进一步扩展移动函数进一步扩展移动函数:2 Q2Q 。 对任意对任意(P,a)2 Q。 PqaqaP),(),()5(PqwqwP),(),()6(3.4 带空移动
58、的有穷状态自动机带空移动的有穷状态自动机 在在-NFA中,对任意中,对任意a,qQ,),(),(aqaq需要严格区分。需要严格区分。图图3-14 所示所示-NFA状状态态 012012q0 q1 q0q0,q1,q2q0,q1,q2q1,q2q2q1 q2 q1q1,q2q1,q2q2q2 q2q2q23.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 M接受接受(识别识别)的语言的语言 对于对于 x*,仅当,仅当 Fxq),(0时,称时,称x被被M接受。接受。 ),(|)(0*FxqxxML并且3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机定理定理 3-2-NFA与与NFA等
59、价。等价。证明:设有证明:设有-NFA M1=(Q,1,q0,F)(1) 构造与之等价的构造与之等价的NFA M2 。 取取NFA M2=(Q,2,q0,F2) Fq0如果如果F-CLOSURE(q0)F2=F如果如果F-CLOSURE(q0)= ),(),(12aqaq3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 (2) 施归纳施归纳于于|x|,证明对,证明对 x+ 。),(),(12xqxq2(q0,x)= 2(q0,wa)=2(2(q0,w),a)=2(q0,w),a) 3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机),(),(),(),(|(),(),(),(01
60、01101),(1),(1),(2010101xqwaqaqpwqqpCLOSUREaqCLOSUREaqaqwqqwqqwqq3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 (3) 证明证明, 对对 x+,2(q0,x) F2 的充分必要条件是的充分必要条件是Fxq),(1 证明证明L(M1) L(M2) 。3.4 带空移动的有穷状态自动机带空移动的有穷状态自动机 例例3-4 求与图求与图3-14所示所示-NFA等价的等价的NFA。 3.5 FA是正则语言的识别器是正则语言的识别器 3.5.1 FA与右线性文法与右线性文法 DFA M=(Q,q0,F),处理句子,处理句子a1a2a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新星职业技术学院《英语二》2023-2024学年第一学期期末试卷
- 2025至2031年中国移动式液体过滤清洗机行业投资前景及策略咨询研究报告
- 2025-2030年中国LED照明行业发展前景调研与投资策略研究报告
- 甘肃省陇南市达标名校2024年中考数学模拟试卷含解析
- 广东省广州市石楼镇第二中学2023-2024学年中考数学模拟试卷含解析
- 初中英语定语从句说题课件
- 2025公司及项目部安全培训考试试题及答案全面
- 2024-2025日常安全培训考试试题及答案【典优】
- 2025年车间职工安全培训考试试题含完整答案(各地真题)
- 2024-2025企业负责人安全培训考试试题答案能力提升
- 家装个人清包合同协议
- 《运动处方》课件-糖尿病人群运动处方案例
- 儿童卫生习惯的养成与学校教育的结合
- 手术室烟雾试题及答案
- 2025年甘肃省定西市渭源县中考数学第一次模拟试题(原卷版+解析版)
- 1.2 思维形态及其特征 课件-高中政治统编版选择性必修三逻辑与思维
- 钢结构厂房承包合同范本
- 房屋买卖合同电子版模板
- 2024-2025学年度湘教版数学七年级下册期末学情评估卷(含答案)
- 情绪管理技巧在校园生活中的应用
- 2025年四川成都农业科技职业学院招聘9人历年高频重点提升(共500题)附带答案详解
评论
0/150
提交评论