版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1College of Computer Science & Technology, BUPT第五讲第五讲3.9 (part 2) 右线性语言的封闭性右线性语言的封闭性 3.10 双向和有输出的有限自动机双向和有输出的有限自动机 2College of Computer Science & Technology, BUPT右线性语言的封闭性右线性语言的封闭性 上节从文法产生的角度证明了右线性语言及其并,积,闭上节从文法产生的角度证明了右线性语言及其并,积,闭包是正则集;本节用有限自动机接受的语言来证明。包是正则集;本节用有限自动机接受的语言来证明。(书书P103)1.1.设设和
2、和是右线性语言,证明是右线性语言,证明为右线性语言为右线性语言 构造NFA M(Q ,T ,q0,F)QQ1Qq0 q0是新的起始状态当,q 否则 F =M形如形如: 3College of Computer Science & Technology, BUPT右线性语言的封闭性右线性语言的封闭性 设设和和是右线性语言,证明是右线性语言,证明为右线性语言为右线性语言(书书P104) 构造NFA M(Q ,T , q0, F), 其中Q=QQ q0 =q1 当q2F2 当q2F2 F =M形如形如: 4College of Computer Science & Technolog
3、y, BUPT右线性语言的封闭性右线性语言的封闭性 设设是右线性语言,证明是右线性语言,证明L*是右线性语言是右线性语言(书书P106) 构造构造NFA M(Q ,T ,q0,F), Q = Q1q q是新的起始状态是新的起始状态, F=1qL* 形如形如 5College of Computer Science & Technology, BUPT右线性语言的封闭性右线性语言的封闭性 设设是右线性语言,证明是右线性语言,证明 L 是右线性语言是右线性语言证明:证明:构造接受构造接受1的的M(Q ,T , q0, F)其中其中Q = Q1 是一个新状态是一个新状态 T T1 q0 =q
4、1 (Q11) (即将即将1的终止状态变为的终止状态变为M的非终止状态的非终止状态)定义为定义为: 当当aT1 ,则则(q,a)= 1(q,a) 保留原有函数保留原有函数当当aTT1,则则(q,a)= 遇到原来没有的字符全转至遇到原来没有的字符全转至.对任意对任意aT, (,a) 6College of Computer Science & Technology, BUPT右线性语言的封闭性右线性语言的封闭性 例例: (: (书书P108)P108) 对下图的对下图的1 , ,求求( (1 1) ) 7College of Computer Science & Technolo
5、gy, BUPT右线性语言的封闭性右线性语言的封闭性 例例: 设设DFA1(q,q,,q,q,q) 对,对,, 求求(1) 8College of Computer Science & Technology, BUPT右线性语言的封闭性右线性语言的封闭性 证明证明1是封闭的是封闭的 证明:证明:11 得证得证6. 证明右线性语言对于置换是封闭的证明右线性语言对于置换是封闭的. (略略 - 自学自学) 9College of Computer Science & Technology, BUPT补充: 构造自动机的“交”通过构造证明,说明正则语言在交运算下封闭。通过构造证明,说明
6、正则语言在交运算下封闭。设 两个DFA M1(Q1 ,T ,1,q1,F1) M2(Q 2,T ,2,q2,F2)构造新的 DFA M, M(Q1 x Q 2,T,q1,q2 ,F1 x F2)对一切对一切p1 Q1, p2 Q2, a T,(p1,p2, a)= 1(p1, a), 2(p2, a)则L(M)= L(M1)L(M2)10College of Computer Science & Technology, BUPT有关正则语言的几个判定性质 判定正判定正则则语言是否为空语言是否为空 判定正判定正则则语言中是否包含特定的字符串语言中是否包含特定的字符串 判定两个正判定两个正
7、则则语言是否相等语言是否相等11College of Computer Science & Technology, BUPT 判定正判定正则则语言是否为空语言是否为空 可由如下步骤递归地计算可达状态集合:可由如下步骤递归地计算可达状态集合:- 判定算法判定算法 测试从测试从 初态是否可达某一终态初态是否可达某一终态. 先求所有先求所有可可 达状态的集合,若其中包含终态,则该正规语言非空,达状态的集合,若其中包含终态,则该正规语言非空,否则为空语言。否则为空语言。- 算法复杂度算法复杂度 设有限自动机的状态数目为设有限自动机的状态数目为 n,上述判上述判定定 算法的复杂度为算法的复杂度为
8、 O(n2). 基础基础:初态是可达的:初态是可达的: 归纳归纳:设状态:设状态 q 是可达的,若对于某个输入符号或是可达的,若对于某个输入符号或 , q 可转移到可转移到 p ,则则 p 也是可达的:也是可达的:12College of Computer Science & Technology, BUPT 判定正判定正则则语言中是否包含特定的字符串语言中是否包含特定的字符串- 判定算法判定算法 从初态开始,处理输入字符串从初态开始,处理输入字符串 w ,如果可如果可 以结束于某一终态,则该正规语言中包含以结束于某一终态,则该正规语言中包含 w,否则不否则不 包含包含 w 。- 算法
9、复杂度算法复杂度 设输入字符串设输入字符串w 的长度的长度 |w|=n,上述判上述判定定 算法的复杂度为算法的复杂度为 O(n). 以以 DFA 表示正则语言表示正则语言 以正则表达式表示正则语言以正则表达式表示正则语言将其转化为等价将其转化为等价的的 NFA ,然后执行上述过程然后执行上述过程. 以以 NFA (或或NFA )表示正则语言表示正则语言 可以将其转化为可以将其转化为等价的等价的 DFA,然后执行上述过程;也可以直接模拟其处然后执行上述过程;也可以直接模拟其处理字符串的过程,判定算法的复杂度为理字符串的过程,判定算法的复杂度为 O(n2s), 其中其中n为为字符串的长度,字符串的
10、长度,s为为NFA (或或NFA )的状态数目的状态数目.13College of Computer Science & Technology, BUPT 判定两个正判定两个正则则语言是否相等语言是否相等 判定算法判定算法 可由采取如下步骤:可由采取如下步骤: 算法复杂度算法复杂度 以上算法的复杂度即填表算法的以上算法的复杂度即填表算法的 复杂度,其上限为复杂度,其上限为O(n4) ;可以适当设计填表可以适当设计填表 算法的数据结构,使其复杂度降为算法的数据结构,使其复杂度降为 O(n2) .1. 先将两个正则语言的表达形式都转化为先将两个正则语言的表达形式都转化为 DFA ,问题问题
11、 转化为两个转化为两个DFA是否是等价的;是否是等价的;2. 适当重命名,使两个适当重命名,使两个DFA没有重名的状态;没有重名的状态;3. 将两个将两个DFA相并,相并, 构造一个新的构造一个新的DFA ,原来的终态原来的终态仍是终态,转移边不发生任何变化,取任何一个状态仍是终态,转移边不发生任何变化,取任何一个状态为初态;为初态;4. 对新构造的对新构造的DFA运用填表算法,如果原来运用填表算法,如果原来DFA的两个的两个初态不可区别,则这两个正则语言相等,否则不相等初态不可区别,则这两个正则语言相等,否则不相等.14College of Computer Science & Te
12、chnology, BUPT双向有限自动机双向有限自动机 (2DFA)定义定义:n读入一个字符之后,读头既可以左移一格,也可以右移一格,或者不移动的有限自动机, 为双向有限自动机.n确定的双向有限自动机: 每读入一字符,必须向左或右移动,不考虑不移动的情况. 15College of Computer Science & Technology, BUPT2DFA的形式定义2DFA M(Q ,T , q0, F) 是从是从QTQL,R的映射的映射.即即 (q,a)=(p,R) 或或 (q,a)=(p,L) (在状态在状态q, 读入读入a, 进入状态进入状态p,读头向右读头向右(向左向左)
13、移一格)移一格) 用格局描述用格局描述: 设有设有1q2 1 - 已输入串已输入串q - 当前状态当前状态 2 - 待输入串待输入串(q,am+1)=(p,R)的格局表示的格局表示:a1 a2am q am+1an a1 a2am+1 p am+2an(q,am+1)=(p,L)的格局表示的格局表示:a1 a2am q am+1an a1 a2am-1 p am am+1an 16College of Computer Science & Technology, BUPT2DFA2DFA接受的字符串集合是接受的字符串集合是: L(M)=| q*q,q F例例: 书书P113 例例1.
14、其状态图为其状态图为b,R17College of Computer Science & Technology, BUPT有输出的有限自动机有输出的有限自动机 有输出的有限自动机是有限自动机的一个类型有输出的有限自动机是有限自动机的一个类型.这类自动机在有字符输入时,不仅存在状态转换,这类自动机在有字符输入时,不仅存在状态转换,同时引起字符输出同时引起字符输出. 根据输入字符,自动机状态,输出字符三者之根据输入字符,自动机状态,输出字符三者之间关系,可有两类有输出的自动机间关系,可有两类有输出的自动机:n 米兰机米兰机(Mealy): 输出字符与输入字符及状态有关输出字符与输入字符及状
15、态有关.n 摩尔机摩尔机(Moore): 输出字符仅与状态有关输出字符仅与状态有关.最大优点最大优点: : 节省状态节省状态! ! 18College of Computer Science & Technology, BUPT米兰机米兰机米兰机米兰机形式定义形式定义: M(Q ,T ,R, g , q0)其中其中 Q 有限状态集合有限状态集合 T 有限输入字母表有限输入字母表 R 有限输出字母表有限输出字母表 : QTQ 转换函数转换函数 g : QTR 输出函数输出函数 q0: 初始状态初始状态 q0 Q和和g函数共同描述了米兰机的工作状况函数共同描述了米兰机的工作状况. 19Co
16、llege of Computer Science & Technology, BUPT米兰机米兰机米兰机米兰机图形表示图形表示: (p(p,a)=qa)=q g(pg(p,a)=ba)=b Pqa/b例例: (P115 例2) 设计米兰机,其输出是输入字符个数的模3数解解: 输出字母表R=0,1,2. 设输入字母表T=a, M的状态数应有3个,记录已输入字符个数的模3数.Q=q0,q1,q2 分别表示输入字符数模3 = 0, 1, 220College of Computer Science & Technology, BUPT米兰机米兰机例例: (P115 例3)设计米兰机
17、, 其输入0,1*, 当输入串有奇数个1时,输出1. 当输入串有偶数个1时,输出0. 解解: 需二个状态q0,q1 q0 表示输入串有偶数个1, q1 表示输入串有奇数个121College of Computer Science & Technology, BUPT课堂练习课堂练习 设语言L由0,1组成,且字符串的最后两个字符相同. 构造米兰机M ,输出Y/N表示输入串是否属于L.解解: 设状态集Q为 初始状态q0 状态p0 表示输入串最后字符为0 状态p1 表示输入串最后字符为122College of Computer Science & Technology, BUPT
18、课堂练习课堂练习练习练习: (书书P122 19题题) 设计米兰机,输入是0,1组成的串,要求输出串对输入串延迟两个时间单位. 解: M(Q ,T ,R, g , q0), T=0,1 R=0,1 分析分析:可能的状态-即一个输入在输出前可能处于的状态 Q: 00 q00 01 q01 10 q10 11 q11 Q= q00, q01, q10, q1123College of Computer Science & Technology, BUPT课堂练习课堂练习初始情况初始情况: 刚开始工作时输入前两个字符,输出为 24College of Computer Science &am
19、p; Technology, BUPT摩尔机摩尔机 摩尔机的输出只与到达的状态有关摩尔机的输出只与到达的状态有关 形式定义形式定义: M(Q ,T ,R, g , q0) g : Q R: Q T Q 图形表示图形表示: (q(q,a)= pa)= p g (p)= bg (p)= b2 2 q,b1p,b2a25College of Computer Science & Technology, BUPT摩尔机摩尔机例例: (书P117 例4)设计自动机,其输入串0,1*,输出是(n1- n0) mod 4,n0是中含0的个数,n1是中含1的个数。四个状态 q0, q1, q2, q3 分别输出0,1,2,3 解解: 需四个状态, 取输出字母表 R=0,1,2,3. 26College of Computer Sci
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玉器公司宣传片拍摄脚本
- 小学生快乐运动健康生活小学主题班会课件
- 广告投放效果评估及后续策略联系函8篇范本
- 职业培训课程开发方案手册
- 技术部新服务器上线通知函5篇范本
- 公共场所食品安全事故处理流程管理人员预案
- 2026年甘肃省定西市中考生物试卷附答案
- 劳动创造美好奋斗成就梦想小学主题班会课件
- 文化创意产业IP价值开发策略方案
- 树立正确观念远离饮食误区小学主题班会课件
- 2026年大连市城市建设投资集团有限公司招聘41人笔试参考题库及答案详解
- 2026内蒙古呼伦贝尔鄂温克族自治旗伊敏河军粮供应有限责任公司招聘工作人员3人笔试备考试题及答案详解
- 2025广西河池市小微企业融资担保有限责任公司公开招聘3人笔试历年参考题库附带答案详解
- 2026年农业发展银行(湖南省分行)校园招聘笔试参考试题及答案详解
- 2026年高考北京卷理综化学含解析及答案
- 2025年乡村振兴背景下动物疫病防控体系建设
- 交警素质课件
- 数据库应用技术-003-国开机考复习资料
- GA/T 1162-2014法医生物检材的提取、保存、送检规范
- 政府OA办公自动化系统
- 检测工作的分包管理程序
评论
0/150
提交评论