求大佬解答 确定确定有穷自动机的化简简

热门搜索:
下载费用:10 元 &
编译原理词法2(NFA、DFA的确定化和化简) 第 3 讲,编译原理,西北农林科技大学本科教程,主讲教师:赵建邦,第二章《词法分析》2.3-2.5节2.3 正规表达式与有限自动机简介2.4 正规表达式到优先自动机的构造2.5 词法分析器的自动生成重点掌握 有限自动机理论有限自动机的构造、确定化和化简,本讲目标,第二章 词法分析,2.1 词法分析的设计方法2.2 一个简单的词法分析器2.3 正规表达式与有限自动机简介2.4 正规表达式到有限自动机的构造2.5 词法分析器的自动生成,2.3.2:有限自动机:可以自动识别单词的机器有限自动机(Finite Automation):FA是一个状态转换图,“有限”指的是状态有限。当前状态读入一个字符后,和后继状态的转换有以下三种情形: (1)后继状态为自身 (2)后继状态只有一个 (3)后继状态有多个如果每次转换的后继状态是唯一的,则称它为确定有限自动机(Deterministic FA)如果每次转换的后继状态不是唯一的,则称它为非确定有限自动机(Nondeterministic FA),2.3 正规表达式与优先自动机简介,2.3.2:有限自动机1、确定有限自动机(DFA):DFA是一个五元组,Md= (S, ∑, f, s0 , Z) ,其中:(1) S是一个有限状态集合,它的每个元素称为一个状态 (2) ∑是一个有穷字母表,它的每个元素称为一个输入字符f是一个从S×∑至S的单值映射,也叫状态转移函数s0∈S 是唯一的初态 是一个终态集,2.3 正规表达式与优先自动机简介,2.3.2:有限自动机1、确定有限自动机(例2.4):假定DFA Md =({s0, s1, s2},{a,b}, f , s0 ,{s2} ),状态转移函数: f(s0, a) = s1 f(s0, b) = s2 f(s1, a) = s1 f(s1, b) = s2 f(s2, a) = s2 f(s2, b) = s1,2.3 正规表达式与优先自动机简介,状态转换矩阵:,2.3.2:有限自动机2、非确定有限自动机(NFA):NFA是一个五元组,Md= (S, ∑, f, Q, Z) ,其中:(1) S是一个有限状态集合,它的每个元素称为一个状态 (2) ∑是一个有穷字母表,它的每个元素称为一个输入字符(3) f是一个从S×∑*至S的多值映射,也叫状态转移函数(4) Q∈S 是非空初态集(5) 是一个终态集NFA相比于DFA的特征:若干个初始状态 (2) f多值映射(3) 允许接收字和空字符ε,2.3 正规表达式与优先自动机简介,2.3.2:有限自动机2、非确定有限自动机(例2.5):假定NFA Mn =({s0, s1, s2},{a,b}, f , {s0 ,s2},{s2}),状态转移函数: f(s0, a) ={s2 } f(s0, b) ={s0,s2 } f(s1, a) = Ф f(s1, b) ={s2 } f(s2, a) = Ф f(s2, b) ={ s1 },2.3 正规表达式与优先自动机简介,,状态转换矩阵:,2.3.2:有限自动机(识别的语言)对于一个自动机FA 而言,如果存在一条从初始状态到终止状态的通路,通路上有向边所识别的字符依次连接所得到的字符串为α, 则称α可以为FA 所接受或者α为FA 所识别FA 所能识别的字符串集为FA 所识别的语言,记为L(M)FA的等价:对于任意两个FA M和 FA M’, 如果L(M)=L(M’), 则称M和M’等价对于任意一个NFA M,一定存在一个DFA M’与其等价,2.3 正规表达式与优先自动机简介,2.3 课堂例题,例2.5 接受与正规式(a|b) *abb相同的语言的DFA与NFA:,DFA识别abb aabb abab无论成功或者失败只需要运行一次,NFA识别abb aabb abab无论成功或者失败可能需要运行若干次,第二章 词法分析,2.1 词法分析的设计方法2.2 一个简单的词法分析器2.3 正规表达式与有限自动机简介2.4 正规表达式到有限自动机的构造2.5 词法分析器的自动生成,需要了解的等价性:1.如果R是字母表Σ上的一个正规式,则必然存在一个NFA M,使得L(M)=L(R);2.对于任意一个NFA M,一定存在一个DFA M’与其等价 ,即L(M)=L(M’);从正规式开始构造DFA的过程有以下几个步骤:1.由正规式构造NFA;2.由NFA构造与之等价的DFA(确定化)3.DFA的化简,2.4 正规表达式到有限自动机的构造(重点),2.4.1:由正规式构造等价的NFA1、对于给定的正规式R,将其表示成 称为“拓广转换图”其中X为初始状态,Y为终止状态2、对正规式中的三种运算,分别采用如下的对应转换规则,2.4 正规表达式到有限自动机的构造,Y,X,R,2.4 正规表达式到有限自动机的构造,例2.6 对给定正规表达式 b*(d|ad)(b|ab)+ 构造其NFA M,,X,按照正规式从左到右构造NFA:,[解答] 先用R+=RR*改造正规表达式,b*(d|ad)(b|ab)+ = b*(d|ad)(b|ab)(b|ab)*,2.4.2:NFA的确定化(相关概念)NFA的确定化:构造一个和NFA等价的DFA状态集合I的ε_闭包设I是FA M的状态子集,则以下状态属于ε_CLOSURE(I) : (1) 若si∈I,则si∈ ε_CLOSURE(I) ; (2) 若si∈I,则对从si出发经过任意条ε通路所能到达的 状态sj,都有sj ∈ ε_CLOSURE(I) 。定义Ia = ε_CLOSURE(J) ,其中: I={s1, s2,…, sn},J = f(I,a) = f(s1,a)∪f(s2,a)∪… ∪ f(sn,a),2.4 正规表达式到有限自动机的构造,,ε,1,,5,,2,,4,2.4 正规表达式到有限自动机的构造,例2.7 已知一状态转换图如下图所示,且假定I=ε_CLOSURE({1})={1,2},试求从状态集I出发经过一条有向边a能到达的状态集J和ε_CLOSURE(J),,6,,3,,7,,8,a,ε,a,ε,ε,a,ε,[解答] 状态集I经过一条a弧得到J,J = {5,3,4}J中的每一个状态经过任意条ε通路得到ε_CLOSURE(J) =Ia= {5,6,2,3,8,4,7},2.4.2:NFA的确定化(子集法) (1) 构造一张转换表,第一列记为状态子集I,对于不同的符号 (a∈Σ),在表中单设一列Ia ; (2) 表的首行首列置为ε_CLOSURE(s0),其中s0为初始状态; (3) 根据首行首列的I,为每个a求其Ia 并记入对应的Ia 列中, 如果此Ia 不同于第一列中已存在的所有状态子集I,则将其 顺序列入空行中的第一列; (4) 重复(3)直至对每个I及a均已求得Ia ,并且无新的状态子集 Ia加入第一列时为止; (5) 重新命名第一列的每一个状态子集,形成新的状态转换矩阵, 即为与NFA等价的DFA,2.4 正规表达式到有限自动机的构造,2.4 正规表达式到有限自动机的构造,例2.8 求正规表达式(a|b) *(aa|bb) (a|b) *对应的DFA M,[解答]首先根据正规式构造NFA M:,1.构造状态转换表:,{X,1,2},{1,2,3},{1,2,4},{1,2,3},{1,2,4},2.确定首行首列:ε_CLOSURE(s0),3.依次计算Ia和Ib 并更新首列,2.4 正规表达式到有限自动机的构造,{X,1,2},{1,2,3},{1,2,4},{1,2,3},{1,2,4},{1,2,3,5,6,Y},{1,2,4},{1,2,3,5,6,Y},{1,2,3},{1,2,4,5,6,Y},{1,2,4,5,6,Y},{1,2,3,5,6,Y},{1,2,4,6,Y},{1,2,4,6,Y},{1,2,3,6,Y},{1,2,3,6,Y},{1,2,4,5,6,Y},{1,2,3,6,Y},{1,2,4,5,6,Y},{1,2,3,5,6,Y},{1,2,4,6,Y},4.重复(3) ,直至无新状态加入首列为止,5.新的状态转换矩阵,0,1,2,3,4,5,6,1,3,1,3,6,6,3,2,2,4,5,4,4,5,0,1,2,3,4,5,6,1,3,1,3,6,6,3,2,2,4,5,4,4,5,得到新的状态转换图DFA:,2.4 正规表达式到有限自动机的构造,2.4.3:DFA的化简状态的等价:假设s1和s2是M的两个不同的状态,如果从s1出发能识别字符串α而停于终态,从s2出发也能识别α而停于终态。 反之也是成立的。称s1和s2等价,否则称它们可区分一个确定有限自动机M的化简是指:寻找一个状态数比M少的DFA M’,使得L(M)=L(M’)化简后的DFA满足两个条件: (1) 没有多余状态 (2) 状态集中不存在等价状态,2.4 正规表达式到有限自动机的构造,2.4.3:DFA的化简(方法) (1) 首先将DFA的状态集按照终态与非终态分为两个子集,形成 初始划分H (2) 对每个子集G进行如下变换:把G划分为新的子集,使得G的两个状态s1和s2属于同一子集,当且仅当对任何输入符号a,状态s1和s2的后继状态都属于同一子集;用G划分出的所有子集替换G,形成新的划分Hnew (3) 如果Hnew == H,执行(4);否则令H = Hnew,重复执行(2) (4) 划分结束后,一个子集只对应一个状态,作为代表状态,删去 其它一切等价状态,并将对应的弧射向这个代表状态,2.4 正规表达式到有限自动机的构造,2.4 正规表达式到有限自动机的构造,例2.8 求正规表达式(a|b) *(aa|bb) (a|b) *对应的DFA M,[解答] 画出例2.8未化简的DFA:,(1)初始划分集合1={0,1,2} ,集合2={3,4,5,6},(2)考察{0,1,2}:0a,0b,1b,2a 在集合1;1a, 2b在集合2; 因此划分为{0}{1}{2}; 考察{3,4,5,6}: 3a,4a,5a,6a在集合2;3b,4b,5b,6b在集合2; 因此不进行划分。,,,2.4 正规表达式到有限自动机的构造,例2.8 求正规表达式(a|b) *(aa|bb) (a|b) *对应的DFA M,[解答],(3) 划分的最终结果为 {0} 、{1}、{2}、{3,4,5,6}; 对其进行重命名:0、1、2、3,(4) 得到新的状态转换矩阵和化简后的DFA,如下所示:,2.4 正规表达式到有限自动机的构造,例2.8 求正规表达式(a|b) *(aa|bb) (a|b) *对应的DFA M,NFA M:,化简前的DFA M:,化简后的DFA M:,2.4 正规表达式到有限自动机的构造,例2.8 求正规表达式(a|b) *(aa|bb) (a|b) *对应的DFA M,NFA M:,
文档加载中……请稍候!
下载文档到电脑,查找使用更方便
10 元 &&0人已下载
还剩页未读,继续阅读
&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>一、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>本站提供全自助服务,购买后点击下载按钮可以下载到你电脑或手机(系统不会发送文档到您的邮箱),请注意查看下载存放位置;&/span>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>二、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>本站具有防盗链功能,所以不要使用迅雷、旋风、网际快车等第三方辅助下载工具(不支持&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>QQ浏览器&/span>),否则下载下来的文件只是网页或乱码;&/span>&br/>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>三、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>由于网络原因、下载知识欠缺、本地电脑&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>或&/span>手机阻止下载等问题无法解决时,需要提供以下&/span>&span style=&font-family: 微软雅黑, &Microsoft YaHei&; color: rgb(255, 0, 0);&>任意一条信息&/span>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>给我们,我们才能更及时地为你服务:&/span>&br/>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.1、如果是注册的会员,请告诉我们你的会员账号;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.2、如果是游客下载的,请告诉我们你下载时填写的手机或者邮箱;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.3、如果是微信或QQ快捷登陆的,请告诉我们你的微信或QQ昵称;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.4、如果这些你仍然无法确定,请告诉我们你的付款单号(我们可以通过单号反过来查询你的账号和下载记录)&/span>&a href=&https://www.jinchutou.com/i-93.html& target=&_blank& style=&text-decoration: color: rgb(255, 192, 0); font-family: 微软雅黑, &Microsoft YaHei&;&>&span style=&color: rgb(255, 192, 0); font-family: 微软雅黑, &Microsoft YaHei&;&>看看什么是单号?&/span>&/a>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>;&/span>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>四、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>需要下载哪份文档,请发送文档网址,而不是截图,更不要直接把标题给我们;&/span>&br/>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>五、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>其它下载常见问题详见:&/span>&a href=&https://www.jinchutou.com/info-0-23-1.html& target=&_blank& style=&font-family: 微软雅黑, &Microsoft YaHei&;&>https://www.jinchutou.com/info-0-23-1.html&/a>&br/>&/p>&p>&br/>&/p>" /> &span id=&_baidu_bookmark_start_2& style=&display: line-height: 0&>?&/span>&span id=&_baidu_bookmark_start_4& style=&display: line-height: 0&>?&/span>&/p>&p>&span style=&font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>& & 鉴于本网发布稿件来源广泛、数量较多, 系统审核过程只针对存在明显违法有害内容(如色情、暴力、反动、危害社会治安及公共安全等公安部门明文规定的违法内容)进行处理,难以逐一核准作者身份及核验所发布的内容是否存在侵权事宜, 如果著作权人发现本网已转载或摘编了其拥有著作权的作品或对稿酬有疑议, 请及时与本网联系删除。&/span>&/p>&p>&strong style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 white-space: background-color: rgb(255, 255, 255);&>& & 侵权处理办法参考版权提示一文:&/strong>&a href=&https://www.jinchutou.com/h-59.html& target=&_blank& textvalue=&https://www.jinchutou.com/h-59.html&>https://www.jinchutou.com/h-59.html&/a>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>&&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>1、如涉及内容过多,需要发送邮箱,请电子邮箱到,我们会及时处理;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>2、系统一旦删除后,文档肯定是不能下载了的,但展示页面缓存需要一段时间才能清空,请耐心等待2-6小时;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>3、请版权所有人(单位)提供最起码的证明(证明版权所有人),以便我们尽快查处上传人;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>4、请文明对话,友好处理;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>5、为了杜绝以前再有类似的侵权事情,可以为我们提供相应的关键字,便于管理人员添加到系统后能有效排除和抵制与您(贵单位)相关版权作品上传;&/span>&/p>&p>&span id=&_baidu_bookmark_end_5& style=&display: line-height: 0&>?&/span>&span id=&_baidu_bookmark_end_3& style=&display: line-height: 0&>?&/span>&/p>" /> &span style=&color: rgb(85, 85, 85); font-family: 微软雅黑; background-color: rgb(255, 255, 255);&>& & 为了维护合法,安定的网络环境,本着开放包容的心态共建共享金锄头文库平台,请各位上传人本着自律和责任心共享发布有价值的文档;本站客服对于上传人服务前,有以下几点可提前参阅:&/span>&/p>&p>&span style=&color: rgb(85, 85, 85); font-family: 微软雅黑; background-color: rgb(255, 255, 255);&>1、本站上传会员收益见:&a href=&https://www.jinchutou.com/h-36.html& target=&_blank&>https://www.jinchutou.com/h-36.html&/a> &/span>&/p>&p>2、本站不会为任何刚注册的上传会员特批解除上传限制,普通会员每天可以上传50份,值班经值会审核其上传内容,请自行观察自己上传的文档哪些在“临时转换中”(审核通过),哪些在审核拒绝中,连续坚持几天都没有任何文档被拒的情况下,根据文档质量和发布分类是否正常等考量合格后值班经理会特批升级会员等级,相应的权益也同时上升。&/p>&p>3、上传人本着友好、合作、共建、共享的原则,请耐心仔细的查看《&a href=&https://www.jinchutou.com/i-143.html& target=&_blank&>违禁作品内容处理规则》;&/a>&a href=&https://www.jinchutou.com/i-143.html& target=&_blank&>https://www.jinchutou.com/i-143.html&/a>&/p>&p>4、上传人可以观注本站公告,查看其它被公示永久封禁的原因&a href=&https://www.jinchutou.com/news-1.html& target=&_blank&>https://www.jinchutou.com/news-1.html&/a>&/p>&p>5、其它问题可以参阅上传常见问题指引:&a href=&https://www.jinchutou.com/info-0-25-1.html& target=&_blank&>https://www.jinchutou.com/info-0-25-1.html&/a>&/p>" />【图文】编译原理词法分析__有穷自动机_算法_DFA化简_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
编译原理词法分析__有穷自动机_算法_DFA化简
阅读已结束,下载本文到电脑
想免费下载本文?
登录百度文库,专享文档复制特权,积分每天免费拿!
你可能喜欢自动机理论整理
:可以任意转载,但转载时必须标明原作者charlee
、原始链接
以及本声明。
程序编译的第一个阶段是词法分析
,即把字节流识别为记号
)流,提供给下一步的语法分析
过程。而识别记号的方法就是正则表达式的分析。本文介绍利用有限自动机
分析表达式的方法。
有字母表中的符号组成的有限长度的序列。记号s
的记号称为空记号
有限自动机(Finite State Automaton)
为研究某种计算过程而抽象出的计算模型。拥有有限个状态,根据不同的输入每个状态可以迁移到其他的状态。
非确定有限自动机(Nondeterministic Finite Automaton)
,由以下元素组成:
有限状态集合S
有限输入符号的字母表Σ
状态转移函数move
开始状态 sSUB{0}
结束状态集合F
自动机初始状态为sSUB{0}
,逐一读入输入字符串中的每一个字母,根据当前状态、读入的字母,由状态转移函数move
控制进入下一个状态。如果输入字符串读入结束时自动机的状态属于结束状态集合F
,则说明该自动机接受该字符串,否则为不接受。
确定有限自动机(Deterministic Finite Automaton)
的一种特例,有以下两条限制:
对于空输入ε
,状态不发生迁移;
某个状态对于每一种输入最多只有一种状态转移。
将正则表达式转换为NFA(Thompson
将正则表达式转换为NFA(Thompson
字母表Σ上的正则表达式r
能够接受L(r)
首先将构成r
的各个元素分解,对于每一个元素,按照下述规则1
出现了多次,那么对于a
的每次出现都需要生成一个单独的NFA
之后依照正则表达式r
的文法规则,将生成的NFA
按照下述规则3
组合在一起。
对于空记号ε
,生成下面的NFA
的字母表中的元素a
,生成下面的NFA
令正则表达式s
分别为N(s)
,按照以下的方式生成NFA N(s|t)
,按照以下的方式生成NFA N(st)
,按照以下的方式生成NFA N(s*)
本身的NFA N(s)
能够正确地识别正则表达式,并且具有如下的性质:
的状态数最多为r
中出现的记号和运算符的个数的2
的开始状态和结束状态有且只有一个。
的各个状态对于Σ
中的一个符号,或者拥有一个状态迁移,或者拥有最多两个ε
,根据正则表达式 r=(a|b)*abb
可以生成以下的NFA
使用以下的算法可以将NFA
转换成等价的DFA
能够接受与N
相同语言的DFA D
本算法生成D
对应的状态迁移表Dtran
的各个状态为NFA
的状态集合,对于每一个输入符号,D
中可能的状态迁移。
定义以下的操作。
ε-closure(s)
出发,仅通过ε
迁移能够到达的NFA
的状态集合
ε-closure(T)
中包含的某个NFA
出发,仅通过ε
迁移能够到达的NFA
的状态集合
move(T, a)
中包含的某个NFA
出发,通过输入符号a
迁移能够到达的NFA
的状态集合
令 Dstates
中仅包含ε-closure(s),
并设置状态为未标记;
while Dstates
中包含未标记的状态T do
各输入记号a do
ε-closure(move(T, a));
不在Dstates
追加到 Dstates
中,设置状态为未标记;
Dtrans[T, a] := U;
ε-closure(T)
的计算方法如下:
中的所有状态入栈;
设置ε-closure(T)
的初始值为T;
从栈顶取出元素t;
出发以ε为边能够到达的各个状态u do
不在ε-closure(T)
追加到ε-closure(T)
将上面生成的NFA
最初,Dstates
内仅有ε-closure(0) = A = {0, 1, 2, 4, 7}
。然后对于状态A
,对于输入记号a
,计算 ε-closure(move(A, a))
ε-closure
({0, 1, 2, 4, 7}, a)) =
ε-closure
({3, 8}) = {1, 2, 3, 4, 6, 7, 8}
,即 B={1, 2, 3, 4, 6, 7, 8}, Dtran[A, a]=B
。对于状态A
,由输入记号b
能够到达的仅有4-&5
,因此 C =
ε-closure
({5}) = {1, 2, 4, 5, 6, 7}
,即 Dtran[A, b] = C
以此类推,可得到以下的状态和Dtran
A = {0, 1, 2, 4, 7}
D = {1, 2, 4, 5, 6, 7, 9}
B = {1, 2, 3, 4, 6, 7, 8}
E = {1, 2, 4, 5, 6, 7, 10}
C = {1, 2, 4, 5, 6, 7}
由此得出DFA
如下图所示。
给定正则表达式r
和输入记号序列x
是否能够接受x
的情况下,由正则表达式生成NFA
的时间复杂度为O(|r|)
,另外由于NFA
的状态数最多为r
倍,因此空间复杂度为O(|r|)
判断是否接受x
时,时间复杂度为O(|r|
。因此,总体上处理时间与 r
的长度之积成比例。这种处理方法在x
不是很长时十分有效。
如果使用DFA
,由于利用DFA
判断是否接受x
与状态数无关,因此时间复杂度为O(|x|)
的状态数与正则表达式的长度呈指数关系。例如,正则表达式 (a|b)*a(a|b)(a|b)...(a|b)
,尾部有 n-1
的话, DFA
最小状态数也会超过 2SUP{n}
  定义1DFA
一个确定的有穷自动机M
是一个五元组,M=( K,Σ, f , S , Z),
是一个有穷集,
其元素称为状态;Σ
是一个有穷字母表,
其元素称为输入符号;S
称为初态;Z? K,
是终态集;f
是转换函数,
是K×Σ→K
上的映射,f(ki,a)=kj,(ki
表示状态ki,
转换为状态kj
无用状态从自动机的开始状态出发,
任何输入串也不能到达的那个状态;
或者从这个状态没有通路到达终态的状态。
等价状态如果说两个状态s
应满足如下条件:(a)
一致性条件:s
必须同时为终态或为非终态;(b)
蔓延性条件:
对于所有输入符号,
必须转换到等价的状态里。
  一个DFAM
可以通过消除无用状态和合并等价状态而转化为一个最小化的与之等价的DFAM’
。该过程称为DFA
  对一个DFAM
最少化的基本思想是:
的状态集划分为一些不相交的子集,
使得任何两个不同子集中的状态是(
而同一子集的任何两个状态是等价的。具体算法过程描述如下:
划分为终态和非终态两个子集,
形成初始划分P;
记为P= { I1 , I2 ,
则对每一个Ii
考察: I i a = f ( I i , a) ,
中的状态分别落于P
个不同的子集,
个更小的状态子集I i1 , I i2 ,
所细分。令细分后所得的状态集合为P
重复步骤(2 )
直到直至所含的子集数不再增加为止,Pnew =P;
中的每个子集I i ,
若该子集包含原有的初态,
则此代表状态便为最小化后M
该子集包含原有的终态,
则此状态便为最小化后的终态;
删去状态集中的所有死状态,
即得到化简后的M’
  下面我们通过一个例子来看一下该算法中存在的问题。
  使用上述算法进行化简M:
初始划分P0={{0},{1,2}},
含有两个子集I1
由于I2a=I2b=2
没有新集合增加,
故可以得到化简后的M’,
  图1 DFA M
  图2 DFA M’
  化简后的M’
是否等价呢?
对于符号串ba,
原来的DFAM
而化简后的M’
这说明二者并不等价。
最小化算法的改进
  通过分析上述化简过程,
我们可以找出算法问题所在。算法步骤2
中涉及到集合运算,
而忽略了空集对于算法的影响。根据定义3,
要判断两个状态是否等价必须对于所有输入符号检查一遍,
看它们分别转到等价的状态中,
显然二者不等价。而在算法中,
把状态子集{1,2}
后还是转到它自身,
所以就出现错误了。
  某个状态下不能接受某个输入符号即为出错,
故上述算法没有考虑到出错情况。因此我们可以对上述算法进行如下改进:
增加一个出错状态error,
划分为终态、非终态、出错三个子集,
形成初始划分P;
中每个子集Ii ,
考察每一个a
∈Σ,I i a = f ( I i , a)
特别地如果Ii
中某个状态Iij
则另f(Iij,a)=error
中的状态分别落于P
个不同的子集,
个更小的状态子集I i1 , I i2 ,
所细分。令细分后所得的状态集合为P
删去状态集中的所有死状态和出错状态,
即得到化简后的M’
  步骤(3)
与原算法相同。使用改进后的分割算法对例1
重新进行化简,
显然化简得到的M’
即其本身就是最简的DFA
  有穷自动机是词法分析器的基础,
也是编译原理课程中讲授的重点和难点之一。本文使用简单的实例分析了目前通用教材中“
最小化的问题和漏洞,
并提出了一种切实可行的改进算法。本算法在教学和多次实例中证明是可行的,
这对于从事该课程教学的教师将是很有裨益的。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!形式语言与自动机(第2版)
由""直接销售和发货 并提供售后服务
查看是否享有优惠(30天免息、任性分期)
使用享优惠(30天免息、任性分期),立即
请选择您需要的分期方式
商家满意度
与同行业相比
商品评分:分
服务态度:分
物流速度:分
1分钱畅读全场,海量书籍不限量任你看
杨娟、石川、王柏著著
出版社:其他
出版时间:
印刷时间:
开本:大16开
装帧:平装
本商家商品保证正品行货,严格按照国家三包政策提供售后服务,因质量问题产生的退换货服务运费由本店承担。
亲爱的顾客,为保障您的权益,请您对配送商品查验确认合格后签收,如有问题,请及时与商家联系。如需退货,请将包装一并寄回哦。
本站商品信息均来自于苏宁云台商家,其真实性、准确性和合法性由信息发布者(商家)负责。本站不提供任何保证,并不承担任何法律责任。因厂家会在没有任何提前通知的情况下更改产品包装、产地或者一些附件,本站不能确保客户收到的货物与网站图片、产地、附件说明完全一致,网站商品的功能参数仅供参考,请以实物为准。若本站没有及时更新,请您谅解!
易购价:易购价为商品的销售价,是您最终决定是否购买商品的依据。
参考价:商品展示的参考价(或划横线价),可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在苏宁易购平台或销售商门店曾经展示过的挂牌价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价、销售商门店挂牌价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:如无特殊说明,折扣指销售商在参考价或划横线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价、销售商门店挂牌价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。
异常问题:商品促销信息以商品详情页“促销”信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。
如果您发现了更低价格,请告诉我们。我们将认真对待您的每一份建议,确保提供最优质的服务及最优惠的价格。
易购价:& 21.9
请选择您所发现的位置:
* 商品网址:
线下实体店
* 实体店名称:
提交成功,感谢您的反馈
该商品在当前城市正在进行
抢购价:& 38.00
易购价:& 38.00
注:参加抢购将不再享受其他优惠活动
亲,很抱歉,您购买的宝贝销售异常火爆,让小苏措手不及,请稍后再试~
看不清楚?
亲,大宗购物请点击小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
您已成功将商品加入收藏夹

我要回帖

更多关于 化简求值题及答案 的文章

 

随机推荐