- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《非确定性和Kleene定理
非确定性和Kleene定理
非确定型有限自动机
为了FA识别的语言,我们先对FA作一些方便性的扩充。仍然具有有限的状态数,且识别语言的能力保持不变。一些限制放宽了,更容易构造和解释。
例子4.1图4-1a显示了例子3.14构造的FA,它接受的语言是(11+110)*0,图4-1b显示了一个不同于一般FA的例子,状态q4没有转移箭头,而状态q0在输入字符为1时有两个转移箭头。
状态?q4没有转移箭头,含义是不存在一个起始字符为a(本例为0或1)的输入字符串能够使得状态从q4转移到某个接受状态,我们可以增加一个失败(或死,dead)状态f,对于输入字符a,状态q4转移到f,失败状态的含义是只有进入没有离开的转移箭头。显然任何被成功接受的字符串都不会进入失败状态,因此为了简化图面,往往省略失败状态,而不会影响自动机的接受能力。
状态q0在同一个输入字符时有多个转移箭头,看起来是对传统FA的很大的突破。我们无法象传统FA机那样线性地记录字符串在FA中的转移过程,而在某些步骤出现了歧义,因此FA机要并行地运算各种可能。
但这种带多向转移的图似乎更适合正则表达式,比如图4-1b,从q0到q0有两个循环,一个表示的字符串是(11)*,另一个表示的是(110)*,综合起来,从q0到q0的字符串是(11+110)*,则从q0到q4的字符串是(11+110)*0。反过来,根据正则表达式(11+110)*0也能够很直观地画出相应的带多向转移的FA。
由于同一个字符串可能带来FA多个状态转移路径,因此现在问题变成,是否存在一条到达接受状态的路径,这类似于根据正则表达式生成字符串,某些步骤可以有多种尝试,只要其中一种尝试生成了字符串,则认为该字符串符合这个正则表达式。
因此这类FA给正则语言的分析引入了一个新的概念,即猜测尝试。现在不考虑这种具体实现的问题,而考虑如何形式化定义这类FA。我们只需要修改(或扩充)传统FA的转移函数的定义。传统的转移函数输入一个字符,转移到一个状态,即Q中的一个元素,例子4.1中的转移函数则转移到0个或多个状态,即Q的一个子集,包括空集。我们称这种转移函数是非确定的,而这样的FA称为非确定型FA(nondeterministic FA, NFA),而传统的FA称为确定型FA(deterministic FA, DFA)。目前我们看起来NFA比DFA要强大很多,以后将证明任何一个NFA都能构造一个完全模拟它的DFA,因此非确定型没有增强FA的能力。
定义????非确定型M=(Q, ?, q0, ?, A),Q和?是非空有限集,?Q,A?Q,转移函数定义为:
?: Qx??2Q
2Q是Q的幂集,即所有Q的子集组成的集合,则函数?的值从确定型的一个状态放松成一个状态集。
思考:初始状态可不可以由一个状态扩充成一个状态集?
类似地扩充连续转移函数(或称字符串的转移函数)?*的定义,其形式仍然是:
?*(p, xa) = ?(?*(p, x), a)
自然想到用递归定义,首先,空串不影响状态变迁,但转移函数的值是一个集合,而不是单个状态,因此:
?*(p, ?)={p}
而对于非空字符串x=a1a2...an,?*(p, x)的值也应该是一个集合,设q??*(p, x),含义是存在一个状态路径:p0, p1, ..., pn,其中p0=p,pn=q,对每一个i,0i=n,当输入字符ai时,自动机能够从状态pi-1到达状态pi,即
pi??*(pi-1, ai)
定义4.2a (NFA的?*函数的非递归定义)给定NFA M=(Q, ?, q0, ?, A),p是任意一个状态,则?*(p, ?)=p,对于任意一个字符串x= a1a2...an,?*(p, x)是所有满足下面条件的状态q组成的集合。存在一个状态路径p0, p1, ..., pn,其中p0=p,pn=q,对每一个i,0i=n,满足:
pi??*(pi-1, ai)
为了得到递归定义,令x=yan。根据定义4.2a,对于?*(p, x)的任意一个状态q,都存在?*(p, y)中的一个状态r,使得q??(r, an)。反过来,对于?*(p, y)中的任何一个状态r,?(r, an)的元素都属于?*(p, yan),即可以递归定义如下:
?*(p, yan) = {q | q??(r, an)且r??*(p, y)}
进一步的简化形式见下面的定义4.2b。
定义4.2b (NFA的?*函数的递归定义)给定NFA M=(Q, ?, q0, ?, A),函数?*: Qx?*?2Q定义如下:
?. ?*(q, ?)={q}
2. ?*(q, ya)=
显然,?*(q, a)= ?(q, a)仍然成立,因此递归的起点实际上可以是长度为1的字符串。
定义4.3
您可能关注的文档
最近下载
- 蔬菜配送合同.docx VIP
- 2024年3月16日四川省绵阳市直遴选笔试真题及解析.docx VIP
- 2025年新人教版数学二年级上册全册课件.pptx
- 电气测量技术(完整课件).pdf VIP
- 中国国家标准 GB/T 22749-2022饮食加工设备 电动设备 切片机.pdf
- 2022变应性支气管肺曲霉病诊治专家共识修订版(完整版).docx VIP
- 高中班级管理制度以及实施细则.doc
- 《HBZ112-1986-材料疲劳试验统计分析方法》.pdf VIP
- 个人简历——【标准模板】.doc VIP
- 2013 kid box 3 yle单元测试答案键test answer key.pdf VIP
文档评论(0)