终极计算之梦

注意:这篇文章是我这学期“计算机前沿技术讲座”的期末报告。转载请一定注明出处,否则会被认为是抄袭的,有嘴也说不清。 自从亚里斯多德的时代开始,人们探寻自身及宇宙的征途就从未停止。两千多年来,无数的物理学家都试图用一个简洁的定律解释宇宙万物,从伽利略、开普勒到牛顿的万有引力,从爱因斯坦的广义相对论,到玻尔等人的量子力学,再到温伯格等人的超弦理论,解释万物的终极理论正一点点地浮出水面。 这就是物理学家,乃至全人类的终极理论之梦。然而,作为计算机科学工作者,我们也有自己的终极梦想——终极计算之梦。 人的本性是贪婪的,正因如此,我们对计算机的要求从没有得到过满足。人们想让计算机变得更快,而它也正像我们希望的那样变得越来越快了。而我们的终极计算之梦就是如此吗? 让我们回到计算机的基本模型——图灵机。在这个模型中,有一条数据带、一个可以左右移动读写头以及一系列状态和转移函数。机器从数据带中读到一个数据,根据当前的状态和输入的数据跳转到下一个状态或保持当前状态,与此同时,可以输出数据。 这种“自动机”的加强版模型能做一些“智能”的运算,例如判定一个字符串是否是回文、算术运算、逻辑运算等等。人们开始被这种“强大”的自动计算机震惊了。当然,你也可以训练一只狗来做一些简单的算术运算,但这只是一种条件反射的作用。图灵机可以做相当复杂的算术运算,而且速度比人脑快很多,难道说它真的具有“智能”了吗? 计算机和人脑是如此得相似——都有输入、输出、处理中心。对人脑来说,我们通过眼睛、耳朵、鼻子、皮肤来采集输入信息,通过大脑分析,再通过嘴、四肢来产生输出信息。或许唯一不同的是我们有自我的意识,而自我意识是什么?这个问题先就此打住,否则就成为讨论哲学问题了。这种相似性,使得几代计算机科学家都在做着一个努力:让电脑像人脑一样工作。 或许这并不是计算机被发明的初衷,但它俨然已经成为了我们的终极计算之梦。 再深入地想一下,除了前面提到的自我意识之外,我们会发现计算机和人脑之间有很大的差异。首先就是性能上的差异。计算机更适合做那些死板的工作,当我们把一套算法输入给计算机后,它就会飞快地按照这个算法进行计算。例如,我们要找一幅的图中的最短路径(这幅图很复杂,以至于我们不可能一眼就看出最短路径),当我们把这幅图和相应的算法(例如Dijkstra算法)输入给一个计算机,它就开始疯狂地、严格地依据算法按部就班地计算,并且会在一个不长的时间内给出答案。 那么,试想一下如果让我们人来找最短路径该怎么办?我们同样面对一幅很复杂的图。当然,会有人用投机的方法直观地给出一条最短路径,但这总是不可靠的。一个“不聪明”的办法就是按照Dijkstra算法一步一步来计算。当然,我们每一步都要用一种方式(纸和笔)记录路径的信息。最终,我们也总能找到一条最短路径,但正如你想象的,我们花的时间比计算机要多很多很多。 上面说的是一个人脑不如计算机的例子。那么,有人脑超过计算机的的例子吗?当然有,而且它们生活中无处不在。想像一下我们平时上网时总会遇到一个讨厌的东西——验证码。经过痛苦地辨认,我们最终还是认出了藏在图形里面扭曲模糊了的字母数字。此刻,你可能在责备网站的管理员多此一举。殊不知,这是为了防止计算机程序的恶意注册才设置的。也就是说:计算机没法认出验证码。或许你最近听说过某家的验证码被攻破了之类的新闻,但总体来说,人们还没有想出一个通用的方来使计算机认出验证码,否则就辜负了验证码的由来了——完全图灵测试。 你一定已经听说过这个名词,把一台计算机和一个人分别关在小黑屋里,然后有另一个人向这它们问问题。当提问的人分不出哪个是人哪个是计算机时,我们说这台计算机通过了图灵测试。所以,现在最简单的提问方式就是给他们一套验证码图片,能认出来的就是人,否则是计算机。 从理论上讲,计算机可能通过图灵测试吗?至少据我所知,这个问题还没有确切的答案。我们不得不回到深奥的理论上来。 我们假设存在一个数学模型可以描述人的大脑行为,那么,根据这个模型语言的完备性,我们可以很容易地判断图灵机究竟能否模拟人脑。然而,如果根本就没有可以描述人类大脑的数学模型呢?“没有”是个很模糊的概念,也许某一天数学家可以证明,人类大脑的行为是无法用数学模型甚至任何语言描述的。这听起来很荒唐,或许这正是我们的“终极计算之梦”的答案。