第二章第三讲可接受空串的NFA.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 有限自动机和右线性文法 第三讲 带有ε转换的NFA 一、引入ε转换的必要性 1、ε转换的含义 例1: 有这样一个NFA,它所接受的字符串为:先是若干个(或0个)a,接着是若干个(或0个)b,接着是若干个(或0个)c 。 一个不确定的有限自动机在某一状态下,当输入空串ε时(即在不读入任何字符时) 也能引起状态的改变,则称该有限自动机是带有ε转换的NFA。 该NFA的状态转换图如下: q0 q1 q2 a b c ε ε 例1: 有这样一个NFA,它所接受的字符串为:先是若干个(或0个)a,接着是若干个(或0个)b,接着是若干个(或0个)c 。 该NFA的状态转换图如下: q0 q1 q2 a b c ε ε 例1: 有这样一个NFA,它所接受的字符串为:先是若干个(或0个)a,接着是若干个(或0个)b,接着是若干个(或0个)c 。 该NFA的状态转换图如下: q0 q1 q2 a b c ε ε 例如:该NFA可以接受字符串aaacc,其工作过程中的状态转变可由如下路径表示: q0 q0 q0 q0 q1 q2 q2 q2 a a a ε ε c c 2、引入ε转换的必要性 由于在NFA中引入了ε转换,使得有些问题的NFA设计变得相对简单起来。 例如:对于例1而言,根据所设计的状态转换图,得出NFA M=({q0,q1,q2} ,{a,b,c},δ, q0 ,{q2})中的转换函数δ如下: 由于ε的引入,转换函数δ应当扩充为: 从Q×(T∪{ε})到2Q上的映射。 q0 q1 q2 a b c ε ε δ (q0,a)={q0} , δ(q0,b)=? , δ(q0,c)=? , δ(q0, ε)={q1} , δ(q1,a)=? , δ(q1,b)={q1} , δ(q1,c)=?, δ(q1,ε)={q2}, δ(q2,a)=? , δ(q2,b)=? , δ(q2,c)={q2}, δ(q2, ε)=? 1、状态q的ε-闭包: 二、对转换函数δ的扩充 带有ε转换的NFA与不带ε转换的有限自动机一样,当输入字符串时,需要将转换函数δ扩充为δ。 δ应当是从Q×T*到2Q的映射。 为了对δ进行扩充,首先定义关于某状态q的ε-闭包的概念。 为了定义δ,下面先要定义几个相关的概念。 1、状态q的ε-闭包: 二、对转换函数δ的扩充 为了对δ进行扩充,首先定义关于某状态q的ε-闭包的概念。 1、状态q的ε-闭包: 二、对转换函数δ的扩充 为了对δ进行扩充,首先定义关于某状态q的ε-闭包的概念。 1、状态q的ε-闭包: 二、对转换函数δ的扩充 对所给状态q,仅用ε转换便可到达的状态的集合称为q的ε-闭包,记为:ε-closure(q) 。 例2:设有一NFA的状态转换图如下: q0 q1 q2 q3 q4 q5 q6 q7 a a a ε ε ε ε ε 则有:ε-closure(q0)={q0,q2} ε-closure(q3)={q3,q6,q2} 二、对转换函数δ的扩充 例2:设有一NFA的状态转换图如下: q0 q1 q2 q3 q4 q5 q6 q7 a a a ε ε ε ε ε 2、状态子集I的ε-闭包: ε-closure(I)= ∪ ε-closure(q) q∈I 例如:若I={q0,q5}, 则有: ε-closure(I) = ε-closure(q0) ∪ε-closure(q5) ={q0,q2}∪{q5,q7} ={q0,q2,q5,q7} 二、对转换函数δ的扩充 q0 q1 q2 q3 q4 q5 q6 q7 a a a ε ε ε ε ε 3、状态子集I的Ia: 对于状态子集I,任意a∈T,定义Ia如下: Ia= ε-closure(P) , 其中P是从I中的状态仅经一条标有a的边可以到达的状态的集合。 求Ia的步骤:① 求状态集合P。 ② 求ε-closure(P) 。 例如,在例2中,若I={q0,q5},则 P={q1,q3} Ia= ε-closure(P) = ε-closure({q1,q3}) ={q1,q4}∪{q3,q6,q2} ={q1,q4,q3,q6,q2} 二、对转换函数δ的扩充

文档评论(0)

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

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

1亿VIP精品文档

相关文档