我从未见过艾伦·图灵(Alan Turing),因为他在我出生前五年就去世了。但不知何故,我总觉得自己对他非常了解,尤其是因为我个人的许多学术兴趣与他的有着近乎奇妙的相似之处。
一个不可思议的巧合是,Mathematica的“生日”(6 月 23 日)与图灵的生日在同一天,因此今天不仅是图灵的百年诞辰,也是Mathematica的 24 岁“生日”。
我第一次听说艾伦·图灵大概是在 11 岁的时候,差不多就是看到我的第一台计算机的时候。我通过父母的一位朋友,认识了一位相当古怪的古典学老教授,他知道我对科学感兴趣,就跟我提到了他在“二战”期间认识的这位“名叫图灵的聪明小伙子”。
这位古典学教授有一个怪癖,就是每当拉丁文课文中出现“ultra”这个单词时,他总会一遍又一遍地重复这个单词,并说要记住它。尽管当时确实记住了,我却并没有多想。多年以后,我才知道“Ultra”是战争期间英国布莱奇利园密码分析工作的代号。古典学教授想以一种很“英国”的方式,在不泄露任何秘密的情况下,告诉我一些关于它的事情。我估计,他就是在布莱奇利园遇到艾伦·图灵的。
几年后,我在英国学术界零星听到一些关于艾伦·图灵的说法。我听说,他在战争期间为破解德国的密码做了神秘而重要的工作。我还听说,战争结束后,他被英国情报部门杀害了。当时,至少有一些英国战时的密码工作仍然是保密的,包括图灵在其中所扮演的角色。我想知道原因。于是我四处打听,听说也许是因为图灵发明的密码系统至今仍在使用。(实际上,继续保密似乎是为了避免人们知道某些密码已经被破解,这样其他国家就还会继续使用它们。)
我不知道自己后来又在哪里遇见过艾伦·图灵这个名字。有可能是在我决定尽我所能学习计算机科学的时候,我看到了各种关于“图灵机”的介绍。但我记得,大约是在 1979 年,我去图书馆找到了一本关于艾伦·图灵的小书,作者是他的母亲萨拉·图灵(Sara Turing)。
渐渐地,我对艾伦·图灵和他所从事的工作有了清晰的认识。在接下来的 30 多年里,我总是不断地遇到艾伦·图灵,还经常是在意想不到的地方碰上。
例如,在 20 世纪 80 年代初,我对生物生长理论产生了浓厚的兴趣,结果(从萨拉·图灵的书中)发现,艾伦·图灵在这方面已经做了各种各样的工作,大部分都没有发表过。
再如,当我们在 1989 年推广Mathematica的早期版本时,我决定做一张黎曼 函数的海报,结果发现图灵一度保持着计算 函数零点的纪录。(早些时候,他还设计了一台基于齿轮的机器来完成这项工作。)
最近,我甚至发现图灵写了一篇关于“数学符号和术语改革”的文章,这个主题与Mathematica和Wolfram|Alpha都有关,让我非常感兴趣。
后来我才知道,我的一位高中数学老师(诺曼·劳特利奇,Norman Routledge)是图灵人生最后时期的朋友。但是,即使我的老师知道我对计算机感兴趣,他也从来没有向我提起过图灵或他的工作。事实上,在 35 年前,艾伦·图灵和他的研究还鲜为人知,直到最近,图灵才变得像今天这样有名。
图灵最伟大的成就无疑是他在 1936 年构造的通用图灵机,这是一种旨在代表数学过程机械化的理论装置。从某种意义上来说,Mathematica正是图灵所要代表的那种机械化的具体体现。
然而,在 1936 年,图灵的直接目的纯粹是理论性的。事实上,他的目的不是证明数学中哪些东西能被机械化,而是证明哪些东西不能被机械化。1931 年,哥德尔定理表明,数学中可以证明的东西是有限的,而图灵想要知道数学中任何系统程序能完成的和不能完成的事项的边界在哪里。
图灵是英国剑桥的一名年轻数学家,他的工作是解决当时的数学问题。他的其中一个步骤是从理论上构建通用图灵机,这种机器可以通过“编程”来模拟任何其他图灵机。实际上,图灵提出了“通用计算”的概念,这一概念后来成为所有现代计算机技术的基础。
但在当时,图灵的工作并没有引起太大的轰动,主要可能是因为剑桥大学数学的重点在其他方面。就在图灵发表论文之前,他了解到美国普林斯顿大学的阿朗佐·丘奇(Alonzo Church)也提出了类似的成果,但不是从理论机器的角度来表述,而是用了类似 λ 演算的数学方法。于是,图灵去普林斯顿向丘奇学习了一年,并在那里写出了他一生中最深奥的论文。
在接下来的几年里,图灵主要从事战时密码分析工作。几年前,我得知图灵曾在战争期间拜访了美国贝尔实验室的克劳德·香农(Claude Shannon),一起研究语音加密。图灵一直在研究一种密码分析的统计方法,我很好奇他是否将此事告诉了香农,并无意中提出了信息论的概念,而信息论最初就是为了保密的密码分析而提出的。
战后,图灵参与建造了英国第一台真正意义上的计算机。在很大程度上,这些计算机是从工程学中产生的,而不是从对图灵在通用计算方面工作的基本理解中产生的。
然而,两者之间存在着明确的关联,尽管这种关联很曲折。1943 年,美国芝加哥的沃伦·麦卡洛克(Warren McCulloch)和沃尔特·皮茨(Walter Pitts)写了一篇关于神经网络的理论论文,其中使用了通用图灵机的思想来讨论大脑中的通用计算。约翰·冯·诺伊曼读了这篇论文,并将其用于他关于如何构建实用计算机和对其编程的建议中。(约翰·冯·诺伊曼在 1936 年就知道了图灵的论文,但当时并没有意识到它的重要性,而是在一封推荐信中称图灵在中心极限定理方面做了有趣的工作。)
在短短十多年的时间里,从撰写关于通用计算的理论,到能够为一台真正的计算机编写程序,艾伦·图灵着实令人惊叹。不过,我不得不说,从今天的角度来看,他的程序看起来非常“不优雅”(hacky),包含了许多特殊功能,并以奇怪的字母串形式编码。但也许要达到新技术的边缘,就不可避免地会略显“粗糙”。
或许要构造出第一台通用图灵机,也难免“粗糙”。这个概念是对的,但图灵很快发表了一份勘误表来修正一些小漏洞。在后来的几年里,人们发现了更多的漏洞。但在当时,图灵根本不知道漏洞是多么容易产生。
图灵也不知道他关于通用计算的成果到底通用性如何。也许图灵机只是计算过程的一个模型,而其他模型或者大脑可能具有完全不同的能力。但在几十年的时间里,人们慢慢发现,有很多可行的模型实际上与图灵发明的机器是完全一致的。
令人奇怪的是,艾伦·图灵似乎从未在计算机上真正模拟过图灵机。他只是把图灵机当作用来证明一般原理的理论设备,似乎从来没有把图灵机当作可以被明确研究的具体对象。
事实上,当图灵开始构建生物生长过程的模型时,他立即着手使用微分方程,似乎从未考虑过图灵机这类东西可能与自然过程有关联。
1980 年左右,在我刚开始对简单计算过程产生兴趣时,我也同样没有考虑过图灵机,而是开始研究我后来才知道其名称的元胞自动机(cellular automata)。我发现,即使是规则极其简单的元胞自动机,也能产生极为复杂的行为,这让我很快意识到,这种行为可以被视作与复杂的计算相对应。
我大概是在 1991 年才模拟了我的第一台明确的图灵机。对我来说,图灵机的构造很像工程系统,而不像自然界中可能存在的体系。但我很快发现,即便是简单的图灵机,也像简单的元胞自动机一样,能产生极为复杂的行为。
从某种意义上说,艾伦·图灵本可以轻而易举地发现这一点。但他的直觉与我最初的直觉一样,会告诉他这种现象是不可能存在的。因此,他很可能只是侥幸,并且借助简单的计算,才发现了这一现象。
如果他这样做了,我敢肯定,他一定会对他的通用性概念的门槛是什么,以及图灵机有多简单而感到好奇。在 20 世纪 90 年代中期,我探索了简单的图灵机,找到了可能是最小的那一个。在我提出2.5 万美元的奖金之后,亚历克斯·史密斯(Alex Smith)在 2007年证明,这个图灵机确实是通用的。
毫无疑问,艾伦·图灵很快就会意识到这些结果对思考自然过程和数学的重要性。但是由于缺乏实证发现,他的思路在这个方向上并没有取得任何进展。
相反,他开始从更偏向工程学的角度,考虑计算机应该在多大程度上模拟人类的大脑,并提出了图灵测试等概念。如今通读他的著作,你会发现,尽管其中有些观点已经过时了,比如他对“超感官知觉”的论述,但是他关于人工智能的许多概念性论点直到今天仍然有待深入探讨。
在他 1950 年发表的著名文章《计算机器与智能》(“Computing Machinery and Intelligence”)中,我们可以看到关于将《不列颠百科全书》的内容编程到机器中的讨论,他估计这需要 60 名工人花费 50年的时间才能完成。我想知道艾伦·图灵会怎么看待Wolfram|Alpha,考虑到过去 60 年的进步,也许再加上一些聪明才智,如今使用Wolfram|Alpha所需的人力至少要稍微少一些。
除了他的思想成果,图灵近来还成了民间英雄,这尤其源于关于他死亡的故事。几乎可以肯定的是,我们永远无法确切地知道他的死亡是否为自杀。但是,根据我所知道的和听到的,我不得不说,我相当相信这是真的。
人们第一次听说艾伦·图灵是因为吃了一个浸过氰化物的苹果而死时,一定会认为他是自杀的。但是,当后来人们发现他是一个相当喜欢捣鼓小发明的人,去世前不久为了电镀勺子而制造了氰化物,把化学药品和食物放在一起,而且他还是一个相当邋遢的人时,情况就变得不那么清楚了。
我经常在想,如果能见到艾伦·图灵,他会是什么样子。我没听到过他声音的录音(尽管他曾经在BBC做过广播节目)。但我猜测,即使在他生命的最后阶段,他也会经常咯咯地笑,说话时有一种口吃的感觉,因为他思考的速度比说话的速度还要快。他似乎发现,与数学家交谈是最轻松的。他对物理学也有一些思考,但似乎从未深入研究过。而且他似乎一生都对许多知识问题保持着孩童般的热情和好奇。
他有点特立独行的感觉,一个人持续不断地开展各种项目。他不是一个擅长组织、交往的人,在他生命的最后阶段,他似乎发现自己在很大程度上既被从事计算机工作的人们忽视,也被从事他新近感兴趣的生物生长和形态发生研究的人们所忽视。
从某些方面来说,他是一个典型的英国人,是一个在不同领域都有所涉猎的业余爱好者。他在纯粹数学方面达到了很高的水平,并以此作为自己的专业基础。他在传统数学方面的贡献虽然并不突出,但毋庸置疑是十分值得尊敬的。在他所涉足的每一个领域,他所提出的思想都是相当清晰的,即使这些思想的技术实现有时被晦涩的符号和大量的细节所掩盖。
从某种程度上来说,他活在他那个时代是幸运的。因为他生逢其时,能够将已经发展起来的数学形式主义与当时新兴的工程学相结合,第一次看到了计算的一般概念。
也许有点令人遗憾的是,他在计算机实验普及之前 25 年就去世了。我当然很想知道他在捣鼓Mathematica的时候会有什么发现。我不怀疑他会把Mathematica推到极限,写出令我震惊的代码。不过,我完全相信,早在我之前,他就已经发现了《一种新科学》的主要内容,并开始理解它们的重要性。
他可能会感到失望的是,在他发明图灵测试 60 年后,仍然没有完全类人的人工智能。也许在很久以前,他就已经开始为创造类似Wolfram|Alpha的东西而奔走呼号了,以便把人类的知识转化为计算机可以处理的东西。
如果他能再多活几十年,他无疑会涉足更多的领域。但图灵在其生命的 41 年里所取得的成就仍有很多值得我们感谢之处,作为计算概念之父,作为我所从事的工作的概念基础之父,他在现代享有这些声誉是当之无愧的。