形式语言自动机有限自动机精品文稿.ppt
《形式语言自动机有限自动机精品文稿.ppt》由会员分享,可在线阅读,更多相关《形式语言自动机有限自动机精品文稿.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、形式语言自动机有限自动机第1页,本讲稿共53页2College of Computer Science&Technology,BUPT第一节第一节 有限自动机有限自动机一、有限状态系统的概念一、有限状态系统的概念n状态:状态是可以将事物区分开的一种标识。n具有离散状态的系统:如数字电路(0,1),十字路口的红绿灯。离散状态系统的状态数是有限的.n具有连续状态的系统:比如水库的水位,室内温度等可以连续变化,即有无穷个状态.n有限状态系统必然是离散状态系统(而且状态数有限),因为只有有限个状态.第2页,本讲稿共53页3College of Computer Science&Technology,B
2、UPT第一节第一节 有限自动机有限自动机n实例实例 一一个个人人带带着着一一头头狼狼,一一头头羊羊,以以及及一一棵棵青青菜菜,处处于于河河的的左左岸岸。有有一一条条小小船船,每每次次只只能能携携带带人人和和其其余余的的三三者者之之一一。人人和和他他的的伴伴随随品品都都希希望望渡渡到到河河的的右右岸岸,而而每每摆摆渡渡一一次次,人人仅仅能能带带其其中中之之一一。然然而而如如果果人人留留下下狼狼和和羊羊不不论论在在左左岸岸还还是是在在右右岸岸,狼狼肯肯定定会会吃吃掉掉羊羊。类类似似地地,如如果果单单独独留留下下羊羊和和菜菜,羊羊也也肯肯定定会会吃吃掉掉菜菜。如如何何才才能能既既渡渡过过河河而而羊羊
3、和和菜菜又不被吃掉呢又不被吃掉呢?第3页,本讲稿共53页4College of Computer Science&Technology,BUPTMGWC(处处于于左左岸岸的的子子集集处于右岸的子集处于右岸的子集)将过河问题模型化:将过河问题模型化:人人(M)狼狼(W)羊羊(G)菜菜(C)第4页,本讲稿共53页5College of Computer Science&Technology,BUPT二、有限自动机的概念二、有限自动机的概念有限自动机的概念有限自动机的概念n具有离散 输入 输出系统的一种数学模型(可以没有输出,比较特殊的也可以没有输入).n有限的状态n状态+输入状态转移n每次转换的后
4、继状态都唯一 DFAn每次转换的后继状态不唯一 NFA第5页,本讲稿共53页6College of Computer Science&Technology,BUPTFA FA 的模型的模型 FA可以理解成一个控制器可以理解成一个控制器,它读一条输入带上的它读一条输入带上的字符。字符。101101有限有限控制器控制器(1)控制器包括有限状态控制器包括有限状态;(2)从左到右依次读取字符从左到右依次读取字符;(3)状态状态+激励激励 状态迁移状态迁移(根据当前所处状态和输入字符进行根据当前所处状态和输入字符进行状态转移状态转移)第6页,本讲稿共53页7College of Computer Sci
5、ence&Technology,BUPT 有限状态集有限状态集 有限输入符号集有限输入符号集 转移函数转移函数 一个开始状态一个开始状态 一个终态集合一个终态集合有限自动机的五要素q0q1q2q3第7页,本讲稿共53页8College of Computer Science&Technology,BUPT三、三、DFADFA的形式定义的形式定义定义定义:DFA是一个五元组 M=(Q,T,q0,F)nQ:有限的状态集合nT:有限的输入字母表n:转换函数(状态转移集合):QT Qnq0:初始状态,q0 QnF:终止状态集,F Qn表示方法:表示方法:第8页,本讲稿共53页9College of C
6、omputer Science&Technology,BUPT转转 移移 图图 表表 示示 的的 DFADFA Q=q0,q1,q2,q3 T=0,1 (q0,0)=q2,(q0,1)=q1 (q1,0)=q3,(q1,1)=q0 (q2,0)=q0,(q2,1)=q3 (q3,0)=q1,(q3,1)=q2 q0 F=q0,q3 q0q1q2q3第9页,本讲稿共53页10College of Computer Science&Technology,BUPT转转 移移 表表 表表 示示 的的 DFADFA q0q1q2 q301q2q1q3q0q0q3q1q2 Q=q0,q1,q2,q3 T=
7、0,1 (q0,0)=q2,(q0,1)=q1 (q1,0)=q3,(q1,1)=q0 (q2,0)=q0,(q2,1)=q3 (q3,0)=q1,(q3,1)=q2 q0 F=q0,q3 第10页,本讲稿共53页11College of Computer Science&Technology,BUPT四、四、扩展转移函数适合于输入字符串扩展转移函数适合于输入字符串函数:函数:接收一个字符串的状态转移函数。接收一个字符串的状态转移函数。:Q T*Q n 对任何对任何q Q,定义:定义:n 1.(q,)=q 2.若若是一个字符串是一个字符串,a是一个字符是一个字符定义定义:(q,a)=(q,),
8、a)对于对于DFA:(q,a)=(q,),a)=(q,a),即对即对于单个字符时于单个字符时和和是相等的。为了方便,以后在是相等的。为了方便,以后在不引起混淆时用不引起混淆时用代替代替 第11页,本讲稿共53页12College of Computer Science&Technology,BUPT扩展转移函数适合于输入字符串扩展转移函数适合于输入字符串 q0q1q2 q301q2q1q3q0q0q3q1q2 举例举例 (q0,)=q0 (q0,0)=(q0,0)=q2 (q0,00)=(q2,0)=q0 (q0,001)=(q0,1)=q1 (q0,0010)=(q1,0)=q3q0q1q2
9、q3第12页,本讲稿共53页13College of Computer Science&Technology,BUPTDFADFA接受的语言接受的语言n被被DFA接接收收的的字字符符串串:输输入入结结束束后后使使DFA的的状状态态到到达达终终止止状状态。否则该字符串不能被态。否则该字符串不能被D FA接收接收.nDFA接收的语言接收的语言:被被DFA接收的字符串的集合接收的字符串的集合.L(M)=(q0,)F n例:例:T=0,1接收含有奇数个接收含有奇数个0的任意串的任意串第13页,本讲稿共53页14College of Computer Science&Technology,BUPT五、格
10、局五、格局n为为描描述述有有限限自自动动机机的的工工作作过过程程,对对于于它它在在某某一一时时刻刻的的工工作作状状态态,可可用用两两个个信信息息表表明明:当当前前状状态态q,待待输输入入字字符符串串。两两者者构构成成一一个个瞬瞬时时描描述述,用(用(q,)表示,称为格局。表示,称为格局。n初始格局:(初始格局:(q0,)n终止格局:终止格局:(q,),q F第14页,本讲稿共53页15College of Computer Science&Technology,BUPTn如图,接受如图,接受001010的格局的格局(q0,001010)(q2,01010)(q0,1010)(q1,010)(q
11、3,10)(q2,0)(q0,)n格局数量是无限的。格局数量是无限的。n有限状态自动机是无记忆的。有限状态自动机是无记忆的。例如接受例如接受0010101111和接受和接受01011111时,都可以进入格时,都可以进入格局局(q0,1111)。格局示例格局示例q0q1q2q3第15页,本讲稿共53页16College of Computer Science&Technology,BUPT设计有限自动机设计有限自动机n自动机的设计是一个创造过程,没有简单的算法或过程。自动机的设计是一个创造过程,没有简单的算法或过程。n技巧:假设自己是机器,思考如何去实现机器的任务技巧:假设自己是机器,思考如何去
12、实现机器的任务。n为判断到目前为止所看到的字符串是否满足某个语言,须估算出读一为判断到目前为止所看到的字符串是否满足某个语言,须估算出读一个字符串时需要记住哪些关键的东西。个字符串时需要记住哪些关键的东西。(找出状态)(找出状态)例例1:构造自动机识别所有由奇数个构造自动机识别所有由奇数个a和奇数个和奇数个b组成的字符串。组成的字符串。关键关键:不需要记住所看到的整个字符串,只需记住至此所看到的不需要记住所看到的整个字符串,只需记住至此所看到的a、b个数是偶数还是奇数。个数是偶数还是奇数。q偶a偶bq奇a偶bq偶a奇bq奇a奇bStartbaabaabb第16页,本讲稿共53页17Colleg
13、e of Computer Science&Technology,BUPT设计有限自动机设计有限自动机n例例2:构造有限自动机:构造有限自动机M,识别识别0,1上的语言上的语言nL=x000y|x,y0.1*n分析:该语言特点是每个串都包含分析:该语言特点是每个串都包含连续连续3 3个个0 0的子串,自动机的任务是识别的子串,自动机的任务是识别/检查是否存在子串检查是否存在子串000000。由于字符是逐一读入,当读入一个由于字符是逐一读入,当读入一个0 0时,就需记住(状态时,就需记住(状态q q1 1),),若接着读入的还是若接着读入的还是0 0,则需记住已读入,则需记住已读入连续的连续的2
14、 2个个0 0了(状态了(状态q q2 2),),若接着读入的若接着读入的还是还是0 0,则需记住已读入连续的,则需记住已读入连续的2 2个个0 0了了(状态(状态q q3 3),),第17页,本讲稿共53页18College of Computer Science&Technology,BUPT设计有限自动机设计有限自动机例例3:构造有限自动机:构造有限自动机M,识,识别别0,1,2上的语言上的语言,每个字每个字符串代表的数字能整除符串代表的数字能整除3。分析:如果一个十进制数的所有位的数字之分析:如果一个十进制数的所有位的数字之和能整除和能整除3 3,则该十进制数就能整除,则该十进制数就能
15、整除3 3。一个十进制数除以一个十进制数除以3 3,余数只能为,余数只能为0 0、1 1、2 2。-设计为状态。设计为状态。状态状态q q0 0表示已读入的数字和除表示已读入的数字和除3 3余余0,0,状态状态q q1 1表示已读入的数字和除表示已读入的数字和除3 3余余1,1,状态状态q q2 2表示已读入的数字和除表示已读入的数字和除3 3余余2,2,第18页,本讲稿共53页19College of Computer Science&Technology,BUPT第二节第二节不确定的有限自动机不确定的有限自动机(NFA)NFA)修改修改DFA的模型的模型,使之在某个状态使之在某个状态,对应
16、一个输入对应一个输入,可以有多可以有多个转移个转移,到达不到达不 同的状态同的状态,则称为不确定的有限自动机。则称为不确定的有限自动机。例:例:(1)(2)第19页,本讲稿共53页20College of Computer Science&Technology,BUPT一、不确定有限自动机的形式定义一、不确定有限自动机的形式定义nNFA是一个五元组是一个五元组,M=(Q,T,q0,F).其中其中是是QT-2Q的函数的函数,其余与其余与DFA相同相同.n如果接收一个字符串后如果接收一个字符串后NFA进入一个状态集进入一个状态集,而而此集合中包含此集合中包含一个以上一个以上F中的状态中的状态,则则
17、称称NFA接接收该字符串收该字符串.第20页,本讲稿共53页21College of Computer Science&Technology,BUPT(1)(2)pq r0 q q q,r 1pq r0 p r r 1 p,q 转移图和转移表表示的NFA注意:转移表中的每一项都是一个集合。含空集第21页,本讲稿共53页22College of Computer Science&Technology,BUPT二二、NFANFA的状态转移函数的状态转移函数与与 DFA 唯一不同之处唯一不同之处 :Q T 2Q同样同样,可扩展为可扩展为 (:Q T*2Q)1.(q,)=q 含义:不允许无输入的状态变
18、化.2.(q,a)=p|存在存在r(q,)p(r,a)n含义:(q,a)对应的状态集合是(q,)对应的每个状态下再接收字符a以后可能到达的状态集合的并集.即若若 (q,)=r 1,r 2,r k,则则n (q,a)=(r i,a)n其中其中 T*,a T,r i Q第22页,本讲稿共53页23College of Computer Science&Technology,BUPT 举例举例 (p,)=p (p,0)=q (p,01)=q,r (p,010)=q (p,0100)=q (p,01001)=q,r pq r0 q q q,r 1扩展转移函数适合于输入字符串第23页,本讲稿共53页24
19、College of Computer Science&Technology,BUPTNFA 接受的语言接受的语言 设一个设一个 NFA A=(Q,T,q0,F)定义定义 A 的语言:的语言:L(A)=(q0,)F 第24页,本讲稿共53页25College of Computer Science&Technology,BUPT第三节第三节 NFA与与DFA的等价性的等价性n为什么要讨论等价性?问题的提出为什么要讨论等价性?问题的提出nNFA识别语言的复杂性,参见教材P59的例子。需回溯和智能才能识别句子。nDFA具有结构简单清晰的特点。n是否存在NFA-DFA的转换方法?n如果找到这样的转换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言 自动机 有限 精品 文稿
限制150内