万书网 > 文学作品 > 你有你的计划,世界另有计划 > 宇宙是计算机吗

宇宙是计算机吗




麻省理工学院出版社2017年出版了一本书叫《柏拉图和技术呆子》,作者是加州大学伯克利分校的电子工程与计算机科学教授爱德华•李(EdwardLee  )。

我发现麻省理工学院出版社出的书,都是一看书名特别感兴趣,但是买回家却发现非常非常难读。作者都是“来自生产一线”的科学家和教授,这帮人非常有思想,但是根本不会写书。麻省理工学院出版社好像完全不在乎书的销量。

《柏拉图和技术呆子》这本书的前半部分和后半部分几乎没什么关系。前半部分讲计算机工程师的智慧,后半部分则是从理论上探讨计算机这种东西的局限性。李教授完全不讲写作的章法,我作为一个书呆子读得也很痛苦。

但是这本书中说的内容非常重要,作者拥有一线的见识,而且下了很大的调研功夫,特别是后半部分。

我们要重点讲一个特别大的大道理,足以影响你的世界观和人生观。这个道理来自深奥的数学,但是距离我们每个人又都很近。我将用由浅入深的方法彻底给你讲明白。你不需要懂多少数学知识,但是你需要

思考。

我们知道,工程师做的都是模型,计算机也是一种模型。但是对一个模型琢磨得久了,你难免就会觉得它不仅仅是一个模型。比如你可能会问,人脑……也是一台计算机吗?

作为一种智识上的兴趣,每个人都会忍不住关注这个问题。这个问题涉及“图灵机”、信息论和“哥德尔不完备性定理”,你肯定早就听说过这些概念了,我们这里将给你一个统一的解释。

我们将通过计算机科学的眼光理解这个世界。

在回答人脑是不是计算机之前,我们要先问一个更大的问题——这个宇宙是计算机吗?

有一种猜想认为我们以为的这个“现实世界”,其实是某个更高智能的计算机模拟——我们其实是生活在一个网络游戏里。如果你觉得这个猜想太过离奇,我还可以换个说法:请问我们生活的这个现实世界,在理论上,可以用一台要多强大就有多强大的计算机来完全模拟吗?

这个问题可不仅仅是个好玩的思想实验。我们需要理解计算机的本性,并且跟真实世界的本性做一个对比。使用计算机视角,你会重新认识这个世界。

而你可能想不到,这一切要先从“实数”开始讲起。

“实数”的不可思议

每个中学生都学过各种“数”:

“自然数”是0,1,2,3,……

“整数”是自然数加上负的自然数:……-3,-2,-1,0,1,2,3……

“有理数”则包括了分数和小数,但要求必须是有限的,或者是无限但是必须循环的小数——本质上,所有有理数都可以写成分数,也就是两个整数相除:1/2,1/3,4/3……

在说实数之前,我先问你一个问题。你说到底是自然数多,还是自然数里的“偶数”多呢?

人的直觉反应肯定是自然数比偶数多。偶数只是自然数的一部分,自然数里还有1,3,5,7这些奇数,整体肯定比部分多啊。但是请注意,自然数和偶数都有无限多个。无限多的两种东西,怎么比较多少——无限大和无限大到底哪个大,这是个问题。

德国哲学家格奥尔格•康托(GeorgCantor  )曾经为此思考了整整12年。大概是1874年,康托提出,自然数、自然数中的偶数,甚至一切有理数,都是一样多的。

康托的洞见在于两个集合的元素如果能一一对应,那这两个集合的元素个数就一样多。

每个偶数除以2就是一个自然数,偶数和自然数可以一一对应:

0  0,

2^1,

4^2,

6^3,

同样的道理,全体整数的个数也和自然数的个数是一样多的,因为我们可以把整数按照一定的规律“数出来”,也就建立了跟自然数的一一对应:

0^0,

-  1^1

1^^  2

-2  ^3  ,

2^  4,

-3^5,

3^6,

数学上这叫“  可数”“  数”  是三声,英文叫countable  )。一个包含无限个元素的集合只要是“  可数”  的,它就能跟自然数一一对应,它的元素个数就跟自然数一样多。

事实上,有理数的集合也是可数的。比如我们可以按照下面这张表格[1]  ,把全体有理数列举出来。



无非就是把每个有理数都写成分数的形式,然后根据分子、分母的数字决定它在表格上的位置。只要按照图中箭头的方向,我们就可以把全体有理数数一遍。你一边数着有理数,一边数着自然数,这就建立了

一一对应的关系:所以有理数也和自然数一样多。

现在轮到“实数”了。所有有理数都是实数,而实数还包括“无理数”,也就是小学老师所谓的“无限不循环小数”。无理数的特点是不能写成分数的形式,也就是不能用两个整数相除得到。比如根号2和圆周率就都是无理数。

具体怎么证明我就不说了,但是数学上有个结论:无理数,是“不可数”的。

也就是说,实数不能跟自然数做一一对应。虽然自然数和实数都有无限多个,但是这两个无限不是一个级别——实数比自然数要多得多。如果你说自然数是“无穷多”,那实数就是“不可思议的多”。

你可能会说,这些都是一百多年前的人就知道的数学,现在对很多人来说都是常识,说这些有什么意义呢?

意义就在于,实数是不可数的,而计算机的一切,都是可数的。

计算机的本质

我们这里凡是说“计算机”,都特指我们现在都在用的、基于图灵机的这种寻常的计算机。如果我想说另一种会做计算的机器,那就叫“机器”。

理论上讲,只要有足够多的内存、给足够多的时间,一台计算机就可以完成任何“算法”。但是计算机对算法有三个要求。这些要求就决定了,计算机和真实世界似乎是有区别的。

第一个要求是算法必须是“数字化”的。计算机所有的输入和输出,中间计算过程中涉及的所有数,都必须能用有限多个数字描写。也就是说要么是整数,要么是有限位的小数。换句话说,计算机只能处理有理数。

比如说圆周率7。计算机里没有真正的圆周率。你要输入圆周率,只能输入一个有限位的近似的小数,3.141592653……到一定长度你必须停下。你可以用计算机把圆周率算到任意精度,但是总要在算到某一位的时候停下来。只要你停下了,你算的那个数就是一个有理数,而不是真正的TT  。

第二个要求是,算法是一步一步的。计算机不能算连续。所有计算机程序都按照“步”运行,这一步干什么、下一步干什么。我们要模拟一个足球的运动,必须先把时间和空间分成若干“小步”,让足球每次走一步。当然我们可以把步分得很细一~但是一旦确定了步,一步就是一步,没有“半步”这种中间状态。

这是因为计算机的底层是一个开关网络。晶体管要么是幵要么是关,没有半幵半关的状态。

真实世界好像不是这样的。我们挥一挥手,让手从A  点到达B  点,这应该是一个连续的运动,我们的手似乎应该经历了从A  点到B  点之间每一个距离数字——其中既有有理数也有无理数。而计算机模拟的我们的手,只能经历有理数。

第三个要求是,图灵机必须停机。给一个算法,它一定要算出一个结果来。从这个意义上讲,现在的计算机都不是严格的图灵机。比如我们用的个人电脑的操作系统,在理论上都可以永远不停机。我们还可以跟电脑做交互式的操作,这就更不是图灵机了。而真实世界,也是交互的。当然电脑里运行的每一段代码,都符合图灵机的要求。

根据这些要求,计算机程序就一定是有限长的而且是数字化的操作。事实上,所有计算机程序都可以翻译成由0和1组成的代码,硬件层面就是这么操作的。

所以计算机程序必定是可数的。比如我们可以按照下面这个方法列举所有的计算机程序:

0

1

01

10

00

11

000

001

………

规则是按照长度,在每个长度下列举0和1的所有排列组合。当然其中很多代码根本就不是正确的计算机程序,但这点我们不细究,我们只要确保这个数法已经包含了所有可能的计算机程序就行。

所以说,计算机程序的集合,是个可数的集合。那计算机能做的事情,就是可数的。

那请问,真实世界里的事情也是可数的吗?真实世界里有没有实数呢?

如果真实世界里有些不可数的事情,有些数必须是实数,那计算机怎么可能完全模拟真实世界呢?

再论信息论

我们前面讲过《—个基于信息论的人生观》,重点讲了香农的信息论。什么是信息呢?信息就是意外,信息就是我们克服了多少不确定性。可供选择的范围越广,这个选择的信息量就越大。我们甚至讲过香农信息熵的公式,这里就不纠缠于数学的细节了,但是我想把这个思想再强调一遍。

每个人都知道写在纸上的字是信息,但是这个信息的本质是做选择。比如你用英文给我写一封信,无非就是在26个字母、10个阿拉伯数字再加上一些标点符号中做选择。你写的每个字都是从这几十个字符中选取了一个——你是在几十个选项之中选择了一项,你克服了这么大的不确定性。

再比如,我知道有5个候选人在竞争一个位置,但是我不知道是谁当选了。你告诉我当选者的名字,这个名字的信息量,就比从几十个字符之中给我一个字符要少得多——因为你克服的不确定性只有1/5。我胡乱猜,也有1/5猜对的可能性。

所以信息量的大小、给信息量编码需要用到多少“比特”,都取决于背后选项的多少。正所谓你“说了”什么不重要,重要的是你“能说”什么。

现在假设有一条1公里长的铁路线,咱俩负责维护。有一天,铁路线上出了线路故障。你去探测了,告诉我故障发生在第702米的地方。请问这个信息量有多大?1公里一共有1000米,你给我的是千里挑一的信息,这个信息量比5个人中选1个人要大得多。

要给这样的信息编码,我们就要把铁路线分为1000段,给每一段一

个编码。下次不管哪里出事,我们都可以报一个编码。

好,现在上级要求提高精度,说必须得精确到厘米,比如说你得报告故障发生在第702.32米的地方。要给这么高精度的信息编码,我们就必须把铁路线分成10万段,这个编码量就大大增加了。

那我们知道,从0到1000米的这条线段上不但有整数和小数,还有更多的、不可思议的多的无理数——那如果故障发生地点是在一个无理数的位置,请问怎么编码呢?

答案是无法编码。描写一个无理数,比如104.298730472840382048……(永不停止、永不循环)需要无限的精度。

有些无理数,像根号2和圆周率,可以用文字说明,比如我们可以报告上级故障发生在  “77”  米处,上级一听也能明白。但绝大多数无理数根本无法用文字描写。对于一个无法用文字描写的、出现在0和1000之间的一个任意的无理数,怎么给它编码呢?从理论上讲,在连续实数集上的精确信息是不可编码的,“信息熵”的概念也不再适用了。

说到这里你可能要抗议了。你说我们根本就不需要用无理数标记位置,我们有限的精度就已经够用了啊。的确是这样的,日常生活中的任何测量都有误差。不管是702米,还是精确到702.0567287米,只要停止了,就留有一定的误差。精确到小数点后第7位,就表示有0.0000001米的误差。

早在1948年那篇提出信息论的论文里,香农就已经注意到无限精度的测量信息不可编码,但是有噪音的、有误差的测量信息可以编码——现在我们把这个理论称为“信道容量定理”(channelcapacitytheorem  )。

所以我们的生活应该不受影响,毕竟凡是人为取用的信息都有误差,那就都可以数字化和信息化。

但是从理论上来说,如果真实世界是一个连续的实数系统,它就不可能用一个数字化的信息系统完全描写。

但是现在有很多人相信,真实世界根本就不是建立在实数上的。

数字宇宙假说

如果空间和时间都是连续的东西,无限可分,那真实世界就必须有无理数。但如果空间和时间本来就是不连续的呢?比如说,也许空间上存在一个最小的距离尺度,比这更小就没意义了。也许这个宇宙的空间就好像电脑屏幕一样,有一个分辨率——当然它的分辨率非常非常高,但是是有限的。

这就是所谓“数字宇宙假设”。我们一直说宇宙必定是“数学”的,但我们可没说宇宙必定是“数字”的。“数学宇宙”允许无理数,如果有无理数就不可编码;而“数字宇宙”是建立在有理数上的,它在本质上就可以用计算机编码。

在数字宇宙里,空间是一格一格的,时间是一步一步的,都是不连续的。而我们现在所有的物理定律都假定时空是连续的,里面有微分方程,假设时空无限可分——所以这些物理定律都是柏拉图世界的想象,必须改写。

学者们对数字宇宙有不同的信仰,爱德华•李把这些信仰按照从弱到强的顺序,分为五级:

第一级认为,这个世界可以用有限多的数字信息来进行完整的编码。

第二级认为,这个世界里的一切都是信息。
第三级认为,这个世界里的一切物理过程都是计算。

第四级认为,这个世界就是一台计算机。

第五级认为,这个世界不但是一台计算机,而且就是某个具有高级智能的计算机模拟——我们都生活在网络游戏里。

这些级别的细微差异代表严格的数学和哲学思辨,咱们就不仔细追究了。那这个听起来很玄乎的假设,到底有没有可能是真的呢?答案是,有可能证明,但不可能证伪。

如果你能证明,空间的确有一个不能再分的、最小的尺度,那你就证明了数字宇宙假设。现在费米实验室有个装置叫“Holometer  ”,就打算做这件事。它釆用的原理和探测引力波的LIGO  (激光干涉引力波天文台)装置类似,通过激光干涉来测量距离的变化,它的目标是发现空间的最小尺度。

也许有一天早上起来,你会听说,费米实验室发现了我们这个宇宙的空间有个极限尺度。那将是一个无比重大的新闻,说明空间不是连续变化的——说明这个世界完全是由有理数组成的!……也说明我们很可能是生活在计算机模拟之中。

考虑到微观世界的物理学,把基本粒子再做细分并没有多大实际的意义,基本粒子的尺度是有限的。但是空间本身可不可以无限细分,这个问题还没有答案。如果人类的实验精度永远都发现不了空间的最小尺度,那你能说空间没有最小尺度吗?不能。所以说数字宇宙是个不可证伪的理论。如果你信仰数字宇宙,你可以永远坚持这个信仰。

而你猜怎么着?在认真思考过数字宇宙假设的学者之中,相信的人是主流,不信的人是少数。

为什么这些学者非得相信宇宙是数字的?也许因为数字化的世界更容易被接受。计算机世界是数字化的,而计算机是人能造的东西,我们完全接受数字化的世界。但是爱德华•李可不信。当然爱德华•李也没有足够的证据,他只是觉得真实世界应该比一个由有理数组成的世界更丰富一些。

你相信数字宇宙吗?我没有特别强烈的信仰,但我的确更喜欢存在无理数的世界。

不过我们仔细想想,无理数这种东西,的确是很难跟真实世界联系起来。我觉得无理数也有可能是来自柏拉图世界的一种想象。

比如说根号2吧。我现在还记得,第一次学到根号2这个无理数的时候,感到了世界观的危机。我就想,画一个等腰直角三角形,两个直角边的边长是1米,斜边长度就是根号2米,对吧?那我就拿一个尺子去量斜边的长度,我肯定能量出一个普通的数来啊?根号2怎么可能就是一个怪异的数呢?

现实生活中尺子的精度总是有限的,所以我们只能测量出一个寻常的数字。可是理想中的根号2,却是个永远都不会终止的数!

难道我们这个世界真的需要这样的数吗?这个问题可不仅仅涉及世界观,而且还能影响我们的人生观。下一篇文章中我们将会看到,只有在一个实数的世界里,人生才有无穷多丰富的意义——诗人,需要无理数。