正则语言及非正则语言.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
正则语言和非正则语言 判定正则性的一个标准 在上一章,Kleene定理给出了正则语言一个有用的特征:即一个语言是(正则表达式定义的)正则语言当且仅当它能够被某个有限自动机接受。也就是,一种通过简单方式产生的语言(简单的初始语言,简单的扩展运算)与一种简单的机器模型(有限的状态数,没有辅助存储空间)对应起来了。我们仍然要问:正则语言的本质特征是什么?为什么它能够被那么简单的运算产生、能够被那么简单的机器识别? 我们已经部分地回答了这个问题。定理3.2给出了一个语言成为正则语言的必要条件,或反过来讲,成为非正则语言的充分条件。如果存在无限多个字符串,它们在语言L上两两可区分,那么L不是正则语言。语言L定义了(*上的一个等价关系,如果字符串x和y在L上是不可区分的,则x和y等价。这个等价关系带来了(*上的划分和等价类,因此上面说法可以重新叙述成:如果语言L定义的等价类有无穷多个,则语言L是非正则语言,否则是正则语言。如果等价类是有限的,且能够清楚地描述,则存在一个抽象的方法构造出有限自动机来,而且这种方法构造的自动机具有最少的状态数。上述讨论也隐含指示了存在一种化简有限自动机状态数的方法。 定义5.1 任给一个语言L((*,(*上的不可区分关系IL定义如下,任给两个字符串x和y,xILy当且仅当x和y在L上不可区分。换句话讲,任给字符串z,字符串xz和yz要么同时属于L,要么同时不属于L。 引理5.1 任给语言L,IL是(*上的等价关系。 证明:显然IL是具备自反性和对称性,现在仅证明具备传递性。假设xILy和yILz,要证明xILz。任给字符串w((*,如果xw(L,则yw(L,则zw(L;类似地,如果xw(L,则yw(L,则zw(L,因此xILz。 我们将发现,如果关系IL的等价类个数有限,则可能根据等价类构造接受语言L的有限自动机。我们先讨论已知是正则语言的语言L,设接受它的有限自动机是FA M=(Q, (, q0, A, (),对每个q(Q, Lq={x((* | (*(q0, x)=q} 从第1章内容知道,集合上的等价关系相当于集合上的划分。这里集合(*上有两个自然划分,一个是等价关系IL形成的划分,另一个是所有的Lq形成的划分。引理3.1揭示了这两个划分之间的关系。如果字符串x和y属于同一个Lq(即(*(q0, x)=(*(q0, y)=q),则x和y在关系IL的同一个等价类中。这意味着(见练习1.41)Lq形成的划分与IL形成的划分相同或是它的细分。每一个IL形成的等价类都是一个或多个Lq的合集。特别地,如果Lq的个数与IL的等价类个数相等,则两个划分完全相同,且FA M是接受L的最少状态数的有限自动机。 现在增加问题的难度。如果我们知道了一个正则语言,不知道接受它的有限自动机,那么如何找到它呢?在第3章,我们认识到FA中的每个状态q代表在识别字符串过程中需要记住的一定的信息量,状态q表示了一类具有相同判定特征的字符串。这里我们看到IL形成的等价类中的字符串就具有相同的判定信息。因此我们可以用等价类表示状态。 字符串x的等价类记为[x],则转移函数可以写成,( ([x], a)=[xa]。 引理5.2 关系IL对连接运算是右确定的(right invariant)。即对于任意的字符串x、y和字符a,如果xILy,则xaILya。即如果[x]=[y],则[xa]=[ya]。 证明:对于任意的字符串x、y和字符a,只需要证明xaz和yaz要么同时属于L,要么同时不属于L。只需要令z’=az,由于xILy,因此xz’和yz’要么同时属于L,要么同时不属于L。 定理5.1 任给语言L((*,QL是关系IL形成的等价类集合,如果QL是一个有限集,则构造接受L的有限自动机ML=(QL, (, q0, AL, ()如下,q0=[(],AL={q(QL | q(L((},(: QL(((QL定义成(([x], a)=[xa]。而且ML是接受语言L的最少状态数的有限自动机。 证明:根据引理5.2,无疑ML是一个有限自动机。为了证明ML接受L,只要证明对任意的字符串x和y下式成立: (*([x], y)=[xy] 证明可以通过对y实施结构归纳法来完成。 归纳基础,(*([x], ()=[x(],根据定义3.3知这是显然成立的。 归纳推理,设对于任意的x和某个y,(*([x],y)=[xy],要证明对任意的字符a,(*([x], ya)=[xya]。 (*([x], ya) = (((*([x], y), a) ---根据(*的定义 = (([xy], a) ---根据归纳假设 = [xya] ---根据(的定义 由于(*(q0, x)=(*([(], x)=[x],因此字符串x被ML接受的充分必要条件是[x](L

文档评论(0)

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

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

1亿VIP精品文档

相关文档