正规式有穷自动机.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
正规式有穷自动机

1 1 例4.9 将图4.8中的DFA M最小化 P0=({1,2,3,4},{5,6,7}) a P1=({1,2},{3,4},{5,6,7}) a P2=({1,2},{3},{4},{5,6,7}) a P3=({1,2},{3},{4},{5},{6,7}) b   令1代表{1,2}消去2,令6代表{6,7},消去7,得到图4.8(b) 的DFA M`,它是4.8(a)的DFA M的最小化 图4.8 DFA M和DFA M` 4.4 正规式和有穷自动机的等价性 对于∑上的一个NFA M,可以构造一个∑上的正规式  R,使得L(R)=L(M) 第一步,在M的状态转换图上加进两个结,一个为x结  点,一个为y结点。从x结点用?弧连接到M的所有初始  结点,从M的所有终态结点用?弧连接到y结点。形成  一个与M等价的M`, M`只有一个初态x和一个终态y 第二步,逐步消去M`中的所有结点,直至只剩下x和y  结点。在消结过程中,逐步用正规式来标记弧 其消结的规则如下: 最后x和y结点间的弧上的标记则为所求的正规式r 例4.10 以例4.7的NFA M为例,M的状态图在图4.3,求 正规式r,使L(r)=L(M) 对于∑上的一个正规式R,可以构造一个∑上的NFA  M,似的L(M)=L(R) 语法制导方法:按正规式的语法结构指引构造过程,首先  将正规式分解成一系列子表达式,然后使用下面规则为r  构造NFA,对r的各种语法结构的构造规则具体描述如下: 1. ①对于正规式?,所构造的NFA为: 例4.11 为r=(a|b)*abb构造NFA N,使得L(N)=L(r) 从左到右分解r,令r1=a,第1个a,则有    令r2=b,则有    令r3=r1|r2,则有 令r4=r3*,则有: 令r5=a, 令r6=b, 令r7=b, 令r8=r5r6, 令r9=r8r7,则有: 令r10=r4r9, 则最终得到的NFA N: 图4.10 从正规式r构造NFA   其实,分解r的方式很多,用图4.10(a)(b)(c)(d)分别表明另一种分解方式和所构造的NFA。 思考:如果不用?怎么分解 r=(a|b)*abb ? 0 1 2 3 3 a b b a b 思考:如何把上面的NFA变成DFA? 0 01 03 03 01 02 02 01 01 0 01 0 b a 0 1 2 3 3 a b b a b a b a 4.5 正规文法和有穷自动机的等价性 采用下面的规则可以从正规文法G直接构造一个有穷  自动机NFA M;使得L(M)=L(G): M的字母表与G的终结符集相同 为G中的每个非终结符生成M的一个状态,G的开始符S  是开始状态S 例4.5 G[s]:  S  aA  S  a  A  aA  A  dA  A  a   A  d ①S  aA|a  A  aA|a|dA|d  (a|d)A|(a|d)        (a|d)*(a|d) ②s=a(a|d)*(a|d)|a=a((a|d)*(a|d)|ε)=a((a|d)*|ε) ③r=a(a|d)* 4.3 有穷自动机 一.确定的有穷自动机(DFA)(有限自动机) DFA:能准确地识别正规集 一个确定的DFA:M=(K,Σ,f,S,Z) K是一个有穷集,它的每个元素称为一个状态 Σ是一个有穷字母表,它的每个元素称为一个输入符  号,所以也称Σ为输入符号字母表 f是转换函数,是在K×Σ→K上的映射,即,如  f(ki,a)=kj,(ki∈K,kj∈K)就意味着,当前状  态为ki,输入符为a时,将转换为下一个状态kj,我们  把kj称作ki的一个后继状态 S∈K是唯一的一个初态 Z? K是一个终态集,终态也称可接受状态或结束状态 例4.6:DFA M=({S,U,V,Q},{a,b},f,S,{Q})  其中f定义为: f(S,a)=U   f(V,a)=U f(S,b)=V f(v,b)=Q f(U,a)=Q f(Q,a)=Q f(U,b)=V f(Q,b)=Q 一个DFA可以表示成一个状态图(状态转换图) 假定DFA M含有m个状态,n个输入符号,那么这个  状态图含有m个结点,每个结点最多有n个弧射出,整  个图含有唯一一个初态结点(  、-)和若干个终态结  点(双圈、+),若f(ki,a)=kj,则从状态结点ki到状态结点  kj画标记为a的弧 图4.1 状态图表示 例4.6中的DFA的状态图表示如图4.1所示: 一个DFA可以表示成一个矩阵表示,该矩阵的行表示状  态,列表示输入符号,矩阵元素表示相应状态和输入符  号将转换成的新状态,即k行a列为f(k,a)的值。用 

文档评论(0)

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

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

1亿VIP精品文档

相关文档