近年,ChatGPT、Sora等人工智能工具的涌现,引起全球热议。而今天一切技术的演变,都与著名计算机科学家冯·诺依曼当年开拓的计算机范式密切相关,其开创性工作是计算机产业的基础。
冯·诺依曼是一个全面的天才,不仅是20世纪伟大的数学家,而且在现代科学的许多领域都有着杰出的贡献。他所发表的一百五十多篇论文,内容涵盖集合论、逻辑、拓扑群、测度论、遍历论、算子论和量子物理、经济学、气象、军事、计算机、博弈论、核武器等领域,而单单计算机的研究已足以使他永垂史册。
1903年12月28日,约翰·冯·诺伊曼(John Von Neumann)出生于匈牙利布达佩斯一个传统的犹太家庭。父亲是位非常成功的银行家,1913年从奥匈帝国皇帝那里得到了一个爵位,于是姓氏“诺伊曼”前面可以加上个“冯”(Von)字,那是对贵族的尊称。
冯·诺伊曼在很小的时候就展现出无与伦比的记忆力。他只需看一遍电话簿,就能将整页的姓名和电话号码记住,可谓过目不忘。冯·诺伊曼把这当成一项游戏,一直到他成年,还不断地把这种本事“表演”给朋友们。一次,冯·诺伊曼跟朋友说:“我能背诵《双城记》(英国作家狄更斯的长篇小说)。”人家就挑了几章做试验,他果然背诵如流。超常的记忆力使得他兴趣极其广泛,除了科学,他还喜欢历史与哲学,从而知识渊博,宛如百科全书。同时,他还通晓七种外语。
童年的冯·诺伊曼最喜欢的学科是数学。六岁时,他就能凭心算做八位数的乘、除法;八岁时,他自己学会了“微积分”;十二岁时,他就能读懂法国数学家鲍莱尔的《函数论》(这本是大学数学系三年级的课程)。中学快毕业时,冯·诺伊曼与数学老师费克特合作撰文,讨论某种极小多项式的零点及超限直径问题,这篇论文刊登在《德国数学协会》杂志上,当时冯·诺伊曼还不到十七岁。
十八岁那年,冯·诺伊曼考进了布达佩斯大学学习数学。但父亲希望他学习化学,认为那将来能赚钱。不愿意违拗父亲意愿的冯·诺伊曼,又考进了瑞士苏黎世的联邦工业大学,攻读化学专业。二十三岁时,冯·诺伊曼不仅在苏黎世获得化学工程学士学位,同年也获得了布达佩斯大学的数学博士学位。其实,他并没有在布达佩斯大学上课听讲,只是在每学期期末赶回学校,就通过了所有课程的考试。
20世纪20年代中期,德国大数学家希尔伯特带领欧洲的数学家们取得了一个又一个的辉煌成就。作为希尔伯特的助手,二十出头的冯·诺伊曼迅速超越同侪,发表了关于集合论的划时代研究论文。1926年,在希尔伯特的帮助下,冯·诺伊曼来到了哥廷根。
那时,哥廷根是量子力学的研究中心之一,先是1925年海森堡创立矩阵力学,继之1926年薛定谔创立波动力学。在数学研究方面得心应手之时,冯·诺伊曼注意到当时比较热门的“量子力学”。他引入希尔伯特空间及其算子的理论,一举证明了海森堡和薛定谔的研究其实是同一回事。然后,他把数学“公理化”的想法与“量子力学”结合起来,发明了独特的“公理化量子力学”。这不仅为物理学提供了新的计算模型,也为纯粹数学的发展赋予了强大的动力。后来被称为“冯·诺伊曼代数”的算子理论,即发源于此。
在德国,大学的教授职位有数额限制,如果教授不退休,讲师就不能递补,因此冯·诺伊曼觉得虽然自己的工作足以出人头地,可是想当教授不免阻力重重。于是,他接受聘请,成为美国普林斯顿大学的客座讲师,于1930年来到了美国。
三年后,恰逢普林斯顿高等研究院成立,冯·诺伊曼应聘担任研究院的教授。当时,该研究院只聘任了包括爱因斯坦在内的六位教授,他是其中最年轻的一位,时年三十岁。后来,由于纳粹德国犹太血统的科学家,再加上二战爆发,冯·诺伊曼无法再回欧洲工作,因此在美国终身定居。他在普林斯顿大学一直工作到1955年夏,然后去华盛顿原子能委员会任职。
二战爆发时,冯·诺伊曼的研究方向产生了大转变。如果说在这之前,他的工作主要是纯粹数学,那么从此之后,他主要搞的是应用数学。作为天才数学家,冯·诺伊曼从纯粹数学走向应用数学,从而比那些前辈数学家发挥出更直接的社会作用。
1943年,冯·诺伊曼应美国政府国防部之邀,以顾问身份参与研制的“曼哈顿计划”,成为奥本海默中央实验室中身居要职的数学家。他经常飞往位于新墨西哥州洛斯阿拉莫斯的秘密基地工作,主导完成了在爆炸设计中的关键计算。他对的最大贡献,就是提出了一个引发核燃料爆炸的内爆方法,这个方法将研制出的时间缩短了大约一年。
不过,计算内爆方法必须解大量非线性方程式,最初大部分计算是靠纸和笔进行。1944年4月,基地理论部配备了IBM(美国国际商用机器公司)穿孔卡片台式计算机,大大提高了计算效率。人工计算两组十位数的乘法大约要五分钟,新机器可以在十到十五秒内完成,这引起了冯·诺伊曼的关注。他从1944年夏天起,就到贝尔实验室考察用继电器制造的复数计算机;又去访问哈佛大学,考察Mark I(世界上第一台数字式自动计算机)是否能为的研究派上用处。这两种机器做两组十位数的乘法大约用一秒钟,但在解复杂的方程时,优势并不明显。他痛感这些计算工具速度太慢,因此不断思考,如何对现行的计算机做改进,以满足实际需要。
事实上,冯·诺伊曼只是分身来研究计算机的。正如他在1943年7月写给友人的信中所说:“我不知道自己应该一女侍二夫还是一女侍三夫。”所谓“一女侍二夫”,是指他同时在美国陆军军械局和海军军械局任职;而“一女侍三夫”则指他又受邀做洛斯阿拉莫斯基地的顾问,从计算内爆方法开始关注和研究电子计算机。
虽然冯·诺伊曼在的研制方面有重要贡献,但他毕竟是个配角。他正式参与研制电子计算机,源自一次不经意的邂逅。
1936年9月,英国数学家、计算机理论家、“人工智能之父”阿兰·图灵,应邀来到普林斯顿高等研究院学习,曾成为冯·诺伊曼的研究助手。图灵带来的关于一种万能计算机器“图灵机”的设想,在当时已经引起了冯·诺伊曼的兴趣。不过,这种兴趣并没有直接引导他去研制计算机,因为不久后二战爆发了。
1944年夏天,曼哈顿工程进入收尾阶段。8月的一天,美国东部的马里兰州阿伯丁火车站站台上,冯·诺伊曼和一位年轻的军官不期而遇,这位军官就是ENIAC(电子数字积分计算机)研制小组成员哥尔斯廷。当时,冯·诺伊曼在候车,正好哥尔斯廷也在站台上等候去费城的火车,虽然他与冯·诺伊曼素未谋面,却立刻认出了这位大数学家。出于对冯·诺伊曼的景仰,哥尔斯廷走上前,向他做自我介绍,并开始攀谈。冯·诺伊曼热情友好,毫无架子,很快,哥尔斯廷就大胆地谈起自己的工作来。
当哥尔斯廷说他正从事一项科研,研制一台每秒钟能进行三百三十三次乘法运算的电子计算机时,冯·诺伊曼顿时萌生兴趣,连连追问,之前轻松的交谈氛围一扫而空。哥尔斯廷被严肃的冯·诺伊曼问得汗流浃背,用他后来在其著作《计算机:从帕斯卡到冯·诺伊曼》里所描述的话说,就是这“简直像一场数学博士论文的答辩”。临告别时,在哥尔斯廷的极力邀请下,冯·诺伊曼答应,过几天去访问宾夕法尼亚大学,参观正在建造中的ENIAC。
几天后,一直牵挂着ENIAC的冯·诺伊曼,急匆匆赶往宾夕法尼亚大学的莫尔学院,参观尚未竣工的ENIAC。他提出的第一个问题就是机器的逻辑结构。哥尔斯廷的同事艾克特心中暗暗佩服:“不愧是位天才的科学家,一下就点到问题的要害!”
经了解,冯·诺伊曼发现,用ENIAC计算他给出的方程要比哈佛的Mark I快得多,但是它的启动却慢很多。他很快发现症结所在:ENIAC缺乏程序存储能力,用布线接板进行控制,搭接时间长,其总的计算速度也就被这一工作抵消了。还有,这个计算机还存在着耗电多、费用高的缺点,据说ENIAC一开动,整个费城市的所有灯光顿时黯然失色。
在这研制的关键时刻,冯·诺伊曼的出现,一下子改变了ENIAC“半梦半醒”的局面。而对冯·诺伊曼来说,这次邂逅打开了他的心结,因为他一直希望能有机会研制符合他要求的电子计算机。因此,在看过ENIAC后,从1944年9月起,冯·诺伊曼就成为ENIAC研制小组的实际顾问,时常与莫齐利和艾克特等一同研究问题。
在这里,冯·诺伊曼的天才得到了淋漓尽致的发挥。他明确指出,电子计算机要做就做到最好。因此,必须大刀阔斧修改原有的设计。而且,冯·诺伊曼还是一位“财神爷”,研究经费不够,他自身有足够的影响力去争取。在他的参与下,整个研制工作取得了突破性的进展,军方也信心倍增,一口气追加了十万美元的研究经费。
加入ENIAC团队后,冯·诺伊曼抛开美国政府高级科学顾问和著名科学家的身份,和ENIAC研制小组成员一起,为改进ENIAC倾注了大量心血。无法出席会议时,他就以信函的方式提出自己的意见。冯·诺伊曼连续开了多次会议,其中1945年春天的四次正式会议尤其具有意义,会议记录甚至以《与冯·诺伊曼的会议》为标题。
通常,冯·诺伊曼在黑板前来回踱步,以提问带动讨论,然后接纳大家的想法,消化琢磨后再将其写在黑板上。冯·诺伊曼的超凡才智令人生畏,他宣布的任何事情很少有人反驳。但有一天,女程序操作员詹宁斯因为和冯·诺伊曼看法不同,与他起了争执,会议室中的男性全都以难以置信的眼光看着詹宁斯。但冯·诺伊曼偏着头沉吟半晌后,同意了詹宁斯的看法。
冯·诺伊曼深知计算机程序设计基本原则的重要性,他明白要设计出简洁的指令集,严谨的逻辑和精确的表达缺一不可。经过反复讨论和不断的思想碰撞,冯·诺伊曼终于提出了一个新的改进方案,一是用二进位制代替十进位制,进一步提高电子元件的运算速度;二是存储程序,即把程序放在计算机内部的存储器中。这个改进方案被称为EDVAC,是“离散变量自动电子计算机”的英文简称。该方案还明确规定了电子计算机必须由运算器、、存储器、输入设备和输出设备五大部分构成的基本结构形式。
1945年6月,冯·诺伊曼提议为EDVAC起草一个逻辑框架报告。该报告题为《关于离散变量自动电子计算机的草案》,约一百页,提出了在数字计算机内部的存储器中存放程序的概念。这成为所有现代电子计算机的范式,被称为“冯·诺伊曼结构”,按这一结构建造的电脑称为“存储程序计算机”,又称为“通用计算机”。EDVAC方案可谓计算机发展史上的划时代文献,它向世界宣告:电子计算机时始了。
EDVAC方案只署了冯·诺伊曼一个人的名字,下有美国陆军军械部与宾夕法尼亚大学的合同编号,于1945年6月30日发布。关于方案的署名问题,艾克特和莫齐利与冯·诺伊曼产生了矛盾。他们认为,冯·诺伊曼是半道来的,方案上只署他自己的名字,而把辛辛苦苦做了一大半研制工作的他们抛到了脑后,实在有些意难平。况且冯·诺伊曼文章提出的存储程序,莫齐利和艾克特也早有类似的想法,并在研制中不断地摸索,冯·诺伊曼只是把它深化、概念化、系统化而已。而冯·诺伊曼撇开研制小组的其他成员,把研制情况公布于世,仿佛是他的独创。不过,艾克特和莫齐利由于要遵守美国的有关保密法规,不能发表有关项目的任何内容。冯·诺伊曼因不能算作ENIAC小组的正式成员且身份特殊,算作参与者同时又是不受保密法限制的旁观者,所以尽可写文章发表。
然而,冯·诺伊曼的设想最终也没能在ENIAC上实现,因为那时ENIAC的总体设计和主体建造工程已经完成。直到1952年,按照EDVAC方案造出的计算机才姗姗来到人间。EDVAC的运算速度虽与ENIAC相似,但它总体效率大大提高,电耗也大大降低,实现了又一个突破。EDVAC甫一问世,就被应用在阿伯丁陆军武器试验场,一直被用到1962年才退役。
二战结束后,艾克特和莫齐利从莫尔学院离开不久,冯·诺伊曼也离开了EDVAC研制小组。当时美国好几所大学都想挖走冯·诺伊。