第章 有穷自动机.ppt

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

有穷自动机形式定义 NDFSA ? DFSA 的转换 正规文法与有穷自动机 正规表达式与FA DFSA在计算机中的表示 小结 有穷自动机DFSA定义3.1: 一个确定的有穷自动机(DFSA)M是一个五元组:M=(Q,Σ,t,q0,F)其中 1 Q是一个有穷集,它的每个元素称为一个状态; 2 Σ是一个有穷字母表,它的每个元素称为一个输入符号,所以也称Σ为输入符号字母表; 3 t是转换函数,是在Q×Σ→Q上的映射,即,如: t=(q,x)=q’,(q,q’?Q)就意味着,当前状态为q,输入符为x时,将转换为下一个状态q’,我们把q’称作q的一个后继状态; 4 q0 ?Q是唯一的一个开始状态; 5 F? Q是一个终止状态集,它至少由一个终止状态组成。 DFSA 例3.2 DFA A=({q0, q1, q2, q3}, {a,b}, t, q0, {q0})其中 t 定义为: t(q0 ,a)= q1 t( q2 ,a)= q3 t(q0 ,b)= q3 t( q2 ,b)= q1 t(q1 ,a)=q0 t( q3 ,a)= q2 t(q1 ,b)= q2 t( q3 ,b)= q0 状态转换表 DFSA 的状态图表示 DFSA=(Q, ∑, t, q0, F), 扩充的映射t: Q×Σ*→Q 定义为: (1)t(q,?)= q (2) t(q, a?)=t(t(q,a),? ) 其中q∈Q, a∈∑, ? ∈ ∑* DFSA=(Q, ∑, t, q0, F),如果t(q0, ?)=q∈F,则符号串?可被有穷自动机DFSA所接受。 有穷自动机DFSA所接受的符号串集,记为L(M). 例3.2中的有穷自动机A,t(q0, aabb)=t(t(q0, a), abb)=t(q1, abb)=t(t(q1,a), bb)=t(q0, bb)=t(t(q0, b), b)=t(q3, b)=q0 ∈F。 所以符号串aabb能被有穷自动机A所接受。 自动机的等价 定义3.2 给定两个有穷自动机M和M’,如果L(M)=L(M’),则称自动机M和M’等价。 例3.4 DFSA M=({q0,q1}, {a,b}, t, q0, {q0} ), 其中t(q0,a)=q1, t(q1,b)=q0. DFSA M’=({q0’,q1’,q2’}, {a,b}, t’, q0’, {q2’} ), 其中t’(q0’,a)=q1’, t’(q1’,b)=q2’, t’(q2’,a)=q1’. 非确定的有穷自动机NDFSA 定义3.4 一个非确定的有穷自动机是一个五元组,NDFA=?Q,?,t,Q0,F?,其中Q为状态的有穷非空集, ? 为有穷输入字母表,t为Q? ? 到Q的子集(多值映射),Q0?Q是初始状态集,F ?Q为终止状态集。 例子 NDFSA N=({S,P,Z},{0,1},t,{S,P},{Z}) 其中 t(S,0)={P} t(S,1)={S,Z} t(P,1)={Z} t(Z,0)={P} t(Z,1)={P} 例子3.6 NDFSA与DFSA的区别 NDFSA有一个开始状态集合,而DFA只有一个开始状态; NDFSA的映射是Q? ? ?Q的子集,是一个多值映射,而DFSA是Q? ? ?Q的一个单值映射。 例3.7 证明符号串xyx能被例3.6中的NDFSA,所接受。 证明:因为t(q0, xyx)=t(q1,yx) ? t(q2,yx) (∵t(q0, x)={q1, q2})=t(q1,x) ? t(q2,x) ? t(q3,x) (∵t(q1, y)={q1, q2}, t(q2, y)={q3})={q0} ? {q3} ? {q1, q3}={q0, q1, q3} ∵q1∈ t(q0, xyx)={q0, q1, q3}, q1 ∈F 所以xyx能被该NDFSA所接受。 空移环路的寻找 如果自动机的弧上允许标记?,则称此自动机为?自动机,记为?NDFSA或?DFSA. 空移环路的消除 找到空移环路之后,要消除它只要把空移环路上所有结点q1,q2,…,qn合成一个结点,并消除它们所有的?弧。如果其中的某一个结点qi(i=1或2,…,n)是开始结点或终止结点,则将此合并后的新结点相应地设置为开始状态或终止状态。 确定化-子集法(自学) 给定一个NDFSA A=(Q, ∑, t, Q0, F)是一个非确定的有穷自动机,一定可以构造一个和它等价的确定有穷自动机DFSA A’=(Q’, ∑, t’, q0, F’),即L(A)=L(A’)。 构造步骤: (1) A’与 A的字母表∑完全相同; (2) 把A的每一个状态子集作为A’的一个

文档评论(0)

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

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

1亿VIP精品文档

相关文档