冯·诺依曼的传奇人生

架构师(JiaGouX)我们都是架构师!
架构未来,你来不来?



今天我才意识到,我对冯·诺依曼的了解非常少。我只是知道冯·诺依曼结构,以及还道听途说过一个他如何快速解答数学难题的故事。

·诺依曼结构指的是指令和数据都存储在同一种内存中,按顺序从内存中提取指令并执行。这种计算机组织方式在今天看来理所当然,但在计算机刚发明时并非如此。

关于冯·诺依曼的那个故事是这样的:

两列火车相距 60 公里,在同一轨道上迎面行驶。每列火车以每小时 30 公里的速度行驶。一只苍蝇从一列火车的前端出发,以每小时 60 公里的速度在两列火车之间来回飞行。问题要确定苍蝇在火车相撞并被压扁之前飞行的总距离。

一种解决方法是对苍蝇来回飞行的无穷级数求和。当然,还有一种更简单的方法解决这个问题,由于每列火车以每小时 30 公里的速度朝对方行驶,所以它们之间的距离以每小时 60 公里的速度缩短。因为两列火车相距 60 公里,所以它们将在 1 小时内相撞。由于苍蝇的飞行速度是每小时 60 公里,所以它在 1 小时内飞行的总距离是 60 公里。

当这个问题给到冯·诺依曼时,他迅速给出了正确答案。提问者对他的快速反应感到惊讶:“啊,你用了简便的方法来计算答案,而不是级数求和。” 冯·诺依曼回答说:“不,我在脑子里进行了级数求和。”

多年以前我就听说这个故事了。它可能是杜撰的,但我喜欢这个数学问题,并且一直记得这个故事。

约翰··诺依曼 1903 年出生于布达佩斯的一个犹太家庭。1913 年,他的父亲马克斯被奥地利皇帝弗朗茨·约瑟夫一世授予世袭头衔,这就是名字中 “冯” 的来源。约翰移居美国后,将名字英文化为 John von Neumann。

他的数学天分很早就显现了,17 岁时就发表了第一篇数学论文(关于切比雪夫多项式的零点)。



动荡的数学


20 世纪初,数学界爆发了一场基础危机。其根源在于人们发现了欧几里得的《几何原本》中存在一个缺陷,这本几何学经典已经使用了几个世纪。书中有五条无需证明的公理,通过这些公理的逻辑推理,可以证明更高级的定理(如勾股定理)。这些公理是数学的基石。

19 世纪 30 年代,欧几里得的第五公设(即平行公设)被证明是不成立的。它指出,如果两条直线与第三条直线相交,使得内角之和(图中的 a 和 b)小于 180 度(即两个直角),那么这两条直线必定在某一点相交。另一方面,如果 a 和 b 的和等于 180 度,那么它们永远不会相交(是平行的)。

平行公设在平面上是成立的,但在双曲几何中则不成立,因为在双曲几何中,曲面可以像马鞍一样弯曲。19 世纪 50 年代,伯恩哈德·黎曼(德国数学家)引入了具有任意维数的空间,即超空间。

到 19 世纪末,许多其他来自欧几里得几何的定理和证明开始受到质疑。大卫·希尔伯特(德国数学家)以更系统和严谨的方式着手从头开始重建几何理论。1899 年,他出版了《几何基础》一书。当时一些科学家认为有些问题无法回答,希尔伯特则持相反意见 ——“我们能知道,我们将知道”。在成功解决几何问题后,他希望对所有数学进行同样的处理:确保其建立在不可辩驳的公理和坚实的定理基础上。

但是,这个项目几乎马上就遇到了问题。1901 年,英国哲学家伯特兰·罗素在集合论中遇到了一个悖论。一些集合是简单的,例如可能的芝士蛋糕集合。这个集合不包含集合本身,因为那个集合不是一个实际的芝士蛋糕。我们称这些集合为正常集合。但当你考虑补集 —— 所有不是芝士蛋糕的东西的集合,那么那个集合是它本身的成员。我们称那些是自身成员的集合为异常集合。

现在让我们构建所有正常集合的集合,并称之为 R。如果 R 是正常的,它应该包含在 R 中,因此是异常的(因为它会包含自己)。另一方面,如果 R 是异常的(即它是一个包含自己的集合),它将不包含在所有正常集合的集合中(它自己),因此是正常的。这就是罗素悖论。

这与 “说谎者悖论” 具有相同的结构:“这句话是假的”。如果他确实在说谎,那么他所说的就是真的,但如果他所说的就是真的,那么他就是在说谎;如果他不在说谎,则他说的话为假,但如果他在说谎,则他说的话就是真的。在这两种情况下,问题都源于悖论的自指部分。

罗素悖论威胁到希尔伯特将数学建立在更严格基础上的计划。他问道:“如果数学思维有缺陷,我们在哪里能找到真理和确定性?” 冯·诺依曼在 1925 年的一篇论文中提出了这个问题的解决方案。

在这篇论文中,他列出了构建集合论所需的所有公理。为了避免罗素悖论,他引入了集合和类。类被定义为共享某一性质的集合的集合。不存在 “所有不是其自身成员的集合的集合”,但存在 “所有不是其自身成员的集合的类”。这个类不是它自身的成员,因为它不是一个集合(它是一个类)。

这一发展符合希尔伯特的意愿。1928 年,他向数学家们发起挑战,要求他们证明数学是完备的、一致的和可判定的。

完备意味着所有数学定理都可以从有限的公理集中证明。换句话说,给定一些固定的公理集,是否有每个真实命题的证明?一致性意味着公理不会导致任何矛盾。即,是否只能证明真实命题?而可判定性意味着应该有一个逐步的过程(算法),可以在有限时间内用于判断特定数学命题是真还是假。

这个最后的性质成为了著名的 Entscheidungsproblem(判定性问题,德语中的 “判定性问题”,因为当时德语是科学语言)。十年之内,答案揭晓:数学既不完备也不一致,更不可判定


量子力学


与此同时,物理学也经历了一场危机。1900 年,德国物理学家马克斯·普朗克提出能量可能以离散的量子吸收或发射。1905 年,爱因斯坦提出光可能由粒子流组成,这首次揭示了量子实体具有波动性和粒子性。丹麦物理学家尼尔斯·玻尔提出了原子模型,其中电子只能占据特定的轨道,轨道之间的差异等于能量的差异。

为了描述原子的行为,沃纳·海森堡(德国物理学家)在 1925 年提出了 “矩阵力学”。他想要一个能解释实验结果的理论。在实验中,科学家会通过例如在火焰中蒸发一小片材料或通过气体中传递电流来 “激发” 原子,产生光。每个元素都有特征谱线(特定频率和强度)。

海森堡提出,电子初始和最终能级之间的差异解释了原子发射线的频率。可能的能级间跃迁可以用矩阵形式表示(具有无限大的矩阵)。由于从初始能级到最终能级可能存在不同的路径(例如通过中间能级),为了获得所有可能跃迁的概率,他将各个跃迁与其各自的概率相乘。

大约在同一时间,埃尔温·薛定谔(奥地利理论物理学家)提出了一种完全不同的描述原子的方法,即波函数的无限叠加。就像海森堡的模型一样,这很好地描述了原子的实验行为。

但两个截然不同的模型怎么都能如此准确地描述现实呢?它们能证明是一样的吗?这正是冯·诺依曼在希尔伯特的帮助下所做的。我不敢说完全理解这些数学,它涉及算子、本征函数、希尔伯特空间和平方可积函数。最终,·诺依曼证明了展开波函数的系数就是状态矩阵中的元素,换句话说:它们本质上是同一个理论!


炸弹

1930 年,冯·诺依曼在接受普林斯顿大学的工作邀请后移居美国(后来在高等研究院工作)。同年,纳粹成为德国第二大党派。1933 年他们上台后,犹太人被迫离开社会的各个领域。大学的数学和物理系受到了特别严重的打击,大约 15-18% 的教职人员被解雇。被解雇的研究人员中有 20 位是前或未来的诺贝尔奖得主。许多研究人员(包括几乎所有量子力学的创始人)移居美国。瞬间,科学成果的质量平衡从德国转移到美国。在纳粹之前,几乎所有重要的物理和数学成果都以德语发表。战后,美国成为主导力量。

·诺依曼很快从普林斯顿转到高等研究院。他在那里的一项成就是证明了遍历假设。该假设本质上弥合了系统中单个粒子的微观行为与热力学中观察到的宏观性质之间的差距。1935 年,冯·诺依曼的女儿玛丽娜出生,他成为了父亲。1936 年,图灵访问普林斯顿,冯·诺依曼读了他的论文《论可计算数》。

在 20 世纪 30 年代,冯·诺依曼预测欧洲会发生战争。1941 年 9 月,在美国参战前,冯·诺依曼给国会议员写信:“当前的反对希特勒主义的战争不是一场外国战争,因为为之奋斗的原则是所有文明人类共同的原则,即使与希特勒妥协也会对美国的未来构成最大威胁。”

计算炮弹弹道轨迹,需要考虑许多变量。例如,远程炮弹在飞行过程中随着高度的增加,空气会变得越来越稀薄,因此受到的阻力会减小。这些因素导致计算单个轨迹需要数百次乘法。计算炸弹的冲击波也需要高级数学。

·诺依曼在 1937 年成为陆军正式顾问之前就参与了这项研究。随着他能力的不断展示,他开始越来越多地参与其中。他贡献之一是表明炸弹在目标上空爆炸造成的破坏远大于在地面爆炸。这是由于空爆造成的破坏。这个基本原理之前就已知晓,但他证明这种效应比以前认为的要大得多。他还改进了计算炸弹爆炸最佳高度的精确度。

1943 年,罗伯特·奥本海默(美国理论物理学家)写信给冯·诺依曼,邀请他帮助完成原子弹项目。当时,有两种引发核爆炸的方法:枪式设计(将可裂变材料的 “子弹” 射入目标以启动核链反应)和内爆设计(围绕核心的高爆炸药被引爆以压缩核心从而触发核反应)。为了使内爆装置工作,核心必须从所有方向均匀压缩。

当冯·诺依曼到达洛斯阿拉莫斯时,枪式设计是首选项。他的主要贡献是设计了围绕钚核心的楔形炸药,使压缩速度足够快确保内爆装置启动。这也意味着与枪式设计相比,达到同等的爆炸威力所需的钚更少,因此重点转向了内爆设计。

计算机

在研发原子弹时所需的计算变得难以处理。·诺依曼知道当时正在研发自动计算机,他成为在洛斯阿拉莫斯使用自动计算机的主要倡导者1944 年他在等火车时偶然了解到 ENIAC(电子数值积分计算机)项目。当时 ENIAC 还需要一年多的时间才能完成,但冯·诺依曼立即意识到了它的用处。当时他是美国排第二的科学家(仅次于爱因斯坦),在政府和军界有很大的影响力。他的第一个贡献是确保该项目有足够资金。

他不仅有必要的人脉和影响力,还看到了计算机进行计算的必要性。他也许是最了解现代计算机数学和逻辑基础的人,因为他非常熟悉哥德尔(数学家、逻辑学家和哲学家)和图灵的工作。

哥德尔

1931 年,哥德尔证明如果算术是一致的,那么在算术中存在无法证明的真命题,即算术是不完备的。

证明使用了一种变体的说谎者悖论。考虑命题 “这个命题不可证明”。我们称这个命题为 A 命题。假设 A 命题可以被证明,那么它是假的(因为它声称不可证明)。这意味着一个假的命题可以被证明(这将是不一致的)。另一方面,如果 A 命题不能被证明,那么这个命题是真实的(因为它声称不可证明)。所以我们有一个无法证明的真命题。这意味着要么算术是不一致的(这将使其无用,因为假的命题可以被证明),要么它是不完备的(即它有无法证明的真命题)。

到目前为止,上述只是逻辑命题,不是算术。但哥德尔巧妙地用算术表达了上述思想,使用现在被称为哥德尔数的系统。他想出了一个为《数学原理》中的所有公理和定理编号的系统。此外,在他的系统中,某种操作总是对应于相同的算术操作。

例如,假设 “所有天鹅都是白色的” 命题的哥德尔数是 122。该命题的否定是 “不是所有天鹅都是白色的”,其哥德尔数可能是前者的两倍,即 244。这个性质(哥德尔数加倍)对所有否定都成立,而不仅仅是这个特定的命题。此外,每个哥德尔数可以明确解码回其原始表达式。

在这个系统中,所有逻辑操作都有相应的算术操作。证明是一系列逻辑命题的链接。通过哥德尔的系统,他能够将证明转化为其等效的算术操作。因此,任何证明都可以通过简单的数学检查。有了这个,他产生了一个反映 “这个命题不可证明” 短语的算术命题,并使用算术展示了上述结果。换句话说,数学语言可以用来对数学进行元命题。

通过让算术讨论算术,哥德尔消除了语法和数据之间的区别。他还表明数字可以表示逻辑运算,就像现代计算机中的指令一样。指令的内存地址让人联想到哥德尔数。

图灵

1931 年,哥德尔证明了希尔伯特的前两个问题的答案是否定的。五年后,图灵证明数学不可判定。为此,他发明了一台假想机器,就是我们现在说的计算机。

现在称为图灵机的机器非常简单。它由一条无限长的带子组成,每个方格可以包含一个符号,也可以为空。机器有一个读/写头,可以从带子上读取一个符号,擦除它,并写入一个新符号。读/写头还可以将带子向左或向右移动一个方格。读/写头还有一个 m 配置,即说明该做什么的指令和当前状态。

例如,如果读取到一个 0,则擦除它并写入一个 1,然后向左移动。今天我们称 m 配置为它的程序。

使用这个非常简单的机器,图灵建立了一套指令表(即子程序,尽管他没有这么称呼),用于查找和替换符号,擦除所有特定类型的符号等。通过这些,他展示了如何构建一个 “通用计算机”,它本身就是一个图灵机,能够模拟任何其他图灵机。

给定其他图灵机的 m 配置(编码为带子上的符号)和那台图灵机的输入带子,通用计算机将输出与那台图灵机相同的结果。

有了这个通用图灵机,图灵展示了 Entscheidungsproblem(判定性问题)是不可能解决的。为此,他提出了停机问题。

假设有一台图灵机可以可靠地回答另一台图灵机在给定输入时是否最终会停止,称之为 H。现在创建一个新的图灵机 H',它包含 H。H' 将使用 H 处理其输入,如果 H 回答 “会停止”,H' 就进入无限循环。另一方面,如果 H 回答 “不会停止”,H' 就停止。现在用 H' 自身作为输入运行 H'。这导致了 H' 既停止又不停的逻辑不可能性。因此 H' 不能存在,这意味着 H 不能存在。换句话说,不可能有一个通用程序来判断一个数学命题是真还是假

·诺依曼结构

ENIAC 于 1945 年底投入使用。它并没有用于炮兵射击表,而是用于解决洛斯阿拉莫斯氢弹项目的偏微分方程。ENIAC 的程序是固定的,但可以通过跳线重新配置(就像旧电话交换机)。但其背后的科学家已经在研发继任者。

1945 年 6 月,冯·诺依曼写了《EDVAC 报告书的第一份草案》。与 ENIAC 不同,新架构的程序和数据以相同方式存储在内存中,这意味着它可以很容易地重新编程。

·诺依曼不是唯一一个考虑以这种方式组织计算机的人,但他清晰的描述使这种思路得以成型。他对哥德尔和图灵工作的熟悉很可能有所帮助。该报告广泛传播,有助于将这种设计保持在公共领域(开源),而不是申请专利。这无疑加速了这种设计的发展和采用。

其他首创

·诺依曼的朋友兼同事斯坦尼斯瓦夫·乌拉姆(数学家、核物理学家)发明了使用重复模拟计算概率的蒙特卡罗方法。他在医院疗养期间,为了缓解无聊,开始玩纸牌游戏。他试图计算完成一手牌的概率,但计算很快变得难以处理。然后他意识到只需跟踪 100 次尝试中的成功次数即可获得一个好的估计。于是蒙特卡罗模拟诞生了。

·诺依曼迅速将这种新技术应用于洛斯阿拉莫斯的连锁反应炸弹计算中。

要运行蒙特卡罗模拟,需要随机数源。冯·诺依曼提出了一种产生随机数序列的方法,称为 “中位数方法”。他的方法是将一个 8 位或 10 位的二进制数平方,然后使用中间的数字作为下一个随机数。这个数字反过来被平方,其中间数字成为下一个随机数。当然,这不是完全随机的,但已经足够用了。冯·诺依曼后来评论说:“任何考虑用算术方法生成随机数的人都犯了僭越之罪。

·诺依曼和他的同事赫尔曼·戈尔茨坦(美国数学家)发明了描述模拟程序工作流程的流程图。冯·诺依曼的妻子克拉拉在项目中担任程序员。在 1948 年 4 月的一次编程中,克拉拉使用了冯·诺依曼 “中位数方法” 生成随机数。子程序的发明通常归功于计算机科学家大卫·惠勒,但克拉拉的代码至少提前一年使用了一个子程序。

1955 年,冯·诺依曼注意到计算能力自 1945 年以来几乎每年翻一番,他认为这一趋势将继续下去。值得注意的是,它比摩尔定律早了十年。

博弈论

·诺依曼还帮助创立了博弈论。博弈论是什么意思?棋类游戏在博弈论意义上并不是游戏。正如冯·诺依曼解释的那样,棋类是一种计算形式。在每种情况下都有一个最佳走法。我们可能找不到最佳走法,但它确实存在。另一方面,在博弈论的游戏中,你必须考虑到对手可能会虚张声势,并且你必须考虑其他玩家对你的行动会做出什么反应。博弈论始于 1928 年,冯·诺依曼发表了《On the Theory of Parlour Games》一文。在文中,他证明了极小极大定理。他考虑了一个两人游戏,其中一个人的收益是另一个人的损失。他创造了 “零和博弈” 这个术语。策略是最小化玩家的最大损失。他证明在每个两人零和游戏中,都存在一个保证最佳结果的策略。

1944 年,冯·诺依曼和奥斯卡·莫根施特恩(经济学家)合著的《博弈论与经济行为》出版,尽管厚达 1200 页,但依然成了畅销书。在书写时,经济学家没有一种方法来解释人的偏好。冯·诺依曼提出了一个从 0 到 100 的幸福 / 效用量表,用于解释这些偏好。效用理论和理性计算个体的概念在这里被引入,并广泛传播。

在书中,冯·诺依曼还分析了扑克游戏。他通过给每一手牌打分(在 1 到 100 之间)简化了分析。他还将出价简化为高或低。通过这些简化,他能够展示虚张声势的重要性。虚张声势的目的不是试图用差牌取胜,而是鼓励对手在你有好牌时用中等牌下注。

这本书在很多领域都有应用,例如如何处理垄断,最终在许多领域得到了帮助,如进化生物学。另一个应用是冷战规划,例如核战略,尤其是在加利福尼亚圣莫尼卡的兰德公司(Research ANd Development)。兰德公司成立时是美国陆军航空队的智库。兰德公司的研究主题完全符合冯·诺依曼当时痴迷的三个领域:计算机、博弈论和炸弹。

兰德公司进行的一个研究例子是决斗,例如两架飞机即将互相射击。每个人都希望推迟开火,直到接近对方以增加击中的机会。同时,它仍然希望先开火。这是一个很好的两人零和博弈的例子。兰德公司研究的另一个问题是核战争。在二战结束后,有许多人主张对苏联进行先发制人的核打击,知道这个消息后我跟震惊。


自我复制

·诺依曼的各种项目已经让他忙得不可开交,但他还对比较生物机器和合成机器产生了兴趣。然后写了《自复制自动机理论》一书。他在思考是否可以构建一个能够自我复制的机器。对于那些怀疑是否可能的人,他回答说自然界中的生物体一直在自我复制。

·诺依曼以通用图灵机为起点。只要给它指令和输入,它就可以模仿任何其他图灵机。要让它复制自己需要什么?冯·诺依曼的答案是需要三样东西。首先,它需要一套如何构建新机器的指令。其次,机器需要一个构建单元,通过遵循指令来构建新机器。最后,机器需要一个单元来复制指令并将其插入新机器中。

有趣的是,在 1953 年发现 DNA 结构的五年前,在科学家对细胞复制有详细了解之前,冯·诺依曼就已经确定了实体自我复制所需的关键步骤。

一段时间后,冯·诺依曼开始思考是否需要三维空间,或者在二维空间中是否可以实现自我复制。在斯坦尼斯瓦夫·乌拉姆的启发下,他开发了被称为元胞自动机的模型。


他的元胞自动机模型生活在一个无限的二维网格上,由方格或细胞组成。每个细胞可以处于 29 种不同状态中的一种。此外,每个细胞只能与其四个相邻细胞通信。通信和通信规则有很多。大多数细胞起始时是休眠状态,但可以被邻近细胞激活,之后也可以被 “杀死”。

使用这种设置,他构建了执行自我复制所需三项任务的单元。他构建了一条由休眠细胞(表示 0)和活跃细胞(表示 1)组成的带子。加上一个可以读取和写入带子单元的控制单元,他能够在二维空间中复制通用图灵机。然后,他设计了一条可以伸出到任意单元,设置其为正确状态,然后收回的构建臂。设计比他预期的花费时间更长,所以其他紧迫的政府任务他未能完成设计。

·诺依曼 1957 年去世后,曾与他合作 ENIAC 项目的阿瑟·伯克斯(中国社会科学院外籍客座教授)通过整理他的笔记完成了自动机。完整的机器可以装在一个 80×400 个单元格的盒子里,但有一个巨大的尾巴,长达 15 万个方格,包含了克隆自己所需的指令。启动时钟,逐步开始工作,读取并执行每个带子指令,在某个距离创建一个自己的副本。

首次尝试在计算机上实际运行他的设计是在 1994 年,但那时需要的时间太长。不过,在现代笔记本电脑上,只需几分钟就能运行。最著名的细胞自动机例子是 1970 年开发的康威生命游戏。


最后

·诺依曼是一个如此令人着迷的人物。他参与了许多重要的科学项目并获得突破,让人难以置信。

如喜欢本文,请点击右上角,把文章分享到朋友圈
如有想了解学习的技术点,请留言给若飞安排分享

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享

·END·

相关阅读:

作者:李木子

来源:AI大模型实验室

版权申明:内容来源网络,仅供学习研究,版权归原创者所有。如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!

架构师

我们都是架构师!



关注架构师(JiaGouX),添加“星标”

获取每天技术干货,一起成为牛逼架构师

技术群请加若飞:1321113940 进架构师群

投稿、合作、版权等邮箱:admin@137x.com

相关推荐

  • 何为“用户画像(Persona)”,它在产品设计和市场研究中发挥了什么作用呢?
  • 开眼!!!CODESYS竟然支持这么多协议
  • 37.4K Star 万人选择!!!做数据面板,用这个UI准没错
  • 麻省理工开源:《理解深度学习》,有中文版了!
  • 物种多样性的后续,难绷······
  • 字节员工“跳槽”到上海市政研室
  • 胳膊肘往外拐?AMD的AI GPU助推器增加对英伟达的支持
  • CrowdStrike更新致850万Windows设备宕机,微软紧急救火!
  • 被 GPT-4o 的价格劝退了!
  • 程序员都干过哪些很刺激的事情?
  • 成都周报丨单季度收入50亿的药企,准备A+H双上市了
  • 超21亿,国家大基金二期投了一家重庆公司丨投融周报
  • 开发者的狂欢!首屏速度飞快,服务器配置提升80%!
  • 10 个非常有创意的 Button 按钮效果【附源码】
  • 我们公司都用哪些软件?强烈推荐这些!
  • 写代码时遇到了乱码 “锟斤拷”,我有点懵
  • 70K!一个门槛极低的新方向!
  • DataOps+大模型促进数据工程创新
  • 高于临床测试3倍准确率!剑桥大学开发AI模型,提前6年预测阿尔茨海默症
  • 前谷歌科学家Yi Tay「LLM演义」系列博客第一弹:BERT为何匿迹江湖?