2.4 正规表达式到有限自动机的构造.ppt

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.4 正规表达式到有限自动机的构造 2.4.1由正规式构造等价的NFA M 2.4.2 NFA M的确定化 2.4.3 DFA M的化简 2.4.4 正规式到有限自动机构造示例 2.4.5 从NFA M到正规表达式的转换 有限自动机和正规表达式的等价性: 1.对于∑上的一个NFA M,可以构造一个∑上的正规式R,使得L(R)=L(M)。 2.对于∑上的一个正规式R,可以构造一个∑上的NFA M,使得L(M)=L(R)。 注意:与某一NFA等价的DFA不一定唯一。 Thompson方法构造的NFA有下列性质: 只有一个开始状态和一个接受状态,接受状态没有向外的转换。 的转换规则可不可以改为? 注意:如果DFA的某个状态至少包含NFA的一个接受状态,那么,这个状态是DFA的一个接受状态。 DFA的一个状态是NFA的一个状态集合。   读了输入a1a2…an后,NFA能到达的所有状态:s1, s2, …, sk,则DFA到达状态{s1, s2, …, sk}。 算法描述: 1 开始,假定所构造的子集族为C,令?-closure(K0)为C中唯一成员,并且它是未被标记的。 2 while (C中存在尚未被标记的子集T)do { 标记T; for 每个输入字母a do { U:= ?-closure(move(T,a)); if U不在C中 then 将U作为未标记的子集加在C中 } } 结论 接受L的最小状态有穷自动机,若不计同构则是唯一的。 另一种等价的构造方法:填表算法,参考本节最后的附加ppt。 2.4.5 从NFA M到正规表达式的转换 正规表达式和NFA等价 任何一个正规表达式表示的语言,存在一个NFA识别(Thompson构造法) 任何一个NFA识别的语言,可以表示为一个正规表达式 拓广状态转换图的概念,转移符号可以用一个正规表达式标记 方法: 1. 在 M的状态转换图上增加状态X, Y,从X到初始状态q0 用?弧连接,从M的所有终态到Y用?弧连接,得到的新的NFA为M?,它只有一个初始状态X和一个终止状态 Y。 2. 反复应用以下三条规则,消去 ?-NFA M?中的状态结点和弧,直至只剩下状态结点X、Y及连接二者的弧。在消去的过程中,用正规表达式标记弧。 3. 连接X、Y结点边的标记r 即为所求的正规表达式: 每次减少一个中间状态 最后的正规表达式 r1*r2( r4|r3r1*r2)* 例1:给出下图对应的正规表达式。 第1步,增加状态q和f,构造 ?-NFA: 消除状态q1得到: 消除状态q2得到: 消除状态q0得到: 例2:给出偶数个0和偶数个1的字符串的正规表达式 消除状态1: 消除状态2: 消除状态3: 作业: P31 2.4,2.7(画出对应的NFA即可),2.8,2.10 另一种等价的构造方法:填表算法 状态的等价性 p和q等价: 若两个状态不等价,则称二者是可区分的。 DFA Minimization: Example DFA Minimization: Example DFA Minimization: Example f b c d e a g h g f e d c b For each unmarked pair symbol, … d(b,0) ?? d(a,0) d(b,1) ?? d(a,1) A E B F C G D H 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 g ?? b c ?? f Maybe. No! 于是得到DFA 如下: 0 a b 1 a b 0 b a 化简: 因{0,1}a={1}, 故不划分。 因{0,1}b={1}, 故不划分。 因此, 最简DFA如下: I Ia Ib {X,1,2,3,Y } {2,3,1,Y } {2,3,1,Y} {2,3,1,Y} {2,3,1,Y} {2,3,1,Y} S a b 0 1 1 1 1 1 重命名得状态转换矩阵: 由于(a|b)*和(a*b*)*对应的状态转换矩阵相同, 故二者等价。 (2) (a*b*)*对应的NFA如图2-20所示, 用子集法将NFA确定化得下述转换表: 例2.11 C语言可接受的合法文件名为 device: name.extension 其中device:和.extension可省。假定device, name和extension都

您可能关注的文档

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档