1951 年,美国军方透过冯.纽曼的协助,斥资五十万美元打造了计算机“EDVAC”。相较于十进位、又须人工插接电路的 ENIAC,可以说 EDVAC 是第一台现代意义的通用计算机,直至今的现代电脑皆仍采用冯.纽曼架构。
在我们介绍冯.纽曼其人其事、与现代电脑的运作原理前,先让我们重看一次标题所提出的问题:电脑是怎么来的?为什么冯.纽曼能够造出这样的一台电脑?
不少人把冯.纽曼当作是电脑科学的奠基人,有人甚至称他为电脑之父。然而他本人并不接受这个称号。
冯.纽曼认为他的研究成果是受到了英国数学家图灵 (Alan Turing) 所启发,他仅仅是发扬光大图灵的原始概念。这台可储存程式电脑真正的意义,其实就是通用图灵机。冯.纽曼将这个概念的创始人公正无私地还予图灵。
图灵:可计算理论与图灵机
好吧这么来看,如果我们想要了解电脑是怎么来的,势必得再先去了解图灵这位同样有着“电脑科学之父”与“人工智慧之父”之称的伟大学者,与其图灵机 (Turing Machine) 的理论了。
1934 年,年仅 22 岁的图灵从剑桥大学毕业、到美国普林斯顿大学攻读博士学位。二战爆发后,图灵在 1939 年被英国皇家海军招聘,协助军方成功破译德国的密码系统 Enigma,让英国军方对德国的军事计划了如指掌。图灵小组的杰出工作,更使得盟军提前至少两年战胜纳粹。
--上述是电影《模仿游戏》的史料。对于图灵生平有兴趣的读者,可以参考这部向图灵致敬的电影。
除了作为一位杰出的密码学家,在电影没详述的部分中,图灵在电脑科学上的贡献更是难以抹灭。
1936 年,24 岁的图灵发表了一篇论文《论可计算数及其在判定问题上的应用》(On Computable Numbers, with an Application to the Entscheidungsproblem)。在这篇极富开创性的论文中,图灵提出了图灵机(Turing Machine) 概念。
图灵机不是一台具体的机器,而是一种运算模型,可制造一种十分简单但运算能力极强的机械装置,用来计算所有能想像得到的可计算函数。
图灵机是阐明现代电脑原理的开山之作,奠定了整个电脑科学的理论基础。如果说冯纽曼是实际打造出一台现代电脑的电脑之父,其所依据的理论基础即源自于图灵机。
但,什么叫可计算?为什么图灵会探讨这个问题?实际上,上述关于图灵论文与图灵机的介绍,更明确的说法应是:图灵在 1936 年发布的论文中,对于“哥德尔不完备定理”重新做了论述。相较于哥德尔在证明其不完备定理时、采用的通用算术形式系统,图灵使用了叫做“图灵机”的简单装置作为代替。
咦,我们这边又多提到一个人了?!哥德尔……?
哥德尔不完备定理
哥德尔 (Gödel) 被誉为自亚里士多德以来、历史上最伟大的逻辑学家之一。毫不夸张地说,正是哥德尔使数理逻辑与哲学界发生了极大的革命。
爱因斯坦曾说:我之所以还到研究院来,只是为了与哥德尔一起走路回家。
1931 年,19 岁的图灵进入剑桥大学就读;但这一年,同时成了撼动数学界的里程碑——奥地利数学家哥德尔提出不完备定理,证明不存在既完备又一致的数学体系,粉碎了无数位数学家追求圣杯的野心。
人类总是渴求着确定的知识,也称为真理——借由纯数理论与逻辑证明,数学家不断寻找著真理的可确定性。
哥德尔当年的发现,简单来说是:“并非所有为真者,皆可循一逻辑演绎过程而得知”。再更直白点就是:“真理的范围、比我们所能证明的范围还大。”
数学家乃借由公理(不证自明、理所当然为真的命题)进行一连串的推理、最后得出数学定理;基本上是活在一个以逻辑演绎为本质的世界。今天突然有人成功证明了:有些数学命题,我们既没办法证明它为真,也没办法证明它为假……,可想而知,这对于数学界无非是一项沈重的打击!
五年后的图灵之所以提出图灵机计算模型,即是以计算机的形式重新演绎了哥德尔的不完备定理,同时补充了判定问题--是否存在一个程式,能判断:我们任意输入的一个程式,是否能在有限的时间内结束步骤?或者会陷入无穷回圈?(当我们对电脑下两个指令:【往左后往右】与【往右后往左】,电脑就会陷入无穷的回圈)
哥德尔的发现,引起了当时重要数学家如希尔伯特与冯.纽曼(还记得这个人吗? 这位计算机之父早年是希尔伯特的助手)等人的重视。到后来不但启发了后续众多数学家、哲学家:若无法使用逻辑演绎完全了解宇宙,该何以为继?更激起图灵创造出了电脑科学在理论上的滥觞。
但是,为什么哥德尔会探讨这样的问题呢?因为有人下了战帖!
谁?就是上上句我们提到的大数学家希尔伯特!
希尔伯特的23个问题
希尔伯特 (David Hilbert) 是二十世纪初期德国最伟大的数学家之一。
在世纪之交的 1900 年、一场巴黎国际数学家大会的演讲当中,希尔伯特根据 19 世纪的研究成果和发展趋势,以卓越的洞察力提出了 23 个当时尚未被解开的困难数学问题,并鼓舞年轻数学家积极攻克:
“ 在我们中间,常常听到这样的呼声:这里有一个数学问题,去找出它的答案!你能通过纯思维找到它,因为在数学中没有不可知。”(希尔伯特大大按曰:只要解出来就能名留青史噢)
这就是著名的希尔伯特的 23 个问题。
希尔伯特的 23 个问题对 20 世纪的数学研究起了积极的作用,不但超乎希尔伯特的预期,更未曾预料到从其中衍生而出的电脑科学、将会对世界产生无比重大的影响。
而哥德尔之所以提出不完备定理,想解答的正是这 23 个问题中的第二个问题:算术公理系统的无矛盾性。简单来说,希尔伯特希望能以一个完美的形式系统,成功证明所有的真理、同时找出所有矛盾的陈述。
在这个问题上,希尔伯特原先坚定地表示:“ 没有人能将我们逐出康托尔的乐园。”不仅仅是第二个问题,希尔伯特在 23 个问题中所提出(显然最在意)的第一个问题连续统假设,也是康托尔的研究中所面临问题。
康托尔……?请放心,这会是本篇文章中所出现的最后一位人名了。
无限多的危机:康托尔集合论
到目前为止,我们已经使用了许多强烈的形容词,包括:电脑科学之父、伟大的逻辑学家、数学家……但在这些学者的研究基础上,我们不能不提现代数学的奠基者——集合论之父康托尔 (Cantor) 。
令集合 A = {1, 2, 3, 4, 5 },B = {1, 3, 5, 7, 9}
则 1, 3, 5 同时为集合 A 和 B 的元素,且 A 集合和 B 集合的大小相等。
康托尔可以说是数学史上最富有想像力的数学家之一,其所开创的集合论则可以说是人类最伟大发明之一--当年康托尔面临的,正是数学界几百年几千年的疑惧:“无限”。
1-1+1-1+1… = 0, 1 还是 1/2? 0.99999….. = 1?还是 <1?
无限有多大?正整数、整数 (正整数 / 负整数 / 0)、实数(有理数 / 无理数) ……等数系的数量相同吗?
Z+: ∞ (正整数有无限多个), Z-: ∞ (负整数有无限多个), Z: ∞ (整数有无限多个)。
因此: ∞ = 2∞+1 (所有整数个数 = 正整数个数+负整数个数 + 一个 0), 移项得: -∞ = 1,
故: ∞ = -1 …?!
为了处理“无限”这个长久得不到解决的难题,康托尔在 19 世纪下半叶创立了「集合」理论,证明了各个数系虽然是都是无限多,还是有数量上的差别:
| 正整数 | = | 整数 | = | 有理数 | < | 无理数 | = | 实数 | = | 复数 |
无限多的正整数数量 = 无限多的整数数量 = 无限多的有理数数量 < 无限多的无理数数量 = 无限多的实数数量 = 无限多的复数数量
然而集合论实在太过创新、对于无限的解释也背离了传统,刚开始时康托尔受到了严厉的谴责与挞伐。
但随后,许多年轻的数学家开始意识到集合论非常的有用--基于自然数 (正整数)与集合论,当时一切的数学成果都可以成功被推证出来。
1900 年在国际数学家大会上,法国数学家庞加莱兴高采烈地宣称:“借助集合论,我们可以建造起整个数学大厦。”1925 年,希尔伯特也提出了「希尔伯特旅馆悖论」来应和康托尔的理论。
然而康托尔集合论仍然面临了许多问题。首先是连续统假设--我们已知:
| 正整数 | = | 整数 | = | 有理数 | < | 无理数 | = | 实数 | = | 复数 |
那么还有没有一个数系,介于此二者间呢?
始终证明不出问题、又受到世人无数攻讦的康托尔,晚年发了疯、死在精神病院中。
但除此之外,集合论还有一个问题是罗素悖论:“这句话是假的。”读者只要稍加推论就会发现:如果这句话是真的,那么这句话是假的会成立……?!如果这句话是假的,那这句话就是真的……?! 这个命题就矛盾了。
罗素悖论应用在集合论的问题即是:如果我们创造一个集合 A,里面收集了所有不包含在自己这个集合的集合:A = {x|x∉x}。若是 A∈A 成立,则 A 是 A 的集合、使得 A∉A。但若 A∉A,则符合命题,使得 A∈A。
好不容易我们在集合论的基础上构筑起了数学大厦,结果发现集合论也是不完美的。究竟能不能找到一个完备的系统,从上面建筑起整个数学的基础呢?
这样的系统是否存在呢?希尔伯特除了在 23 个问题中的第一个问题提出「连续统假设」,身为康托尔坚定的拥护者,也在第二个问题中提了这样的难题。
这也接续到我们先前的介绍:再后来哥德尔成功证明了不完备定理、解决了 23 个问题中的第二个问题,到图灵用图灵机的概念更加简单明了的重新演绎一次哥德尔不完备定理,最后冯.纽曼基于通用图灵机的概念、建出了第一台具备现代电脑架构雏形的电脑。
电脑是怎么来的,居然爬梳出这么多的问题?
哲学:不懈探究真理的精神
若要探究下去,你知道:康托尔、希尔伯特、哥德尔、冯.纽曼…等人都是德国人吗(哥德尔和冯.纽曼皆为奥匈帝国人)?19 世纪的德国究竟是一个什么样的时代,造就了如此多的数学大家?
事实上,你知道这些数学家同时还有着哲学家的头衔吗?更进一步来说,19 世纪知名德国哲学家,尚包括了:黑格尔、叔本华、马克思、尼采、康德… 毫无疑问地,当时的德国可说是欧洲最具代表性的哲学重镇。
哲学反映了人类对真理的追求,体现人类的智能与认知极限。因而数学的发展不只是解一些生活问题,而成为一种学问、一种探求真理的道路与哲学手段。
哲学在西方文化中扮演了非常重要的角色,也是现代科学会出现在欧洲的重要原因。至于西方哲学追求真理的精神,又是起源于何时何处呢?这又要回溯到希腊时期,比如亚里斯多德的三段式证法或毕达哥拉斯学派……
观察过往,出现像上述‘无限有多大“这样的数学危机,在人类史上也不是第一次发生了:负数的英文为--Negative Number、无理数--Irrational Number、虚数--Imaginary Number。否定的 (Negative)、不合理的 (Irrational)、想像的 (Imaginary)……
从这些词汇中可以看出在探究真理的过程中,人类总是不断遭遇思想上的困难,却又能在突破后、成功踏上崭新的道路。 今天我们思考了一个问题:电脑是怎么来的?并从中衍生出了更多值得探索的问题:
.数学是逻辑、也是哲学?
.历史上其他的数学危机有哪些、又是如何被解决的?
.希腊亚里斯多德时代至一战前的德国,哲学是如何百花齐放?
.无限有多大?
.悲剧性的数学家康托尔为什么伟大?
.希尔伯特的 23 个问题?
.我们能造出一台判别真理的机器吗?
.哥德尔不完备定理是什么?图灵机呢?
.计算机的电路是怎么计算和记忆的?
……
没有了探求宇宙真理的精神,或许工业革命就不会出现在欧洲了? 人类也不会有科技发展、或者今日的生活。
少年啊,你渴望真理吗?
▼
本文转载自泛科学返回搜狐,查看更多