第3章-有穷状态自动机-计算机专业-形式语言课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第3章-有穷状态自动机-计算机专业-形式语言课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有穷 状态 自动机 计算机专业 形式语言 课件
- 资源描述:
-
1、2023-2-161第第3章章 有穷状态自动机有穷状态自动机 主要内容主要内容 确定的有穷状态自动机确定的有穷状态自动机(DFA)作为对实际问题的抽象、直观物理模型、形式作为对实际问题的抽象、直观物理模型、形式定义,定义,DFA接受的句子、语言,状态转移图。接受的句子、语言,状态转移图。不确定的有穷状态自动机不确定的有穷状态自动机(NFA)定义;定义;NFA与与DFA的等价性;的等价性;2023-2-162第第3章章 有穷状态自动机有穷状态自动机 带空移动的有穷状态自动机带空移动的有穷状态自动机(-NFA)定义。定义。-NFA与与DFA的等价性。的等价性。FA是正则语言的识别器是正则语言的识别
2、器 正则文法正则文法(RG)与与FA的等价性。的等价性。相互转换方法。相互转换方法。带输出的有穷状态自动机。带输出的有穷状态自动机。双向有穷状态自动机。双向有穷状态自动机。2023-2-163第第3章章 有穷状态自动机有穷状态自动机 重点:重点:DFA的概念,的概念,DFA、NFA、-NFA、RG之间的等价转换思路与方法。之间的等价转换思路与方法。难点:对难点:对DFA概念的理解,概念的理解,DFA、RG的构的构造方法,造方法,RG与与FA的等价性证明。的等价性证明。2023-2-1643.1 语言的识别语言的识别 推导和归约中的回溯问题将对系统的效率产推导和归约中的回溯问题将对系统的效率产生
3、极大的影响生极大的影响 SaA|aB AaA|c BaB|d分析句子分析句子aaac 的过程中可能需要回溯。的过程中可能需要回溯。2023-2-1653.1 语言的识别语言的识别 系统识别语言系统识别语言anc|n1and|n1的字符的字符串过程中状态的变化图示如下:串过程中状态的变化图示如下:2023-2-1663.1 语言的识别语言的识别 识别系统识别系统(模型模型)系统具有有穷个状态,不同的状态代表系统具有有穷个状态,不同的状态代表不同的意义。按照实际的需要,系统可以不同的意义。按照实际的需要,系统可以在不同的状态下完成规定的任务。在不同的状态下完成规定的任务。我们可以将输入字符串中出现
4、的字符汇我们可以将输入字符串中出现的字符汇集在一起构成一个字母表。系统处理的所集在一起构成一个字母表。系统处理的所有字符串都是这个字母表上的字符串。有字符串都是这个字母表上的字符串。2023-2-1673.1 语言的识别语言的识别 系统在任何一个状态系统在任何一个状态(当前状态当前状态)下,从下,从输入字符串中读入一个字符,根据当前状输入字符串中读入一个字符,根据当前状态和读入的这个字符转到新的状态。当前态和读入的这个字符转到新的状态。当前状态和新的状态可以是同一个状态,也可状态和新的状态可以是同一个状态,也可以是不同的状态;当系统从输入字符串中以是不同的状态;当系统从输入字符串中读入一个字符
5、后,它下一次再读时,会读读入一个字符后,它下一次再读时,会读入下一个字符。这就是说,相当于系统维入下一个字符。这就是说,相当于系统维持有一个读写指针,该指针在系统读入一持有一个读写指针,该指针在系统读入一个字符后指向输入串的下一个字符。个字符后指向输入串的下一个字符。2023-2-1683.1 语言的识别语言的识别 系统中有一个状态,它是系统的开始状系统中有一个状态,它是系统的开始状态,系统在这个状态下开始进行某个给定态,系统在这个状态下开始进行某个给定句子的处理。句子的处理。系统中还有一些状态表示它到目前为止系统中还有一些状态表示它到目前为止所读入的字符构成的字符串是语言的一个所读入的字符构
6、成的字符串是语言的一个句子,把所有将系统从开始状态引导到这句子,把所有将系统从开始状态引导到这种状态的字符串放在一起构成一个语言,种状态的字符串放在一起构成一个语言,该语言就是系统所能识别的语言。该语言就是系统所能识别的语言。2023-2-1693.1 语言的识别语言的识别 相应的物理模型相应的物理模型一个右端无穷的输入带。一个右端无穷的输入带。一个有穷状态控制器一个有穷状态控制器(finite state control,FSC)。一个读头。一个读头。系统的每一个动作由三个节拍构成:读入系统的每一个动作由三个节拍构成:读入读头正注视的字符;根据当前状态和读入读头正注视的字符;根据当前状态和读
7、入的字符改变有穷控制器的状态;将读头向的字符改变有穷控制器的状态;将读头向右移动一格。右移动一格。2023-2-16103.1 语言的识别语言的识别 有穷状态自动机的物理模型有穷状态自动机的物理模型 2023-2-16113.2有穷状态自动机有穷状态自动机 有穷状态自动机有穷状态自动机(finite automaton,FA)M=(Q,q0,F)Q状态的非空有穷集合。状态的非空有穷集合。qQ,q称为称为M的一个的一个状态状态(state)。输入字母表输入字母表(Input alphabet)。输入字符。输入字符串都是串都是上的字符串。上的字符串。q0q0Q,是,是M的的开始状态开始状态(ini
8、tial state),也可叫做初始状态或者启动状态。也可叫做初始状态或者启动状态。2023-2-16123.2有穷状态自动机有穷状态自动机 状态状态转移函数转移函数(transition function),有,有时候又叫做状态转换函数或者移动函数。时候又叫做状态转换函数或者移动函数。:QQ,对,对(q,a)Q,(q,a)=p表示:表示:M在状态在状态q读入字符读入字符a,将状态变成,将状态变成p,并将读头向右移动一个带方格而指向输入并将读头向右移动一个带方格而指向输入字符串的下一个字符。字符串的下一个字符。FF Q,是,是M的的终止状态终止状态(final state)集合。集合。qF,q
9、称为称为M的的终止状态,终止状态,又称为又称为接受接受状态状态(accept state)。2023-2-16133.2有穷状态自动机有穷状态自动机 例例 3-1 下面是一个有穷状态自动机下面是一个有穷状态自动机 M1=(q0,q1,q2,0,1,q0,q2)其中,其中,1(q0,0)=q1,1(q1,0)=q2,1(q2,0)=q1 用表用表3-1表示表示1。状态说明状态说明状态状态输入字符输入字符0开始状态开始状态q0q1 q1q2终止状态终止状态q2q12023-2-16143.2有穷状态自动机有穷状态自动机 M2=(q0,q1,q2,q3,0,1,2,2,q0,q2)2(q0,0)=q
10、1,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 2023-2-16153.2有穷状态自动机有穷状态自动机 状态说明状态说明状态状态输入字符输入字符012开始状态开始状态q0q1q3q3 q1q2q3q3终止状态终止状态q2q1q3q3 q3q3q3q3表表3-2 2转换函数转换函数 2023-2-16163.2有穷状态自动机有穷状态自动机 将将扩充为扩充为QQ*:对任意的对任意的qQ,w*,a,定义,定义),
11、(),()2(),()1(awqwaqqq2023-2-16173.2有穷状态自动机有穷状态自动机),(),(),(),(aqaqaqaq两值相同,不用区分这两个符号。两值相同,不用区分这两个符号。2023-2-16183.2有穷状态自动机有穷状态自动机 确定的有穷状态自动机确定的有穷状态自动机 由于对于任意的由于对于任意的qQ,a,(q,a)均有均有确定的值,所以,将这种确定的值,所以,将这种FA称为称为确定的有穷状确定的有穷状态自动机态自动机(deterministic finite automaton,DFA)2023-2-16193.2有穷状态自动机有穷状态自动机 M接受接受(识别识别
12、)的语言的语言 对于对于 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等价。等价。2023-2-16203.2有穷状态自动机有穷状态自动机 例例 3-2 构造一个构造一个DFA,它接受的语言为,它接受的语言为x000y|x,y0,1*q0M的启动状态;的启动状态;q1M读到了一个读到了一个0,这个,这个0可能是子串可能是子串“000”的的第第1个个0;q2M在在
13、q1后紧接着又读到了一个后紧接着又读到了一个0,这个,这个0可能可能是子串是子串“000”的第的第2个个0;q3M在在q2后紧接着又读到了一个后紧接着又读到了一个0,发现输入字,发现输入字符串含有子串符串含有子串“000”;因此,这个状态应该是终;因此,这个状态应该是终止状态。止状态。2023-2-16213.2有穷状态自动机有穷状态自动机(q0,1)=q0M在在q0读到了一个读到了一个1,它需要,它需要继续在继续在q0“等待等待”可能是子串可能是子串“000”的第的第1个个0的输入字符的输入字符0;(q1,1)=q0M在刚刚读到了一个在刚刚读到了一个0后,读后,读到了一个到了一个1,表明在读
14、入这个,表明在读入这个1之前所读入之前所读入的的0并不是子串并不是子串“000”的第的第1个个0,因此,因此,M需要重新回到状态需要重新回到状态q0,以寻找子串,以寻找子串“000”的的第第1个个0;2023-2-16223.2有穷状态自动机有穷状态自动机(q2,1)=q0M在刚刚发现了在刚刚发现了00后,读到了后,读到了一个一个1,表明在读入这个,表明在读入这个1之前所读入的之前所读入的00并并不是子串不是子串“000”的前两个的前两个0,因此,因此,M需要重需要重新回到状态新回到状态q0,以寻找子串,以寻找子串“000”的第的第1个个0;(q3,0)=q3M找到了子串找到了子串“000”,
15、只用读,只用读入该串的剩余部分。入该串的剩余部分。(q3,1)=q3M找到了子串找到了子串“000”,只用读,只用读入该串的剩余部分。入该串的剩余部分。2023-2-16233.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)=q3,(q3,1)=q3,q0,q3)状态说明状态说明状态状态输入字符输入字符01开始状态开始状态q0q1q0 q1q2q0 q2q3q0终止状态终止状态q3q3q32023-2-16243.2有穷状态自动机有穷状态自
16、动机 一种更为直观的表示一种更为直观的表示2023-2-16253.2有穷状态自动机有穷状态自动机 状态转移图状态转移图(transition diagram)qQ q是该有向图中的一个顶点;是该有向图中的一个顶点;(q,a)=p 图中有一条从顶点图中有一条从顶点q到顶到顶点点p的标记为的标记为a的弧;的弧;qF 标记为标记为q的顶点被用双层圈标出;的顶点被用双层圈标出;用标有用标有S的箭头指出的箭头指出M的开始状态。的开始状态。状态转移图又可以叫做状态转移图又可以叫做状态转换图。状态转换图。2023-2-16263.2有穷状态自动机有穷状态自动机 例例 3-3构造一个构造一个DFA,它接受的
17、语言为,它接受的语言为x000|x0,1*。状态状态q0读到的读到的0可能是输入字符串的最后三个可能是输入字符串的最后三个0的第的第1个个0;在状态在状态q1紧接着读到的紧接着读到的0可能是输入字符串的最可能是输入字符串的最后三个后三个0的第的第2个个0;在状态在状态q2紧接着读到的紧接着读到的0可能是输入字符串的最可能是输入字符串的最后三个后三个0的第的第3个个0;2023-2-16273.2有穷状态自动机有穷状态自动机 在状态在状态q3紧接着读到的紧接着读到的0也可能是输入字符串的也可能是输入字符串的最后三个最后三个0的第的第3个个0;如果在状态如果在状态q1,q2,q3读到的是读到的是1
18、,则要重新检,则要重新检查输入串是否以三个查输入串是否以三个0结尾。结尾。2023-2-16283.2有穷状态自动机有穷状态自动机 几点值得注意几点值得注意 定义定义FA时,常常只给出时,常常只给出FA相应的状态转相应的状态转移图就可以了。移图就可以了。对于对于DFA来说,并行的弧按其上的标记字来说,并行的弧按其上的标记字符的个数计算,对于每个顶点来说,它的符的个数计算,对于每个顶点来说,它的出度恰好等于输入字母表中所含的字符的出度恰好等于输入字母表中所含的字符的个数。个数。2023-2-16293.2有穷状态自动机有穷状态自动机 不难看出,字符串不难看出,字符串x被被FA M接受的充分必接受
19、的充分必要条件是,在要条件是,在M的状态转移图中存在一条的状态转移图中存在一条从开始状态到某一个终止状态的有向路,从开始状态到某一个终止状态的有向路,该有向路上从第该有向路上从第1条边到最后一条边的标记条边到最后一条边的标记依次并置而构成的字符串依次并置而构成的字符串x。简称此路的标。简称此路的标记为记为x。一个一个FA可以有多于可以有多于1个的终止状态。个的终止状态。2023-2-16303.2有穷状态自动机有穷状态自动机 接受语言接受语言x000|x0,1*x001|x0,1*的的FA 2023-2-16313.2有穷状态自动机有穷状态自动机 即时描述即时描述(instantaneous
20、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。2023-2-16323.2有穷状态自动机有穷状态自动机 Mn:表示:表示M从即时描述从即时描述经过经过n次移动到次移动到达即时描述达即时描述。M存在即时描述存在即时描述1,2,n-1,使得,使得 M 1,1M 2,n-1M 当当
21、n=0n=0时,有时,有=。即。即M M 0 0 。M M+:表示:表示M M从即时描述从即时描述经过至少经过至少1 1次移动到次移动到达即时描述达即时描述。M M *:表示:表示M M从即时描述从即时描述经过若干步移动经过若干步移动到达即时描述到达即时描述。2023-2-16333.2有穷状态自动机有穷状态自动机 当意义清楚时,我们将符号当意义清楚时,我们将符号M、Mn、M*、M+中的中的M省去,分别用省去,分别用、n、*、+表示。表示。2023-2-16343.2有穷状态自动机有穷状态自动机 对下图所示的对下图所示的DFA有如下的有如下的ID转换:转换:2023-2-16353.2有穷状态
22、自动机有穷状态自动机 q01010010001 1q0010010001 10q110010001 101q00010001 1010q1010001 10100q210001 101001q00001 1010010q1001 10100100q201 2023-2-16363.2有穷状态自动机有穷状态自动机 101001000q31 1010010001q0即 q0101001000110 1010010001q0 q01010010001+1010010001q0 q01010010001*1010010001q0 2023-2-16373.2有穷状态自动机有穷状态自动机 对于x*,q0
23、 x1+x1q0 q0 x10+x10q1 q0 x100+x100q2 q0 x000+x000q3 2023-2-16383.2有穷状态自动机有穷状态自动机 能引导能引导FA从开始状态到达从开始状态到达q的字符串的集合为:的字符串的集合为:set(q)=x|x*,(q0,x)=q对图对图3-3所给的所给的DFA 中的所有中的所有q,求,求set(q)。2023-2-1639set(q0)=x|x*,x=或者或者x以以1但不是但不是001结尾结尾set(q1)=x|x*,x=0或者或者x以以10结尾结尾set(q2)=x|x*,x=00或者或者x以以100结尾结尾set(q3)=x|x*,x
24、以以000结尾结尾set(q4)=x|x*,x以以001结尾结尾这这5个集合是两两互不相交。个集合是两两互不相交。2023-2-16403.2有穷状态自动机有穷状态自动机 对于任意一个对于任意一个FA M=(Q,q0,F)我们可以按照如下方式定义关系我们可以按照如下方式定义关系RM:对对 x,y*,xRMy qQ,使得,使得xset(q)和和yset(q)同时成立。同时成立。按照这个定义所得到的关系实际上是按照这个定义所得到的关系实际上是*上上的一个等价关系。利用这个关系,可以将的一个等价关系。利用这个关系,可以将*划分成不多于划分成不多于|Q|个等价类。个等价类。2023-2-16413.2
25、有穷状态自动机有穷状态自动机 例例 3-4 构造一个构造一个DFA,它接受的语言为,它接受的语言为0n1m2k|n,m,k1。q0M的启动状态;的启动状态;q1M读到至少一个读到至少一个0,并等待读更多的,并等待读更多的0;q2M读到至少一个读到至少一个0后,读到了至少一个后,读到了至少一个1,并等待读更多的,并等待读更多的1;q3M读到至少一个读到至少一个0后跟至少一个后跟至少一个1后,后,并且接着读到了至少一个并且接着读到了至少一个2。2023-2-16423.2有穷状态自动机有穷状态自动机 先设计先设计“主体框架主体框架”再补充细节再补充细节2023-2-1643 3.2有穷状态自动机有
展开阅读全文