不可计算理论..doc

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

不可计算理论 计算机有着强大的计算能力,那是不是当计算机的计算能力达到极高水平时就可以解决所有问题呢? 要回答这个问题,首先我们得明确计算机所能做的事——计算。 什么是计算呢?直观地看,计算一般是指运用事先规定的规则,将一组数值变换为另一(所需的)数值的过程。对某一类问题,如果能找到一组确定的规则,按这组规则,当给出这类问题中的任一具体问题后,就可以完全机械地在有限步内求出结果,则说这类问题是可计算的。这种规则就是算法,这类可计算问题也可称之为存在算法的问题。这就是直观上的能行可计算或算法可计算的概念。在20世纪以前,人们普遍认为,所有的问题类都是有算法的,人们的计算研究就是找出算法来。但是20世纪初,人们发现有许多问题已经过长期研究,却仍然找不到算法。于是人们开始怀疑,是否对这些问题来说,根本就不存在算法,即它们是不可计算的。这种不存在性当然需要证明,这时人们才发现,无论对算法还是对可计算性,都没有精确的定义!按前述对直观的可计算性的陈述,根本无法作出不存在算法的证明,因为“完全机械地”指什么?“确定的规则”又指什么?仍然是不明确的。 解决问题的需要促使人们不断作出探索。1934年,哥德尔提出了一般递归函数的概念,并指出:凡算法可计算函数都是一般递归函数,反之亦然。同年,丘奇证明了他提出的λ可定义函数与一般递归函数是等价的,并提出算法可计算函数等同于一般递归函数或λ可定义函数,这就是著名的“丘奇论点”。   用一般递归函数虽给出了可计算函数的严格数学定义,但在具体的计算过程中,就某一步运算而言,选用什么初始函数和基本运算仍有不确定性。为消除所有的不确定性,图灵在他的“论可计算数及其在判定问题中的应用”一文中从一个全新的角度定义了可计算函数。他全面分析了人的计算过程,把计算归结为最简单、最基本、最确定的操作动作,从而用一种简单的方法来描述那种直观上具有机械性的基本计算程序,使任何机械(能行)的程序都可以归约为这些动作。这种简单的方法是以一个抽象自动机概念为基础的,其结果是:算法可计算函数就是这种自动机能计算的函数。这不仅给计算下了一个完全确定的定义,而且第一次把计算和自动机联系起来,对后世产生了巨大的影响,这种“自动机”后来被人们称为“图灵机”。 图灵机有一条无限长的纸带,纸带被分成若干小方格方格内可以是一个符号,也可以是空白,除此之外还有一个有限状态控制器。纸带起着存储器的作用,控制器上的读写头可以在带上左右移动,而读写头可以根据当前状态和看到的方格内的符号,采取下列三种行动之一:左移一格,右移一格,或者静止不动,具体采取哪一种行动应根据该图灵机的控制规则。或者可以从另一个角度来理解,由于读写头每次只对应一个小方格且它本身具有一定的状态,比如接受,拒绝或进入循环。当其进入接受或者拒绝状态时,就会发生停机(停机问题),即读写头不再操作,不会再产生新的格局;如果其一直处于循环状态,将一直产生新的格局。 针对读写头的两种状态,可以看出:有一类图灵机,它们对任何输入都会停机(要么接受,要么拒绝)。这类图灵机又被称为判定器,被判定器识别的语言叫做可判定语言。那么,是否存在一个不可判定语言(不存在一个图灵机可以判定该语言)呢?答案是肯定的,并不是所有的语言都可以被判定。下面简短的证明一下。 假设一个语言A = {(M,ω) | M是表示图灵机M的字符串,ω是一个字符串。M接受ω}。即语言A中的字符串都有两部分组成:第一部分是一个图灵机M的字符串表示M;第二部分是一个字符串ω,且M接受ω。假设语言A是可判定的,也就是存在一个判定器H。当M接受ω时,H接受(M,ω);当M不接受ω时,H拒绝(M,ω)。 (注意H是一个判定器,它总会停机,接受或拒绝(M,ω))。那么我们对H稍加改造,将它的结果取一下反:当M接受ω时,H拒绝 (M,ω);当M不接受ω时,H接受(M,ω)。这很容易,只要把H的接收状态和拒绝状态互换一下身份即可。但是若把H自己的序列化字符串H提供给H会发生什么?可以看出,当H接受H时,H拒绝H;当H不接受H时,H接受H。 在此导出了矛盾,从而唯一的结论只能是,假设的H是不可能存在的。对于这种不可判定的语言,是无法构造出一个图灵机来接受或拒绝该字符串的。一个不可判定的语言,就是一个不可计算的问题,不可计算问题就是超出了计算能力的问题,不能被任何有步骤的,确定性的算法所能解决的问题。 在如上图灵机的例子中我们可以把有限状态读写头看作是机器的程序执行代码,而存储带上存的只是被处理的数据。图灵在描述他的另一个机器模型通用机器时还提出了可以把有限状态指令也存放在存储带上,让读写头根据读入的指令进行下一步操作。可以证明这样存储有指令的通用图灵机能够实现任何一个图灵机,也就是说可以解决任意一个

文档评论(0)

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

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

1亿VIP精品文档

相关文档