1930年,临近退休前,著名数学家大卫·希尔伯特在于柯尼斯堡召开的全德自然科学及医学联合会代表大会上做了题为《自然认知及逻辑》的4分钟演讲。这场即将计入历史的演讲以希尔伯特的6字箴言结束:Wir müssen wissen,wir werden wissen.(我们必须知道,我们终将知道。)
但事实上是,在数学领域,许多正确的数学观点是无法被证明的,比如孪生素数猜想。孪生素数指的是仅由一个数字分隔的素数(质数)对:比如11与13,或17与19。越往自然数轴后看,素数出现的频率就越低,孪生素数对的数量一直很少。孪生素数猜想指出,自然数轴上存在无穷的孪生素数对,根本数不清。但是,直到目前,还没有人能证明这一猜想是对是错。
更疯狂的是:我们可能永远也无法得知该猜想的正误,因为在数学上,已经被证明的一点是:任何可以进行基础运算的数学系统中都存在无法被证明的正确观点。这是数学底层存在的一个永恒漏洞。围绕“可知”与“不可知”的数学特性,哥德尔在1931年提出的不完备定理掀起了数学领域的革命,以及图灵在二战期间提出图灵机的概念,直接反驳了希尔伯特关于数学完整性、一致性与可判定性的三大问题。其中,图灵机的概念更是成为现代计算机的奠基工作。在Youtube上,知名科普up主Derek Muller回顾希尔伯特三大数学问题、哥德尔不完备定理与图灵构思图灵机的过程,介绍了三位数学大家在上个世纪的“切磋”。目前,视频播放量已超越200万,AI科技评论特整理如下:
1
导论:康威的“生命游戏”
正确的数学观点不一定可知。这就是人生。正如知名数学家约翰·康威(John Conway)在1970年创造的“生命游戏”。不幸的是,这位伟大的数学家在2020年因感染新冠肺炎已去世。康威所发明的“生命游戏”是在一个有无限方格的正方形细胞格上进行,每个细胞格都分别标记为存活(笑脸)或死亡(骷髅头)。这个游戏只有两个规则:1)当一个死亡细胞周围有三个存活细胞时,死亡细胞就会复活;2)当一个存活细胞周围有少于两个或多于三个存活细胞时,这个存活细胞就会死亡。一旦你设置好初始细胞格后,接下来的细胞排列就会遵循上述两个规则,创造之后一代又一代的图案生成。这个过程完全是自动的,因此,康威又将它称为“零玩家游戏”。
但是,尽管规则很简单,但游戏本身也会产生各种各样的行为,从而形成不同的图案模式。比如,有些图案模式是固定的(如下)。这些模式一旦出现,就永远不会改变。一些模式可以在网格中穿行,就像下方的滑翔机一样。许多模式会逐渐消失,但一些模式会永远保持增长,它们会不断生成新的细胞。你也许会想:基于游戏的简单规则,你可以找到任何模式,并确定哪些模式最终会达到稳定的状态,或者是否会无限增长。但事实证明,这个问题是无解的。在康威的“生命游戏”中,模式的最终命运是无法确定的,这意味着没有任何算法可以保证在有限的时间内回答这个问题。
当然,你也可以尝试运行某一个模式,然后看看最终会发生什么。这个游戏的规则毕竟只是一种算法。但这也不能保证你最终会得到问题的答案,因为即使你将其运行一百万代,你也无法得知它是会永远存在,还是仅持续两百万代,或是十亿代,甚至更多。“生命游戏”是有什么特别之处,使它变得无法确定吗?不。实际上,有许多系统都是无法确定的,比如王氏砖、量子物理学、航线、票务系统,甚至是万智牌,等等。要想了解这些系统的不确定性来源,我们必须追溯到150年前所掀起的一场数学革命。
2
背景:康托尔集合论
1874年,德国数学家格奥尔格·康托尔发表了一篇论文。在论文里面,他提到了一个新的数学概念,叫“集合论”(set theory)。“集”指的是定义明确的事物集合。比如,你脚上穿的两只鞋子是一个集,世界上所有的天文馆也是一个集。有不包含任何事物的空集,也有包含所有事物的集。当时,康托尔正在思考数字的集,比如自然数,正整数(如1、2、3、4…),还有实数(包括小数和无理数,比如1/3、2/5、π)。他想知道,就任何可以表示为无穷十进制的数字来说,相比于自然数,在0与1之间是否存在更多的实数?答案似乎显而易见,无论是自然数还是实数,都有无数个数字,两个集的大小应该相同。但如果检查这个逻辑,你根本无法想象要写下的无限数字,并将一侧的自然数与另一侧介于0和1之间的实数进行匹配。
由于每个实数都是一个无穷的小数,所以在0和1之间永远不存在最大的实数。我们可以按照任意随机的顺序写下数字,关键是要确保我们得到的数字都不重复,并将它们与整数一一对应。如果我们能够做到这一点,一个数字也不漏下,那么我们就会知道自然数的集和介于0和1之间的实数的集是不是大小相同。假设我们真的做到了这一点。我们有一个完整的、无穷的列表,每个整数就像一个索引数字,是列表中每个实数的唯一标识符。康托尔提出,我们来写下一个新的实数。首先,在列表中取第一个实数的第一个数位的数字,加1,作为新实数的第一个数位;然后取第二个实数的第二个数位的数字,加1,作为新实数的第二个数位。..。..一直沿数字列表进行下去。如果数字是9,就将其回滚到8。到这个过程结束时,你将得到一个介于0和1之间的实数。
但这就是我们要说的:这个数字不会出现在我们列表中的任何位置。它与第一个实数的第一个小数位的数字不同,与第二个实数的第二个数位的数字也不同。所以,它必然与列表中的每个数字(即对角线上的数字)至少相差一个数字。这就是为什么它被称为“康托尔对角证明”(Cantor‘s Diagonalization Proof)的原因。它表明:0和1之间一定有比自然数更多的实数,且有无穷多个,所以并非所有的无穷大都相同。
康托尔分别将它们称为“可数无穷大”(自然数)与“不可数无穷大”(实数)。实际上,还有许多更大的不可数无穷大。康托尔的工作可以说是数学领域的一个重大突破。在长达2000年的历史中,欧几里得原理一直被认为是数学的基石。但是,在19世纪之交,罗巴切夫斯基与高斯发现了非欧几里得的几何学。这使数学家对欧几里得原理进行了更加仔细的研究。但他们并不能欣然接受他们所看到的研究结果。研究证明,数学家对微积分中的“极限”概念定义很模糊。康托尔证明了,无穷本身的内容比大家以往所想象的都要复杂。
3
直觉主义者 vs. 形式主义者
1800年代末,两大数学家派系爆发了一场激烈的辩论。一边是直觉主义者,他们认为康托尔的说法是胡说八道。他们坚信数学是人类思想的纯粹创造,而Cantor所提出的“无限”是不存在的。庞加莱还曾说,人类的后代会将集合论视为一种我们已经从中痊愈的疾病。克罗内克则称康托尔为科学骗子,是年轻一代中的腐败分子。他甚至拼命阻止康托尔从事理想的工作。
另一边则是形式主义者。他们认为,通过康托尔的集合论,数学可以建立在绝对安全的逻辑基础上。形式主义派的领导者是德国数学家大卫·希尔伯特。希尔伯特是一位活跃的传奇人物,是一位很有影响力的数学家,几乎涉足所有的数学领域。他还差点在广义相对论上击败爱因斯坦。希尔伯特提出了全新的数学概念,对量子力学至关重要。他认为康托尔的工作非常出色,并坚信,基于集合论的数学证明更正式与严谨,可以解决上世纪数学领域所出现的所有问题。大多数其他数学家也同意他的观点。希尔伯特称:“没有人可以将我们从康托尔所创造的天堂中驱逐出来。”
图注:大卫·希尔伯特但是,在1901年,伯特兰·罗素指出了康托尔集合论中的一个严重问题。罗素想到:如果集合可以包含任何东西,那么它们可以包含其他集合,甚至可以包含它们自己。比方说,所有集合的大集合必须包含集合自身。那么,包含至少5个集合的集合是否也一样呢?你甚至可以探讨包含所有大集合的更大集合。但这就直接引发了一个问题:R是一个所有不包含自身的集合构成的集合,那么R包不包含R?这时,罗素发现了一个基于自指(指向自身)的悖论:如果R不包含自身,那么根据R的定义,它必须包含自身;如果R包含自身,那么根据定义,它又必须不能包含自身。
只有在R不包含自身时,R才会包含自身。接着,罗素又用毛发类比(hairy analogy)来解释了他的悖论,也就是著名的“理发师悖论”。假设有一个完全由成年男子组成的村庄,村庄里有一条针对男子胡须的奇怪法律,规定村里的发廊店必须只给那些不自己刮胡子的男人刮胡子。但是,理发师本人也住在这个村庄,而且他也是一个男人。那么,谁来给他剃胡子呢?如果他自己不剃,那么理发师就必须给他自己剃。但理发师不能给自己刮胡子,因为理发师不能刮那些给自己刮胡子的人的胡子。所以,理发师必须在且仅在他没有给自己剃胡子的情况下给自己剃胡子。这就是一个悖论。罗素的悖论把直觉主义者高兴坏了。他们认为“理发师悖论”已经证明了集合论存在无法弥补的缺陷。但随后,策梅洛与希尔伯特学派的其他数学家通过限制集合的概念解决了这个问题。
根据策梅洛等人的定义,所有集合的集合不再是一个集合。不包含自身的所有集合的集合也不是一个集合。这就消除了自指带来的悖论。希尔伯特和形式主义者又风光了一阵。但是,自指思想并没有那么容易被打垮。1960年代,数学家王浩观察每边有不同颜色的正方形瓷砖。这些瓷砖的规则是:相互触碰到的形状边缘必须是同一个颜色的,且你不能够旋转或翻转瓷砖,只能将它们沿四周移动。问题是:如果随便给你一组瓷砖,你能否判断它们会不会拼成一架飞机?它们是否能无缝连接,直到无穷大呢?事实证明,你不能确定答案。就像康威的“生命游戏”中的图案一样。这是两个完全相同的问题,且都来源于自指论。
4
希尔伯特的三个数学问题
希尔伯特希望通过开发一套新的数学证明方法来稳固数学的基础。古老的证明体系要回溯到古希腊时代。一套证明体系始于公理。公理即假设为真的基本观点,比如:我们可以在任意两点之间绘制一条直线。接着,人们使用推理规则,基于现有观点来推导出新观点的方法证明这些公理。如果现有观点是正确的,那么新的观点也是正确的。
希尔伯特想要一个正式的证明体系,即遵循严格运算规则的符号逻辑语言。符合逻辑和数学的语句可以转化到该系统中。希尔伯特和形式主义者希望在形式系统中将数学公理表示为符号陈述,然后建立推理规则作为系统操纵符号的规则。罗素与怀特海在三卷《数学原理》(Principia Mathematica, 1913年出版)中开发了这样的形式系统。《数学原理》的数学记号非常密集,总共有近2,000页。其中,单单是证明“1+1=2”的内容就占了762页。这时,罗素与怀特海已经注意到,希尔伯特等人的命题也许是有用的。他们最初的计划是写4卷书,但写作工作耗费了他们大量的精力,以至于他们无法准时完成。记号密集且累人,但也是准确的。数学记号与普通的语言不同,没有出错或逻辑蒙混过关的余地。
最重要的是,这些记号能够证明形式系统本身的属性。关于数学的证明,希尔伯特的证明计划(即“希尔伯特计划”)包含三个问题:问题 1:数学是完整的吗?也就是说,有没有办法证明所有的正确观点呢?每个正确观点都有证据吗?问题 2:数学是一致的吗?也就是说,数学有没有矛盾?如果你可以同时证明a是a、a不是a,那么所有的(互相矛盾的)数学观点都会是正确的。问题 3:数学是可判定的吗?也就是说,是否存在一种算法,可以始终确定某个数学观点是否遵循了公理?希尔伯特确信,这三个问题的答案都是肯定的。在1930年的会议上,希尔伯特就这些问题发表了激烈的演讲。在演讲的结尾,他以一句话总结了自己的形式主义梦想:“我们必须知道,我们也终将知道!”以此来反对“我们并不能知道”的“愚昧”观点。
5
哥德尔提出不完备原理
但在希尔伯特发表演讲前,他的梦想就已经崩溃了。因为就在前一天,同一个大会的小会议上,一位叫做库尔特·哥德尔(Kurt Gödel)的24岁年轻人发言,说他已经找到了希尔伯特关于数学完备性的问题的答案。哥德尔认为,答案是否定的。一个完整的数学形式系统是不存在的。哥德尔的观点所吸引到的唯一一位观众是冯·诺伊曼。冯·诺依曼曾是希尔伯特的学生,在这个小会议上,他把哥德尔拉到一边去问了几个问题。第二年,哥德尔发表了不完备定理证明。
这一次,所有人,包括希尔伯特在内,都注意到了哥德尔所提出的证据。以下是哥德尔证明的过程:哥德尔希望使用逻辑和数学来回答有关逻辑和数学系统的问题。他采用了数学系统的所有基本符号,并给每个符号指定一个唯一的数字,也就是所谓的“哥德尔数”。以上就是哥德尔数所代表的符号,它们既不等于1,也不等于2 。根据哥德尔的规则:0等于它本身,后继符号用s来表示,所以1用s0来表示,2需要用ss0来表示。..。..依此类推,用这种方式可以表示任何正整数。虽然有点麻烦,但它是有效的,而且是符号的关键。现在,有了所有基本符号的哥德尔数,就可以开始写方程了。
在0=0中,这三个符号对应的哥德尔数分别为6、5、6,我们通过创建一张新卡片来表示这个方程。方法是从2开始取质数,将每个质数依次作为方程中符号的哥德尔数的底数(即这些符号的哥德尔数作为这些质数的指数),然后将它们相乘,就变成了2^6×3^5×5^6=243,000,000。2.43亿是整个0=0方程的哥德尔数。这意味着你能想象到的任何一组符号集都能够用一个唯一对应的数字来表示。另外,通过对哥德尔数进行质数分解,还可以精确地计算出符号是由什么组成的。在整副卡片里,既有事实陈述,也有虚假陈述。通常,我们会用公理来证明某一陈述是否为真。事实上,公理也有自己的哥德尔数,并且是以同样的方式形成的。
有公理表明,任何数值为x的后继数不等于零。这是有意义的,因为在这个系统中没有负数,任何数的后继数都不能为零。如果用0代替x,按该公理的逻辑,1不能等于零。我们找到了一种最简单的方法证明了1不等于0,并且这张证明1不等于零的卡片得到了自己的哥德尔数。哥德尔数的计算方法如之前的质数一样,先把2乘以公理的幂,再把3乘以公理的幂,如果不用指数表示法,这些数字会变得非常大,因此可以简单的用字母来称呼它们。如下面是哥德尔数a,哥德尔数b,哥德尔数c.。..。.等等。哥德尔费尽周折找到这张牌,它上面没有哥德尔数g的证明。
也就是说,这张牌是不可证明的,在无限牌组中没有找到它的证据。g本身的陈述很巧妙:g不存在证明。如果g是假的,那么按照g的陈述,g是可证的。我们再把g的陈述(g不存在证明或g不可证)代入“g是可证的”,得到“g不可证是可证的”,或者“g是不可证的,g是可证的”。这就陷入了一个矛盾,显示数学系统是不一致的。另一种情况是,如果g是真的,那么哥德尔数g的陈述也没有被证明,这意味着数学系统中存在一个真实陈述,也就是:g不存在证明。所以,数学系统是不完整的,这就是哥德尔的不完备定理。按照哥德尔的观点,任何能够进行基础运算的基本数学系统都存在一些虽然正确但无法得到证明的陈述。
这句话可以用某电视节目的一段台词来理解:吉姆是我的敌人。但吉姆也是他自己的敌人,我的敌人的敌人是我的朋友,所以吉姆实际上是我的朋友。但因为他是他自己的敌人,我朋友的敌人是我的敌人,所以实际上吉姆是我的敌人。哥德尔的不完备定理显示,真理和可证明性根本不是同一件事。希尔伯特错了,关于数学的所有真理陈述是永远不能被证明的。希伯特安慰自己,至少数学的一致性是可以证明的。但后来,哥德尔又发表了他的第二个不完备定理,在这个定理中,他证明了任何形式一致的数学系统都不能证明自己的一致性。根据哥德尔的两个不完备定理,我们所能期望的最好结果不是一个一致但不完整的数学系统,而是一个无法证明自身的一致性、因此未来可能出现许多矛盾的数学系统。也就是说,我们现在一直在用的计算机,其实一直以来都是非一致的、有矛盾的。
6
图灵机的构思
最后是希尔伯特提出的第三个问题:数学是可判定的吗?在1936年,没有一个算法可以确定一个陈述是否遵循公理。图灵找到了解决方法,但要想实现这个方法,他必须发明一台现代计算机。
在他那个时代,计算机指的不是机器,而是妇女们用来进行冗长乏味计算的小型设备。图灵想象中的计算机是完全机械化的,它足够强大,可以执行人类所能想象到的任何计算,同时也足够简单,可以通过运算进行推理。
基于自己的想象,图灵发明了一台计算机机器,把一个无限长的正方形单元格磁带作为输入,每个单元格都包含一个数字0或1。机器有一个读写器,每经过一个磁带方格可以读取一个数字。它可以向左或者向右移动,也可以停止,停止代表程序已经运行完毕。程序由一组内部指令组成,机器根据它读取的数字和内部指令来执行操作。将这些指令导到任何图灵机,它们都能以与第一台图灵机完全相同的方式运行。虽然听起来很简单,但只要图灵机有足够大的内存和程序,并有足够充裕的时间,它就可以执行任何可计算的算法,包括加法、减法,乃至整个youtube算法。它能进行任何现代计算机所执行的任何运算。这就是为什么图灵机器能够有效回答希尔伯特关于数学可判定性的问题。如果图灵机停止运行,那么程序运行完成,输出结果就会在方格带中显示。
但有时候,图灵机可能永远也不会停止,也许会陷入无限循环。那么,图灵机有没有可能在事先知道一个程序是否会停止,尤其是在给定某个输入时呢?图灵意识到,这个问题与希尔伯特的可判定性问题非常相似。如果他能找到一种方法来判断图灵机是否会停止,那么图灵机也许能判定一个语句是否遵循公理。比方说,你可以编写一个图灵机程序来解决孪生质数猜想问题。图灵机程序从公理开始,构造出所有定理。这些定理能够用推理规则一步生成。在这个过程中,每生成一个新的定理,图灵机就会检查其是否为孪生质数猜想。如果是,图灵机就会停止;如果不是,它就永远不会停止。
也就是说,如果你能解决图灵机的停机问题,那么你就可以解决孪生质数猜想和其他未解决的问题。根据图灵的说法:假设我们可以制造一台机器 h,它可以用来模拟图灵机停止或运行的状态,不论怎么工作,它都能给出正确的答案。我们通过添加额外的组件来改进h。一个组件是,它接收到停机的输出,就会立即进入死循环。另一个组件是,如果它接收到死循环的输出,那么它就会立即停机。这台新机器也可以称为h+。所以,h+永远会输出和h相反的结果。h+本身也是一个程序代码,可以把它自己的代码作为程序输入给这台机器,即h+(h+),然后我们看h会对这个机器运行给出什么结果。由于h和h+的输出永远相反,所以如果h得出“h+将进入死循环”的结论,那么就会使h+立即停止;如果h认为h+会停止,那么必然会使h+进入死循环。结果证明,这和h本身的定义(h可以正确判定程序是否会停机)存在矛盾。唯一的解释是,像h这样的机器不可能存在。
当给定输入时,我们无法判定图灵机是否会停止,这意味着数学是不可判定的。没有一种算法能够确定一个陈述是否可以从公理中推导出来,所以像孪生质数猜想这样的问题可能是无法解决的。换句话说,我们可能永远不知道是否有无穷多个孪生质数。这类不可确定的问题甚至会出现在量子力学的物理系统中。多体系统(many-body system)的一个重要属性之一,就是其基态与其第一激发态之间的能量差异,也就是所谓的“光谱间隙”(spectral gap)。有些系统有明显的谱隙,有些系统则没有谱隙。有一个连续的能级一直延伸到基态,这一点很重要,因为在低温下,无间隙量子系统会经历相变,而有间隙量子系统则没有相变,因为它们没有克服光谱间隙所需的能量。一个系统到底是有间隙的还是无间隙的,这一直是一个难以解决的问题。直到2015年,数学家们才证明:一般来说,光谱间隙问题是不可判定的。用作者的原话说,就是:无论多么完美地描述材料粒子之间的微观互动,也无法详尽推导出其宏观特征。
7
总结
希尔伯特于1943年去世。他的墓志铭写的就是他在1930年大会上的发言:“我们必须知道,我们终将知道。”然而,事实是,很多时候我们并无法知道。但是,在尝试寻找答案的过程中,我们也许可以发现能够改变世界的新知识。在第二次世界大战中,艾伦·图灵将他的计算思考付诸实践,带领团队打造了一台真正的计算机,为盟军破解了纳粹的情报密码。有人评价说,图灵这一创举,使战争的时间缩短了2到4年。战争结束后, 冯·诺依曼根据图灵的设计,创造了世界上第一台可以编程的电子计算机。但图灵没能看到他的创新观点取得进一步的发展。1952年,他因同性恋罪名被捕入狱,两年后在狱中自杀。
图灵改变了这个世界,并被视为计算机科学领域最重要的奠基人。所有现代计算机都源于他的设计。但图灵关于兼容性的思考来自图灵机的概念,而这一概念是以希尔伯特的问题(“数学是可确定的吗?”)为前提的。总的来说,所有现代计算机都源于自指引起的悖论。数学的底部存在一个漏洞,这意味着我们永远也无法对一切事物有确定的认知。永远会有真实的陈述无法被证明。也许你认为,数学的不确定性会使数学家们发疯,导致整个数学世界的瓦解。但恰恰相反,正是由于对这个问题的思考,科学家们颠覆了无限的概念,改变了世界大战的进程,并直接促进了计算机的出现。
原文标题:燃爆了:希尔伯特计划是如何被哥德尔与图灵“打脸”的?
文章出处:【微信公众号:中科院半导体所】欢迎添加关注!文章转载请注明出处。
责任编辑:haq
全部0条评论
快来发表一下你的评论吧 !