形式语言与自动机-有穷自动机课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《形式语言与自动机-有穷自动机课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言 自动机 有穷 课件
- 资源描述:
-
1、1形式语言与自动机 第三章 有穷自动机南京航空航天大学南京航空航天大学计算机科学与技术学院计算机科学与技术学院 胡胡 军军2022年10月29日星期六南京航空航天大学计算机学院 胡军2第三章 有穷自动机o 1.1 非形式化描述o 1.2 有穷自动机的基本定义o 1.3 非确定的有穷自动机o 1.4 具有转移的有穷自动机o 1.5 有穷自动机的应用 o 1.6 具有输出的有穷自动机(*)2022年10月29日星期六南京航空航天大学计算机学院 胡军31.1 有穷状态系统o指针式钟表共有12*60*60个状态n 小时分钟秒o围棋共有3361个状态n 每一个格子:(空,黑,白);n 格子数量:19行1
2、9列o某些电子产品中的开关电路,具有n个门的开关网络有2n种状态o“网上购物”系统(示例:)2022年10月29日星期六南京航空航天大学计算机学院 胡军4o 2007年图灵奖年图灵奖 n 模型检验(model checking):基于自动机理论的形式化方法(formal methods)E.ClarkEmersonSifakis2022年10月29日星期六南京航空航天大学计算机学院 胡军51.2 有穷自动机的基本定义定义3.1 一个有穷自动机有穷自动机(Finite Automata)简称简称FA,是一个五元组:M=(Q,q0,F),其中(1)Q是有穷状态集;(States)(2)是有穷的输入
3、字母表 (Alphabet)(3)是转移函数,它将QQ(全映射);(Transiston function)(4)q0Q,是初始状态;(Initial state)(5)F Q,是终结状态集。(Accepting states)(终止状态,接受状态)上述定义的另一个说法:确定型的有穷自动机确定型的有穷自动机(Deterministic Finite Automata:DFA)2022年10月29日星期六南京航空航天大学计算机学院 胡军6DFA例子q0q1q21000,11字母表:S=0,1状态集:Q=q0,q1,q2初始状态:q0终结状态:F=q0,q1状态集输入01q0q1q2q0q1q2q
4、2q2q1转换函数表 d:*问题:问题:1.接受什么特征的字符串?接受什么特征的字符串?2.状态状态q2起什么作用?起什么作用?2022年10月29日星期六南京航空航天大学计算机学院 胡军7这两个DFA所接受的字符串集合分别是什么?DFA 例子q0q1baabS=a,bq0q1q2q3q4aaaaabbbbbS=a,b2022年10月29日星期六南京航空航天大学计算机学院 胡军8o 设计一个DFA(字母表为0,1),接受如下字符串:o 设计一个DFA(字母表为0,1),接受如下特征的字符串:最多有三个1.q0q1011q20q31q4+0,1010DFA 例子L=010,1qeq0q1q01q
5、010qdie0,10100,11010,12022年10月29日星期六南京航空航天大学计算机学院 胡军9o 设计一个DFA(字母表为0,1),接受所有结尾是01的字符串。o 提示:DFA得记住 读入字符串的最后两位。DFA 例子qe01q0q1q00q10q01q11010100111002022年10月29日星期六南京航空航天大学计算机学院 胡军10o 设计一个DFA(字母表为0,1),接受所有结尾是101的字符串。DFA 例子2022年10月29日星期六南京航空航天大学计算机学院 胡军11例3.1 给出一个有穷自动机=(q0,q1,q2,q3,0,1,q0,q0)其中:转移函数具体定义如
6、下:(q0,1)=q1(q0,0)=q2 (q1,1)=q0(q1,0)=q3 (q2,1)=q3(q2,0)=q0 (q3,1)=q2(q3,0)=q1*DFA 例子2022年10月29日星期六南京航空航天大学计算机学院 胡军12有穷自动机的扩充定义o定义3.2 对于有穷自动机M=(Q,q0,F),它的扩充转移函数 ,是从Q*到Q的映射,其具体定义如下:(1)(q,)=q;(2)(q,wa)=(q,w),a)。其中qQ,w*,a。o例如,对于例3.1中的有穷自动机,就有:(q0,010)=(q0,01),0)=(q0,0),1),0)=(q0,),0),1),0)=(q0,0),1),0)=
7、(q2,1),0)=(q3,0)=q1。dddddddd2022年10月29日星期六南京航空航天大学计算机学院 胡军13有穷自动机的基本定义o 从到 的扩充是很自然的,就是 的特例(当|x|=1时)。o 今后在提到FA的转移函数时,不再强调 这种写法,一律用表示,即的第二个变元既可以是单个字符也可以是一个字符串。ddd2022年10月29日星期六南京航空航天大学计算机学院 胡军14有穷自动机模型o开始时,“读头”指向带上的第一个输入符号,控制器中放的是FA的初始状态。然后,依据转移函数做动作:若控制器中的当前状态是q,且“读头”指向带上符号为a,则控制器中状态将变成p=(q,a),且“读头”向
8、右移指向带上下一个符号,如此可以继续进行下去。(注意:读头不能回头,只能一直向右移动)*2022年10月29日星期六南京航空航天大学计算机学院 胡军15有穷自动机的模型o定义 3.3 给出FA:M=(Q,q0,F),若(q0,x)=pF(x*),则称字符串字符串x被被M接受接受。进一步地,被M接受的全部字符串构成的集合,称为被有穷自动机M接受的语言接受的语言,并记为L(M)。用集合描述法就是 L(M)=x (q0,x)F。oFA所能接受的只是*的一部分子集,有很多*的子集是任何FA都不能接受的。2022年10月29日星期六南京航空航天大学计算机学院 胡军16从给定集合构造接受该集合的FAo例3
9、.3:设计一个接受能被5整除的二进制数的FA Mo用qs表示初始状态,用q0、q1、q2、q3、q4分别表示二进制数被5整除时余0(即能被5整除,所以它是终结状态。)、余1、余2、余3、余4的状态。2022年10月29日星期六南京航空航天大学计算机学院 胡军17o一个FA(字母表为0,1),接受所有结尾是101的字符串。o能否给FA增加猜测选择的能力?假设我们具有猜测何时输入串还剩下三个字符的能力。1.3 非确定的有穷自动机(NFA)qdie101还剩三个字符0102022年10月29日星期六南京航空航天大学计算机学院 胡军18NFAo 每个状态对同样的一个输入字符,可能有0,1,或者多条转换
10、发生(猜测).1010,1q0q1q2q32022年10月29日星期六南京航空航天大学计算机学院 胡军19NFA:可以进行猜测选择1010,1q0q1q2q3o 状态 q0 有两个标记为 1 的转换;o 读入1,NFA可以选择停留在q0,或者继续往前到状态q12022年10月29日星期六南京航空航天大学计算机学院 胡军20NFA:可以进行猜测选择1010,1q0q1q2q3o 状态q1 对于输入 1没有相应的转换;o q1 上读入1时,NFA就运行不下去了(die);而读入 0时候,NFA可以继续到状态q2;o 状态q2 类似的行为。2022年10月29日星期六南京航空航天大学计算机学院 胡军
11、211010,1q0q1q2q3o q3 没有任何转换出来;o q3 上如果读入0,1,NFA也运行进入死状态。NFA:可以进行猜测选择2022年10月29日星期六南京航空航天大学计算机学院 胡军22NFA:猜测的能力1010,1q0q1q2q3猜测是否已经到了最后三位字符的位置了?如果是,则猜测最后三位字符应该是与101相匹配判断是否到达输入字符串的最末端NFA的运行过程中某个时刻是会的运行过程中某个时刻是会同时处于多个状态中同时处于多个状态中,只要,只要输入串输入串x结束时结束时NFA所处的多个状态中所处的多个状态中至少有一个是接受状态至少有一个是接受状态,就判断就判断NFA接受接受x。2
12、022年10月29日星期六南京航空航天大学计算机学院 胡军23NFA的形式化定义o定义3.4 一个非确定的有穷自动机(Nondeterministic Finite Automata)简记为NFA,是一个五元组M=(Q,q0,F)其中Q、q0和F与确定的有穷自动机的含意相同,只是转移函数的定义不同,它是从Q2Q(Q的幂集)上的映射。o在FA中,的一般形式是(q,a)=p(q,pQ),而在NFA中,的一般形式是(q,a)=p1,p2,pk(piQ,i=1,2,k),或(q,a)=(空集)。o在NFA中转移函数的取值是一个状态集,即使只有一个状态p,也要写成集合形式p。2022年10月29日星期六
13、南京航空航天大学计算机学院 胡军24NFA的形式化定义o定义3.5 对于NFA M=(Q,q0,F),它的扩充转移函数 是从Q*2Q的映射,具体定义如下:(1)(q,)=q,(2)(q,wa)=p|p(r,a),r (q,w)。o对于例3.4中的NFA,(q0,01001)的求值过程如下图:dddd2022年10月29日星期六南京航空航天大学计算机学院 胡军25NFA接受的语言o定义3.7 给出NFA M=(Q,q0,F),若(q0,x)F非空(x*),则称字符串x被M接受接受。被NFA M接受的全体字符串称为M接受的语言,记作L(M)。也就是 L(M)=x x*,且(q0,x)F非空非空。2
14、022年10月29日星期六南京航空航天大学计算机学院 胡军26NFA与 DFA的等价o NFA 能识别(接受)DFA所识别(接受)的所有语言。(为什么?)o 反过来成立吗?任一个NFA都能转换成一个DFA,二者所识别的语言是相等的。YES2022年10月29日星期六南京航空航天大学计算机学院 胡军27NFA DFA:直观的理解100,1q0q1q2NFA:DFA:1q0q0 or q11q0 or q210002022年10月29日星期六南京航空航天大学计算机学院 胡军28NFA DFA:子集构造法(subset construction)100,1q0q1q2NFA:DFA:q0,q1q0,
15、q2q0,q1,q2q1,q2q0q1q2NFA中的任一个状态子集都是所构造的中的任一个状态子集都是所构造的DFA的一个状态的一个状态 2022年10月29日星期六南京航空航天大学计算机学院 胡军29NFA DFA:状态之间的转换100,1q0q1q2NFA:DFA:q0,q1q0,q2q0,q1,q2q1,q2q0q1q201010,1010101010,12022年10月29日星期六南京航空航天大学计算机学院 胡军30NFA DFA:确定DFA接受状态100,1q0q1q2NFA:DFA:q0,q1q0,q2q0,q1,q2q1,q2q0q1q201010,1010101010,1DFA中
16、包含中包含NFA接受状态的子集状态设为接受状态的子集状态设为accepting2022年10月29日星期六南京航空航天大学计算机学院 胡军31NFA DFA:消除无用的状态 100,1q0q1q2NFA:DFA:q0,q1q0,q2q0010101q0,q1,q2010q1,q2q1q201,1010,1将将DFA中不可达的状态消除掉。中不可达的状态消除掉。2022年10月29日星期六南京航空航天大学计算机学院 胡军32子集构造法的一般步骤NFADFA状态q0,q1,qn,q0,q1,q0,q1,q0,qn每个状态都是每个状态都是NFA的一个子集的一个子集。初始状态q0q0转换dd(qi1,q
17、ik,a)=d(qi1,a)d(qik,a)接受状态F Q F=S:S 包含 F中至少一个状中至少一个状态态 2022年10月29日星期六南京航空航天大学计算机学院 胡军33NFA-DFA等价性的形式化证明o 定理定理3.1 设设L是被一个非确定的有穷自动机接受的语是被一个非确定的有穷自动机接受的语言,则存在一个确定的有穷自动机也接受这个语言言,则存在一个确定的有穷自动机也接受这个语言L。证明 设 M=(Q,q0,F)是一个接受L的NFA,现在构造一个DFA M=(Q,q0,F),其中:Q=2Q,即Q的每一个子集作为Q的一个状态,若子集为q1,q2,qk,则 Q中状态记为q1,q2,qk;q0
18、=q0;F 2Q:F的每个元素至少包含F中的一个状态;的定义为:(q1,q2,qi,a)=p1,p2,pj 当且仅当 (q1,q2,qi,a)=p1,p2,pj (a)。2022年10月29日星期六南京航空航天大学计算机学院 胡军34NFA-DFA等价性的形式化证明o证明L(M)=L(M)=L。先证一个更一般的命题:(q0,x)=q1,q2,qk iff(q0,x)=q1,q2,qk(x*)。(3-1)对对x的长度的长度 x 用归纳来证明用归纳来证明。归纳基础归纳基础 x=0,即x=。因为(q0,)=q0=q0,(q0,)=q0。根据的定义。所以(3-1)式成立。归纳步骤归纳步骤 设对于|x|
展开阅读全文