洛村游民 trespassers will be分享 http://blog.sciencenet.cn/u/luocun     在信息时代的思想雷区     慢慢走慢慢看慢慢聊

博文

电脑人心 之 计算机能思维吗?(二)图灵的机器(5)丘奇-图灵论题

已有 12585 次阅读 2010-9-30 08:27 |个人分类:电脑人心|系统分类:科普集锦| 人工智能, 认知科学, 图灵机, 电脑人心, 停机问题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


https://blog.sciencenet.cn/blog-453866-368386.html

上一篇:强烈建议媒体报道科学网博客上关于方肖之争的讨论
下一篇:马路认知科学(四)黄灯亮了,怎么办?
收藏 IP: .*| 热度|

1 蔣勁松

发表评论 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 18:54

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部