《形式语言与自动机》课件ch3.9-3.10.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《形式语言与自动机》课件ch3.9-3.10.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言与自动机 形式语言 自动机 课件 ch3 3.10
- 资源描述:
-
1、12023-5-22School of Computer Science,BUPT3.9 右线性语言的性质右线性语言的性质主要内容:主要内容:DFA的极小化泵浦引理右线性语言的封闭性22023-5-22School of Computer Science,BUPT确定有限自动机确定有限自动机DFA的化简的化简(极小化极小化)对DFA M的极小化是找出一个状态数比M少的DFA M1,使满足 L(M)=L(M1)1等价和可区分的概念 设DFA M=(Q,T,q0,F)对不同的状态q,qQ 和每个T*,如果有(q,)*(q,)必有(q,)*(q,)且qF,则称q与q状态等价.记为qq 否则,称q,q
2、可区分。32023-5-22School of Computer Science,BUPT确定有限自动机确定有限自动机DFA的化简的化简2不可达状态 如果不存在任何T*,使(q,)*(q,),则称状态qQ为不可达状态。3 最小化 若DFA 不存在互为等价状态及不可达状态,则称DFA 是最小化的。42023-5-22School of Computer Science,BUPT最小化算法最小化算法 一个DFA 的最小化,是把的状态集构成一个划分。即:任何两个子集的状态都是可区分的;同一子集中的任何两个状态都是等价的。之后,每个子集用一个状态代表,并取一个状态名。构成划分的步骤构成划分的步骤:1.
3、构成基本划分 =,”,(为终态集,”为非终态集)2.细分=1,2,n,i i =q,q,q当输入任意字符a时,若i中的状态经标a的边可到达的状态集的元素分属于两个不同的子集中,则将i 细分为两个子集.重复步骤(2),直至不可再细分,得到1.若1中有不可达状态,将其删除,1便是最小化的.52023-5-22School of Computer Science,BUPT例例(1)q,q为不可达状态,删除之.(2)Q=q,q,q,q,q,=q,q,q,q,q 构成基本划分 =,”(a)对于=q,q,对字符a,有(q,a)=q,(q,a)=q q,q 同一子集.对字符b,有(q,b)=q,(q,a)=
4、q q,q 同一子集.=q,q 不能再细分.(b)对于”=q,q,q对a,(q,a)=q,(q,a)=q,(q,a)=q q,q同一子集对b,(q,b)=q,(q,b)=q,(q,b)=q q,q,q 同一子集 将再分解.=q,q1,q3,(c)重复步骤(2),q,q 不能再细分,可用q表示.q1,q3 不可再细分,用q1表示 q,q,q 62023-5-22School of Computer Science,BUPT计算状态集划分的算法计算状态集划分的算法 填表法填表法 填表算法(填表算法(table-filling algorithm)基于如下递归地基于如下递归地 标记可区别的状态偶对的
5、过程标记可区别的状态偶对的过程:-基础基础 如果如果 p 为终态,而为终态,而 q 为非终态,则为非终态,则 p 和和 q 标记标记 为可区别的;为可区别的;-归纳归纳 设设 p 和和 q 已标记为可区别的已标记为可区别的,如果状态如果状态 r 和和 s 通过某个通过某个 输入符号输入符号 a 可分别转移到可分别转移到 p 和和 q,即即 (r,a)=p,(s,a)=q,则则 r 和和 s 也标记为可区别的;也标记为可区别的;这是因为:这是因为:若若 p 和和 q 可为字符串可为字符串 w 区别区别,则则 r 和和 s 可可 为字符串为字符串 aw 区别区别.((r,aw)=(p,w),(s,
6、aw)=(q,w))72023-5-22School of Computer Science,BUPT计算状态集划分的算法计算状态集划分的算法 填表法填表法 填表算法举例填表算法举例212334455667xxxxxxxxxxxxx651Start3724aaaaaaabbbbbbb(1)区别所有终态和非终态区别所有终态和非终态(2)区别区别(1,3),(1,4),(2,3),(2,4),(5,6),(5,7)xxxxx(3)区别区别(3,4)x(4)结束结束.划分结果:划分结果:1,2,3,4,5,6,782023-5-22School of Computer Science,BUPT通过合
7、并等价的状态进行通过合并等价的状态进行 DFA 的优化的优化 步骤步骤 1.删除所有从开始状态不可到达的状态及与其相关的边删除所有从开始状态不可到达的状态及与其相关的边,设所得到的设所得到的 DFA 为为 A=(Q,T,q0,F);2.使用填表算法找出所有等价的状态偶对;使用填表算法找出所有等价的状态偶对;3.根据根据 2 的结果计算当前状态集合的划分块,每一划分的结果计算当前状态集合的划分块,每一划分 块中的状态相互之间等价,而不同划分块中的状态之块中的状态相互之间等价,而不同划分块中的状态之 间都是可区别的间都是可区别的.包含状态包含状态 q 的划分块用的划分块用 q 表示表示.4.构造与
8、构造与 A 等价的等价的 DFA B=(QB,T,B,q0,FB),其中其中 QB=q|q Q,FB=q|q F,B(q,a)=(q,a)92023-5-22School of Computer Science,BUPT通过合并等价的状态进行通过合并等价的状态进行 DFA 的优化的优化 举例举例 651Start3724aaaaaaabbbbbbb 划分结果:划分结果:1,2,3,4,5,6,7 等价的状态偶对为:等价的状态偶对为:(1,2),(6,7)新的状态集合:新的状态集合:1,3,4,5,6651Start34aaaabbbbba102023-5-22School of Compute
9、r Science,BUPT最小化的最小化的 DFA 课堂练习课堂练习 最小化下列最小化下列 DFA:651Start3724aaaaaaabbbbbbb 参考结果参考结果61Start34aaaabbbb112023-5-22School of Computer Science,BUPT针对正则语言的针对正则语言的 Pumping 引理引理 正则语言应满足的一个必要条件 用于判定给定的语言不是正则集。物理意义:物理意义:当给定一个正则集和该集合上一个足够长的字符串时,在该字符串中能找到一个非空的子串,并使子串重复,从而组成新的字符串。该新串必在同一个正则集内。定理:定理:设L是正则集,存在常
10、数k,对字符串 且,则可写成10,其中10,0,对所有的0有10i2。证明证明 设设 L 是是 DFA D=(Q,T,q0,F)的语言,的语言,取取 k=|Q|即可即可.122023-5-22School of Computer Science,BUPTDFA 的的“Pumping”特性特性 设 DFA D=(Q,T,q0,F),|Q|=n.对于任一长度不小于 n 的字符串 w=a1a2am,其中 mn,akT(1 k m),qQ,考察如下状态序列 p0=q p1=(q,a1)p2=(q,a1a2)pn=(q,a1a2an)pn+1=(q,a1a2an+1)pm=(q,a1a2am)由pige
11、onhole 原理,p0,p1,p2,pn 中至少有两个状态是重复的,即存在 i,j,0ijn,pi=pj.“pumping”特性:任一长度不小于状态数目 的字符串所标记的路径上,必然出现重复的状态.132023-5-22School of Computer Science,BUPTDFA 的的“Pumping”特性特性“pumping”特性:特性:如前如前,设设 DFA D=(Q,T,q0,F),|Q|=n,w=a1a2am(m n),则存在则存在 i,j,0 i j n,pi=pj,其中其中pk=(p0,a1a2ak),0 k m.若假定若假定p0=q0,pm F,即即w L(D).令令
12、w=xyz,其中:其中:x=a1a2ai,y=ai+1ai+2aj,z=aj+1aj+2am 则对任何则对任何k 0,都有都有 xykz L(D).(参考下图参考下图)Startp0pipmx=a1a2aiy=ai+1ai+2ajz=aj+1aj+2am142023-5-22School of Computer Science,BUPTPumping 引理的应用引理的应用(用于证明某个语言用于证明某个语言 L 不是正规语言)不是正规语言)证明步骤证明步骤 1.选任意的选任意的n.2.找到一个满足以下条件的串找到一个满足以下条件的串w L(长度至少为长度至少为n).3.任选满足任选满足w=xyz
13、 y|xy|n 的的x,y,z 4.找到一个找到一个 k 0,使使 xykz L.举例举例 证明证明L=anbn|n1 不是正则集不是正则集.证明证明:由泵浦引理,假设由泵浦引理,假设L是正则集,则对足够大的是正则集,则对足够大的n,anbn可写成可写成102,其中其中0 n 0中不可能含中不可能含 b+,否则不满足,否则不满足0|10|n.0只可能取只可能取 a+,设设|0|=k1,k为常数,为常数,取取i=0,有有1002=12=an-kbn,此时,此时,a,b字符个数不字符个数不同同,即新组成的串即新组成的串12 L.与假设矛盾,故与假设矛盾,故L不是正则集不是正则集.152023-5-
14、22School of Computer Science,BUPTPumping 引理的应用引理的应用 例例 证明证明kk的整数不是正则集的整数不是正则集.证明证明 假设假设L是正则集,取足够大的整数是正则集,取足够大的整数n,.有有102=n 2 n,00n,010n 取取i=2,有有n21022 n2+n (n+1)2 10i2 (串长不是整数的平方串长不是整数的平方)与假设矛盾。与假设矛盾。L不是正则集。不是正则集。162023-5-22School of Computer Science,BUPT右线性语言的封闭性右线性语言的封闭性 上节从文法产生的角度证明了右线性语言及其并,积,闭上
15、节从文法产生的角度证明了右线性语言及其并,积,闭包是正则集;本节用有限自动机接受的语言来证明。包是正则集;本节用有限自动机接受的语言来证明。(书书P72)1.1.设设和和是右线性语言,证明是右线性语言,证明为右线性语言为右线性语言 构造NFA M(Q,T,q0,F)QQ1Qq0 q0是新的起始状态当,q 否则 F=M形如形如:172023-5-22School of Computer Science,BUPT右线性语言的封闭性右线性语言的封闭性 2.设设和和是右线性语言,证明是右线性语言,证明为右线性语言为右线性语言(书书P73)构造NFA M(Q,T,q0,F),其中Q=QQ q0=q1 当
16、q2F2 当q2F2 F=M形如形如:182023-5-22School of Computer Science,BUPT右线性语言的封闭性右线性语言的封闭性 3.设设是右线性语言,证明是右线性语言,证明L*是右线性语言是右线性语言(书书P106)构造构造NFA M(Q,T,q0,F),Q=Q1q q是新的起始状态是新的起始状态,F=1qL*形如形如 192023-5-22School of Computer Science,BUPT右线性语言的封闭性右线性语言的封闭性 4.设设是右线性语言,证明是右线性语言,证明 L 是右线性语言是右线性语言证明:证明:构造接受构造接受1的的M(Q,T,q0
展开阅读全文