形式语言和自动机 5 DFA和NFA等价性和正则运算封闭性.pptVIP

形式语言和自动机 5 DFA和NFA等价性和正则运算封闭性.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 证明:设N1 = (Q1, ∑, δ1, q1, F1 )识别A1,构造识别A1*的自动机N = (Q, ∑, δ, q0, F )。 (1) Q = Q1∪{ q0} (2) q0是N的新的起始状态 (3) F = F1∪{ q0} (4) 定义δ如下:对于每一个q∈Q每一个a∈∑ε, 下式成立: * * * * Question Answer UJS Jiangsu University * * 形式语言与自动机 授课 人: 王 良 民MAIL:wanglm@ * * 第五章 DFA与NFA等价性 及正则运算封闭性 5.1 NFA 与DFA的等价性 5.2 正则语言类在正则运算下的封闭性 5.2.1并运算下的封闭性 5.2.2 连接运算下的封闭性 5.2.3 星号运算下的封闭性 * * NFA、DFA识别相同的语言类。这个等价性是出人意料的——因为NFA好像比DFA的能力强,因此我们猜想它能识别更多的语言,但是却是非常有用的——因为对于给定的语言,描述识别这个语言的NFA又是比描述识别这个语言的DFA要容易得多。 如果两台机器识别相同的语言,则称它们是等价的。 * * 定理1 每一台非确定型有穷自动机都有一台等价的确定型有穷自动机 证明思路:设一个语言被一台NFA识别,必须证明存在一台DFA也识别这个语言。基本想法就是把NFA转换成模拟它的DFA。 * * “自己即自动化机”——如果我们自己是一台DFA自动机,如何模拟这台NFA? 在处理输入串的过程中,你需要记住什么?——放着手指的状态的集合——NFA中用多个“手指”放在每一个可能的活动状态上,用这种方法记住各个计算分支 设k是NFA的状态数,它有2k个状态子集。每一个子集对应模拟这台NFA的DFA必须记住的一种可能性,即这个DFA有2k个状态。幂集? 还需要给出起始状态和接受状态 * * 证明:设N = (Q, ∑, δ, q0, F )是识别语言A的NFA,要构造一台DFA为M,识别A。 在给出完整的构造以前,现考虑比较容易的情况,假设N没有空语句ε箭头。以后再把ε箭头考虑进来。 构造M = (Q’, ∑, δ’, q0’, F’ ) (1) Q’=P(Q) 幂集,表示的M状态是N的一个状态子集。 * * (2) 对于R∈Q’和a∈∑,令 δ’(R, a) = { q∈Q | 存在r∈R,使得q∈δ (r, a)} 如果R是M的一个状态,则它是N的一个状态子集。 当M在状态R读到符号a时,δ’(R, a)给出a把R中的状态转移到…… 由于每一个状态可以转移到一个状态子集,所以取所有这些子集的并。 上述表达式也可以写成: * * q0’ = { q0} M开始时所在的状态对应于只含有N的起始状态的集合 F’= { R∈Q’| R包含N的一个接受状态} 如果当时N的可能状态中有一个接受状态,则机器M接受 * * 上述工作完成了没有ε箭头的NFA转化成DFA机器M。现在考虑ε箭头,现引入一个记号: E(R) = { q | 从R出发沿着0个或多个ε箭头可以到达q } 对于M的任意一个状态R, E(R)为从R出发只沿着ε箭头可以达到的状态集合,修改M的转移函数,使得在每一步之后,在沿着ε箭头可以达到的所有状态集合上也“放上手指”,用E(δ (r, a))代替δ (r, a): δ’ (R, a) = { q∈Q |存在r∈R,使得q∈E(δ (r, a))} * * 此外,还需要修改M的起始状态,增加由N的起始状态出发沿着ε箭头可以到达的所有状态上。从形式上说,就是把q0改为E({q0}) 至此,完成与NFA等价的DFA的构造,在计算的每一步,M进入的状态明显地对应于N此时可能处于的状态子集。证毕。 * * 说明: 上述证明使用的构造较为简单,可以比较显然的观察到其正确性。 对于更复杂的构造,需要证明它是否如所声称的那样工作。 通常这种证明采用对计算的步数做归纳的方式进行,后面将给一个这样的例子。 * * 推论:一个语言是正则的,当且仅当由一台非确定型有限状态自动机识别它。 例题1:用前面例子上的机器N4来说明把NFA转换成DFA的过程。 * * N4 = {{1,2,3},{a,b},δ,1,{1}} {1,2,3}为3个元素的状态集,所以相应的DFA的状态集有23个元素 空集,{1}, {2}, {3}, {1,2},{1,3},{2,3},{1,2,3} 相应DFA的起始状态E({1}), 表示状态1本身加上由1出发通过ε箭头能到达的所有状态 相应DFA的接受状态是上述状态中所有包含N4接受状态1的状态子集。 {1},{1,2},{1,3},{1,2,3} 相应DFA的转移函数—

文档评论(0)

daijun + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档