- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[递归可枚举语言和递归语言
递归可枚举语言和递归语言
递归可枚举和递归
在本章和后面一章,我们集中讨论图林机识别的语言的外部特征,并且详细研究图林机接受的语言的性质。我们首先形式化说明9.4节提到的图林机接受语言和识别语言的区别。前面讲到,对于图林机T,记号L(T)表示由导致T停机的字符串组成的语言。
定义10.1 L??*是一个语言,图林机T的输入字母表是?,如果L=L(T),则称T接受L(accept)。xL: ?*?{0,1}是L的特征函数,如果T计算xL,则称T识别L或判定L(recognize, decide),即?*上的任意字符串x都能导致T停机,且如果x?L,输出1,否则输出0。
如果存在一个图林机接受语言L,则L被称为递归可枚举语言;如果存在一个图林机识别语言L,则L被称为递归语言。
显然,每个递归语言都是递归可枚举语言。如果存在一个识别语言L的图林机T,那么很容易构造接受L的图林机T’,只要将输出0的停机动作修改成进入崩溃的动作就可以了。但是,反过来的命题就比较复杂了。如果T是接受L的图林机,那么可能存在不属于L的字符串导致T崩溃,而没有输出结果。本章后面,我们将讨论无法消除这种可能的语言。现在,我们只需要记住上面的部分结论。这个结论还有如下更通用的形式。
定理10.1 如果L被一个非确定型图林机T接受,并且T上的每一个可能的移动都导致停机或崩溃,则L是递归语言。
证明:我们构造一个三带图林机T’,它是定理9.2证明中构造的图林机T2的变形。在9.2定理的证明中,T2模拟图林机T的每一个可能的有限的移动序列,如果找到一个导致T停机的序列,T2则停机,否则进入无限循环。我们现在需要的图林机必须在两个方面有所不同:首先,如果T’发现了T的一个停机序列,则T’在停机之前应该在第一个磁带上输出?1;其次的修改更重要,如果T上没有停机序列,则T’必须在适当的时机确定这一点,并且在第一个磁带上输出?0,然后停机。下面着重说明第二个修改。
在定理9.2的证明中,T2利用第二个磁带上的数字串来跟踪移动序列,其中的第i个数字指示了第i步的选择。显然,如果没有发现停机序列,但是发现一个整数n,每个长度为n的数字串所表示的移动序列都导致崩溃,则可以判定输入字符串不会被接受。因为如果被接受,则存在一个停机序列,如果停机序列长度小于n,则应该在发现n之前就找到,矛盾;如果停机序列长度大于n,与长度为n的序列都带来崩溃矛盾。
因此问题转换成如何发现n。T’每次模拟完一个T的导致崩溃的移动序列,将第二个磁带上表示这个移动序列的数字串复制到第一个磁带的空白部分,因此T’在第一个磁带上保存了所有导致崩溃的序列的历史,每当T’完成某个长度,比如n,的所有序列的模拟(如果T转移的最大可能数是k,则最后一个长度为n的数字串为n个k-1数字组成,比如k=2,n个1组成),T’有哪些信誉好的足球投注网站第一个磁带看是否所有长度为n的序列都在第一个磁带上,如果是,则找到整数n,擦掉第一个磁带的内容,输出?0;否则继续下一个长度的有哪些信誉好的足球投注网站。
下面给出一些判定语言是否是递归可枚举和递归语言的条件。其中一些结果基于构造能够同时模拟其他两个图林机的图林机的方法。
定理10.2 如果L1和L2是字母表?上的递归可枚举语言,则L1?L2和L1?L2也是递归可枚举语言。
证明:设接受L1和L2的图林机分别是T1=(Q1, ?, ?1, q1, ?1)和T2=(Q2, ?, ?2, q1, ?2),现在分别构造接受L1?L2和L1?L2的图林机。构造思路与定理3.4的证明很相似,我们引入了2元组状态Q1?Q2,分别跟踪T1和T2的状态转移。我们在前面也讲到,由于PDA的栈的限制,这个方法不能用于PDA的类似的构造。由于图林机的磁带具有极大的灵活性,我们可以使用2带图林机分别模拟T1和T2的磁带。下面以接受L1?L2的图林机为例说明。
T=(Q, ?, ?, q, ?)是一个2带图林机,Q= Q1?Q2,转移函数如下,
?((p1,p2), (a1,a2))=((q1,q2), (b1,b2), (D1,D2))
其中,(qi, bi, Di)= ?i(pi, ai), i=1,2。
T首先将输入字符串从第一个磁带复制到第二个磁带,并且在两个磁带的左端都插入符号#。T满足下面的条件:
T1和T2都不停止,则T不停止;
T1和T2至少有一个停机,则T停机;
如果T1和T2同时崩溃,则T崩溃;如果其中一个崩溃,则T放弃这个模拟(忽略相应磁带),继续模拟另一个,如果它停止在停机或崩溃,则T以相同方式停止。
上面的构造使得T停机时当且仅当T1和T2中至少有一个停机,因此能够推断T接受语言L1?L2。
语言L1?L2以相似的方式处理,不同的是,T1和T2中只要有一个崩溃,则T就崩溃,而只有当T1和T2都停机,T才停
文档评论(0)