上回我们看到,停机问题这个良定义的问题,不能由图灵机来解决。那么像停机问题这样的图灵机不可解或者说“不可计算”的问题,究竟是有很多呢,还是只是个别呢?

其实,有另外一种论证,可以说明绝大多数将自然数映射到自然数的函数是图灵机不可计算的。这个论证的思路是把一切可能的图灵机进行“点数”,把它们排个队。

首先,请注意图灵机的有限性。这个我们在讨论通用性的时候说过。除了带子之外,图灵机所有其他方面都是有限的。记号的种类是有限的,控制器的可能状态数是有限的,读写头的可能移动是有限的。这样一来,任何特定的图灵机,其指令表中包含的五元组的数目也就自然是有限的。这就意味着,我们可以把图灵机们按照它们各自的指令表来排队。比如,把指令表视为一个句子,每个五元组视为一个单词,同时将组成五元组的记号种类、控制器状态和读写头移动方向视为字母并规定其“字母表”顺序。这样,我们就可以像把英语句子按字母顺序排序那样来给图灵机排序了。由此我们可以说明所有可能图灵机的集合是可数(无穷)的。因此,可能图灵机的数目和自然数一样多。(更准确地说,图灵机集合的基数和自然数集合的基数相同。)

另一方面,将自然数映射自然数的函数个数是不可数(无穷)的,远远超过我们用来给图灵机点数的自然数集合的大小,而至少有[0  1]区间里的实数那么多个。(因为这种自然数到自然数映射的集合至少有自然数的幂集那么大。)

由此可见,从自然数到自然数的函数个数比可能的图灵机的个数要多很多。(在集合的基数序列里要整整高出一阶。)这就意味着必然存在着图灵机不可计算的函数;而且,事实上有无穷不可数那么多的函数是图灵机所不可计算的。跟不可计算函数的数目比起来,可能图灵机的数目相对而言小到可以忽略不计。所谓“停机问题”只是这些不可计算函数中的一个有趣的例子罢了。

需要注意的是这里所谓“不可解”,是相对于图灵机而言的,所以也叫“图灵机不可计算”或者“图灵不可计算”。这里的论证并没有说明其他的跟图灵机不同的机制也不能解决图灵机的停机问题,虽然这些别的机制也可能有自己的停机问题。

这里的讨论表明,存在这数学上良定义的函数,其映射是图灵机这种机制所不能实现的。正如哥德尔曾经指出的,如停机问题这样的不可计算函数的存在,表明了语义是超越纯粹的机制的,就是说哪怕在自然数算术这样一个很简单的领域里,数学语义上可以严格一贯地定义的映射也不能为纯粹机制加以有效执行。

在过去六七十年乃至今天,有不少人由此得出结论说,既然我们一方面能够理解和把握停机问题这类情况,尤其是哥德尔句子为真这样的事实,而机器却不能机械地解决停机问题或者推导出哥德尔句子,因此人的理解或者直觉能力不是机器能够实现的,完全的人工智能也就是不可能的。这个推断成不成立,咱们以后会专门详细讨论。

不过,图灵机并非唯一的“计算”模型。前面提到过丘奇对不可判定性的工作,他用的模型叫做“λ演算”,这个是后来Lisp程序设计语言的基础。此外,还有由克林尼(Stephen Kleene)在哥德尔工作基础上加以整理推广的递归函数(recursive functions)、波斯特(Emil Post)的“波斯特产生式系统”(Post production systems)等等。再后来,有戴维斯(Martin Davis)提出的“S编程语言”。这一模型对于程序员来讲会比较直观。它非常简单,只有三种指令,分别是加1、减1和条件转移:

(1)xi <= xi+ 1(2)xi<= xi– 1(3)if xi= 0 goto LABEL

这个模型下的“程序”由上述三种类型的指令行构成。每行有仅属于自己的唯一标记(LABEL),可以用在转移(goto)语句里面来指明转移的目标。这个模型假定了存在很多下标变量xi可用,它们起的作用是存储器,跟图灵机的带子相当。不过,这个可是随机存储器(RAM)!您要有兴趣的话,可以试着用“S编程语言”来写点小程序。(提示:您可以先考虑如何把一个下标变量拷贝到另一个下标变量,由此构造出赋值语句来。)

在1930年代的短短几年里面递归函数、λ演算、图灵机等等先后被提出,人们很快证明了他们之间的任何一对都是等价的。所谓“等价”,在这里的意思就是说一个模型能做的,另一个模型也都能做;反之亦然。

当然,要谈两个模型之间的等价性,就必须有一定的准则来界定各个模型要做的事情。比如说,你不能要求λ演算去做图灵机能做的移动读写头,因为λ演算里根本就没有读写头;此外,你也不能要求任何这些模型给你炒个小菜或者打个华尔兹的拍子啥的。在这里,等价性证明采用的准则很简单,就是看这些模型如何实现自然数到自然数的函数映射。所谓等价的意思就是说,对于任何一个自然数到自然数的函数映射,如果一个模型能够实现此映射,那么另一个模型也能实现该映射;反之亦然。因为我们前面看到,图灵机并不能实现全部这些映射,所以这个准则并不是空洞的,因为有可能存在某个映射是图灵机不能做的,λ演算可以做;或者说反过来。

值得注意的是,这里的等价关系是相当的“行为主义”的,它只关心输入和输出──如果有输出的话──两端的符合,其他任何方面都不管。模型里面具体如何运作,算法是什么,运作有多快,需要多少存储等等全都无所谓,经典计算和量子计算之间的区别也无所谓。

不管怎么样,既然这些特定的模型一个个地被证明为相互等价,人们就在想:嘿,咱们是不是抓住了一点什么具有一般性的东东呢?是不是说所有这些模型共同指向了直观上的“计算”或者“可计算”概念的本质呢?由此就有了著名的“丘奇-图灵论题”(Church-Turing thesis):

任何直观上可计算的函数都可以由某个图灵机来计算。

这个说法之所以叫做“论题”(thesis)而不是“定理”(theorem),是因为“直观上可计算”这个概念是没法形式化,所以也就不可能有形式化的证明。“直观上可计算”,其大体意思恐怕是说按照某种确定的过程来一步一步地、机械而有效地把输入变形到输出。与其他等价的模型相比,图灵机有个特点,就是它一方面把这个思想给形式化了,另一方面又保留了机器之为机器的直观性。由此,我们可以理解为什么哥德尔会认为,是图灵机这个模型的提出,真正把有效可计算性这个概念给抓住了。

丘奇-图灵论题提出至今有70多年的了。它也不是没有人反对,今天也还有人在尝试提出与图灵机不等价的,计算能力超越图灵机的模型。不过,迄今为止还没有任何被断言为超越图灵机的计算模型被普遍接受为合理的、符合直观可计算观念的模型。所以,今天的主流观点依然认为这一论题是对的,以图灵机为代表的这批计算模型确实抓住了直观上的可计算性。

转载本文请联系原作者获取授权,同时请注明本文来自罗军科学网博客。

链接地址:http://blog.sciencenet.cn/blog-453866-368386.html

上一篇:强烈建议媒体报道科学网博客上关于方肖之争的讨论

下一篇:马路认知科学(四)黄灯亮了,怎么办?

图灵机不能解决的问题现有计算机也不能解决,科学网—电脑人心 之 计算机能思维吗?(二)图灵的机器(5)丘奇-图灵论题 - 罗军的博文...相关推荐

  1. 【计算理论】可判定性 ( 丘奇-图灵论题 | 可判定性引入 | 图灵机语言 | 图灵机结果 | 判定机 | 部分函数与全部函数 | 可判定性定义 )

    文章目录 一.丘奇-图灵论题 二.可判定性引入 三.图灵机语言 四.图灵机结果 五.判定机 五.部分函数与全部函数 六.可判定性定义 一.丘奇-图灵论题 为算法提供严格的数学模型 , 除了图灵机之外 ...

  2. 计算机设计核心思想,科学网—计算机设计的两种理念,颠覆os的计算机 - 姜咏江的博文...

    计算机设计的两种理念 姜咏江 关于图灵和冯·诺伊曼计算机,我们是否可以总结为图灵的计算机思想由冯·诺伊曼等人具体实现了?不要让计算机历史上那些说不十分清楚的问题,耽误了我们今天的行程. 在计算机体系结 ...

  3. cmu计算机专业必修课程,科学网—西行记-8: CMU计算机系的本科教学体系 - 戚正伟的博文...

    CMU大学的计算机系是1965年成立,属于早期建计算机系的大学. 现在是计算机学院,在多个学科上有很大优势. 本科教学也有一些特点,整个课程360 units,换成我们国内的约90学分,其中计算机科学 ...

  4. 计算机的科技创新,科学网—计算机科技创新需要狂人思维模式 - 姜咏江的博文...

    计算机科技创新需要狂人思维模式 "世界级"创新的科技发明,开始总是不被人认同和理解,这是正常的事情.许多大科学家出道之初,周围的人常称其为"狂人",对其&quo ...

  5. 湖北技能高考计算机本科学校有哪些,2021湖北省技能高考计算机能考哪些大学...

    原标题:2021湖北省技能高考计算机能考哪些大学 以下是部分的2020年湖北省技能高考计算机类的大学本专科院校录取分数线,可作为2021年湖北省技能高考计算机类本专科院校录取分数线参考. 对于专科的同 ...

  6. 计算机领域澳大利亚成就,科学网—【编委特写】澳洲Top5科学家:韩清龙 最新成果 - 陈培颖的博文...

    ​转眼又到一年丰收时,2019年,IJAC喜讯连连.全面开花!迄今已连续3次.11年获"中国科技期刊影响力提升计划"."中国科技期刊卓越行动计划"项目支持,资助 ...

  7. 计算机科学家的摇篮,科学网—科学家有多少摇篮? - 籍利平的博文

    在一则题为<懒得考清华北大?16岁女生考上中国版"麻省理工">的微信公众号文章后面,我曾经这样留言(个别笔误已经更正): 各有所好吧,不必因此贬低北大清华.上少年班,的 ...

  8. 上计算机课的日记,科学网—上计算机课,不接触计算机----日记摘抄(161) - 武夷山的博文...

    上计算机课,不接触计算机----日记摘抄(161) 武夷山 1980年3月17日 今天下午听了法语课,XXX也听.下课后立即借XXX的车子去买书,在准备替X买俄语小册子时先把钱递给了女售货员,她居然不 ...

  9. 湖北工业大学计算机学院博客,科学网-“第三届‘蓝桥杯’全国软件大赛”湖北分赛区组委会组成名单-程学先的博文...

    经大赛组委会批准,"第三届'蓝桥杯'全国软件专业人才设计与创业大赛"湖北分赛区组委会组成名单如下: 湖北分赛区组委会主任:华科大软件学院院长陈传波 湖北分赛区组委会常务副主任:湖北 ...

最新文章

  1. CUDA学习(七十一)
  2. windows 下使用composer
  3. cocos2d笔记——CCNode与CCAction
  4. Linux下Bluez的编程实现
  5. Taro+react开发(69):传入localstoage需要jsonstringfy处理
  6. pandas 批量修改列名_pandas修改DataFrame列名的方法
  7. python中的不可变类型和可变类型
  8. 如何判断lib是/md or /mt编译的
  9. 【收藏】RPM包制作和spec文件详解
  10. 设备通过海康EHOME协议接入EasyCVR视频无法播放的排查与分析
  11. 肯德尔(Kendall)相关系数概述及Python计算例
  12. vue 微信支付的坑_微信支付踩坑
  13. 邓仰东专栏|机器学习的那些事儿(二):机器学习简史
  14. waves服务器系统盘,waves服务器:Waves现场声音解决方案
  15. wiz为知笔记docker部署与数据迁移
  16. 微信公众号学习与开发过程
  17. 华中科技大学计算机与网络,华中科技大学计算机与网络习题.pdf
  18. git(9)Git 内部原理,java入门视频百度网盘
  19. 网站性能检测尖刀-YUI-Yslow
  20. 鸿蒙os后台运行,Day10 鸿蒙,Ability全家桶(二)如何后台运行任务

热门文章

  1. [基础] AHK函数对象初窥 ① _实例2_实际可用版
  2. NodeMCU-ESP8266使用TFT_eSPI库驱动IC为ST7735的1.44寸TFT屏幕(TFT_eSPI详解)
  3. 魔兽世界台服显示无法连接服务器,魔兽世界台服服务器爆满 部分服务器已锁定 - 178魔兽世界专区...
  4. DxOMARK如何测试音频质量?小编带你答疑解惑
  5. Latex写个人简历---程序员的简历
  6. C# 输入半径,计算圆的面积和周长
  7. NTLM认证原理及其过程
  8. oobe crash 分析
  9. 一文入门Go静态单赋值(SSA)
  10. 点击“换一换”切换商品,使用jquery slice()实现无缝连接切换