计算机之父是谁(人物简介和历史贡献)


过了很久,科学家中的全才系列文章才终于完结,今天带给大家的是冯·诺依曼的传奇人生。

前两篇文章的链接:

《量子力学的数学基础》(1926)、《计算机与人脑》(1958)、《经典力学的算子方法》、《博弈论与经济行为》(1944)、《连续几何》(1960),如果告诉你这些书都是出自同一人之手,你会作何感想?估计大部分人会觉得,他为了评职称也太拼了吧,竟敢写这么多东西啊……

上面纯属玩笑,事实上这些著作确实都出自冯·诺依曼一人之手,但他不必担心自己的职称,三十出头就已经是普林斯顿高等研究院的六位特聘教授之一,而且是当中最年轻的一位,要知道,其中还有爱因斯坦哦。所以冯·诺依曼可不是一般的聪明绝顶,看看下面照片中的发量就知道了吧!

对他最全面的评价是:20世纪最伟大的数学家之一,在现代计算机、博弈论等领域的研究远超常人,被后世称为“计算机之父”和“博弈论之父”。怎么样,称他是科学全才,名副其实吧。接下来,我们将逐一探究他在上述各方面的杰出贡献。文章较长,按照老规矩,分为上下两部分,这篇是上半部分。

他最著名的贡献就是为现代计算机奠定了基础,他提出了计算机制造的两个基本原则,即采用二进制逻辑和计算机的存储程序工作原理,他还将计算机划分为五个部分(运算器、控制器、存储器、输入设备、输出设备),这一架构被称为冯·诺依曼体系结构,直至今日的计算机仍沿用该架构,因此我们通常称他为“现代计算机之父”。下面将详细讲述这段历史。

众所周知,ENIAC计算机是世界第一台电子计算机。它于1946年2月14日在费城开始运行。但ENIAC计算机有明显的缺点:它没有存储器,而且使用布线接板进行控制,仅需要连接这些线缆就足以让一群人忙碌一整天,它的运算效率肯定不会很高。ENIAC的研究组显然很头疼,迫切希望能改进计算机的架构。

诺伊曼于1944年参与到原子弹的研制工作中,这项工作涉及极为复杂的计算(可谓是黎明前的黑暗,次年第一颗原子弹就试爆成功了)。在研究核反应进程时,需要对一个反应的传播作出“是”或“否”的回答。解决这一问题通常需要进行几十亿次的数学运算和逻辑指令。他所在的洛斯·阿拉莫斯实验室为此聘请了一百多名女计算员,用台式计算机从早计算到晚,但速度还是太慢。

冯·诺依曼偶然得知了ENIAC计算机的研制计划,就这样机缘巧合地投身到这一崇高的事业中,成就了他传奇一生中最大的丰功伟绩。

冯·诺依曼和奥本海默在第一台计算机前合影

1944年夏季的一天,诺伊曼正在火车站候车,偶遇负责ENIAC计算机研制的美国弹道实验室军方负责人戈德斯坦,并与他进行了短暂的交谈。交谈中,诺伊曼很快对这一研制计划产生了浓厚的兴趣,意识到这项工作的重大意义。

随后,冯·诺依曼经戈德斯坦中尉引荐,加入了ENIAC研究组,带领着一群富有创新精神的年轻科技人员向着更高的目标迈进。加入之后,冯·诺依曼便展示出他渊博的数理基础知识,以及探索问题和综合分析的天赋,在共同讨论的基础上,诺伊曼亲手写了一份报告——《EDVAC报告初稿》,这是一份计算机发展史上划时代的文献。

  • 在这份报告中,冯·诺依曼明确指出新计算机由五个部分组成,包括:运算器、控制器、存储器、输入和输出设备,并描述了这五部分的职能和相互关系,系统地介绍了制造电子计算机和程序设计的思想。
  • 不仅如此,冯·诺依曼还根据电子元件双稳工作的特性,建议在电子计算机中采用二进制。报告论述了二进制的优点,并预测采用二进制将极大地简化机器的逻辑电路。时间证明了诺伊曼的预言是正确的。如今,逻辑代数的应用已成为设计电子计算机的重要手段,EDVAC中采用的主要逻辑电路至今依然沿用,只是在工程方法上和逻辑电路的分析方法上进行了改进。

出于某些原因,这份报告只署名冯·诺依曼一人,这件事后来引发了许多争论,原因也是众说纷纭。其中的原委并不是本文重点,在此按下不表。但有一点是确定的,这篇报告中提出的计算机新架构被称为“冯·诺依曼体系架构”,并沿用至今!

扩展阅读1:计算机到底是谁发明的……

图灵和冯·诺依曼都是计算机领域的泰山北斗,对计算机的发展有着开创性的贡献,但究竟谁才是计算机的真正之父呢?……

一言以蔽之,图灵从理论上论证了计算机的可能性,他应该被称为计算机科学之父;而冯·诺依曼确定了现代计算机的基本架构和技术路线,他应该被称为现代计算机之父

还有一个无法考证的传说(至少我没有找到具体出处),冯·诺依曼在谈到他的理论与构想时,谦虚地说,他的理论与构想的基础来自于英国数学家图灵和布尔的思想。虽然这个说法非常谦虚,但确实是事实。图灵在1936年发表的一篇论文《论可计算数及在密码上的应用》(On Computable Numbers, with an Application to the Entscheidungsproblem)中,严谨地描述了计算机的逻辑结构,首次提出了计算机的通用模型——“图灵机”,并

<img image_type="1" img_height="1080" img_width="1920" mime_type="image/jpg" src="https://p3-sign.toutiaoimg.com/pgc-image/92784868404148b1b7d0a16daf9c91da~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1715615122&x-signature=OULiaZcKloRxlE6eDRZD1PVVnjk%3D" web_uri="pgc-image/92784868404148b1b7d0a16daf9c91da" alt="计算机之父是谁">

在完成 EDVAC 计算机设计项目之后,冯诺依曼转向探索计算本身。与图灵类似,他试图建立信息处理的一般性理论,并在这一过程中开创性地透彻地意识到生命与计算之间的联系。相比于“计算机之父”的称号,冯诺依曼对“计算”理论本身的研究和贡献可能显得不太耀眼,但我认为其意义更深远。

A) 自复制自动机

受生命繁殖的启发,冯诺依曼开始探索“自我复制”的可能性。20 世纪 40 年代末,冯·诺依曼初步解决了这一问题。他在加利福尼亚海克森研讨班上发表了一系列演讲,核心问题在于“机器如何才能自我复制”?他提出,任何可以自我复制的系统都应同时具备两个基本功能:

  • 构建一个与自己组成元素和结构完全相同的下一代;
  • 将对自身的描述传递给下一代。

他分别将这两个组成部分称为“通用构造器”和“描述器”。描述器又包括“通用机器”和通用机器可读取介质上保存的描述信息。显而易见,他的兴趣点和思维方式都与计算机及其具体实现相关。换言之,冯诺依曼的目标是将自我复制功能转化为一种自动化。

这样一来,只要有合适的原材料,通用构造器就可以根据描述器的指示生成下一台机器,并将描述信息传递给这台新机器。随后,新机器启动,进入下一个循环,如此往复,生生不息。

<img image_type="1" img_height="798" img_width="1200" mime_type="image/jpg" src="https://p3-sign.toutiaoimg.com/dfic-imagehandler/85e2c6ce-acb6-4af4-8087-e37eb21befd3~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1715615122&x-signature=4h5sfilX9ZxNtsDyhr0f1kvJV24%3D" web_uri="dfic-imagehandler/85e2c6ce-acb6-4af4-8087-e37eb21befd3" alt="计算机之父是谁">

值得注意的是,冯诺依曼在遗传物质被发现之前就做出了这些思考!几年后的1953年,沃森和克里克发现DNA 完全符合冯·诺依曼提出的两个要求。从这个角度来看,生命本身就是一台自动机。不仅如此,冯诺依曼还提出了构建能够自我复制机器的完整设计!而冯诺依曼用于研究自我复制机器的工具是:元胞自动机。

B) 元胞自动机

前文提到的冯诺依曼体系架构是一个中心化的计算系统,整个计算机系统的核心是 CPU,程序存储在存储器中由 CPU 顺序执行。相比之下,元胞自动机是一种去中心化的计算系统,通常由大量“元胞”组成,每个“元胞”的状态受其周围元胞状态的影响,并且所有元胞都遵循相同的规则来确定自身状态。

尽管规则如此简单,即使组成系统的元胞数量再多,也似乎应该毫无活力。然而事实却并非如此!元胞自动机系统可以呈现出极其复杂和丰富的整体行为,即使它们没有任何中央控制单元。如果您有兴趣了解更多信息,请参阅扩展阅读部分中的简单介绍:

扩展阅读 2:元胞自动机

<img image_type="1" img_height="85" img_width="250" mime_type="image/jpg" src="https://p3-sign.toutiaoimg.com/pgc-image/3db39ae1721f4d5b9c3dff5666f25655~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1715615122&x-signature=FDRtRSTvP8TDdhA4mFGVZFK3PaY%3D" web_uri="pgc-image/3db39ae1721f4d5b9c3dff5666f25655" alt="计算机之父是谁">

灯泡阵列:元胞自动机的一种实现,摘自《复杂》一书

上图所示的灯泡阵列可以用来理解元胞自动机的概念。每个灯有“开”和“关”两种状态,每个灯与周围的 8 个灯相连(边上的灯会认为与另一边的相连,例如最左边的灯,会认为与最右边的灯相连。这样所有灯都与 8 个灯相连)。初始阶段,部分灯开部分灯关。元胞自动机像 CPU 一样一步一步地进行计算。

每个元胞自动机都有一个规则,用于说明每个灯如何根据先前周围 8 个灯及自己的状态决定自己下一步时的状态(例如一种规则可以是:采用邻域占多数的状态。图中展示了这种规则下下一步此元胞自动机会如何变化)。

同样,我在本文的最后一部分也提到了一个简化的二维元胞自动机:生命游戏的内容。大家可以参阅扩展阅读部分,此处不再赘述。

冯诺依曼证明了他的元胞自动机等价于通用图灵机,这意味着元胞自动机同样具有通用计算的能力!它是一种与冯诺依曼架构完全不同的另一种计算机!计算机架构分为“冯诺依曼”架构和“非冯诺依曼”架构,结果“非冯诺依曼”架构中最重要的一种是由冯诺依曼提出的……计算机尊称他为父亲,实至名归吧。

由于冯诺依曼对计算和计算机的贡献实在太耀眼,与本主题相关,因此我将其包含在本篇中。在下一篇文章中,我将与大家讨论冯诺依曼在其他领域的成就,它们同样光芒四射。