宇宙是计算机吗?

作者: k与k | 来源:发表于2018-07-28 14:43 被阅读24次

    这个主题依然来自爱德华·Lee 的《柏拉图和技术呆子》。

    Lee这本书的前半部分和后半部分几乎没什么关系。前半部分讲计算机工程师的智慧,后半部分则是从理论上探讨计算机这种东西的局限性。但是这本书的内容非常重要,作者拥有一线的见识,而且下了很大的调研功夫,特别是这个后半部分。

    它讲一个特别大的大道理,足以影响你的世界观和人生观。这个道理来自深刻的数学,但是距离我们每个人又都很近。

    作者用由浅入深的方法说明,我们不需要多少数学知识,但是我们需要思考。


    工程师做的都是模型,计算机也是一种模型。但是对一个模型琢磨的久了,难免就会觉得它不仅仅是一个模型。

    比如你可能会问,人脑……也是一台计算机吗?

    这种问题跟工程师怎么报效祖国没啥关系。可是作为一种智识上的兴趣,每个人都会忍不住关注这些问题。这个问题涉及到“图灵机”、信息论和“哥德尔不完备性定理”,这里会给你一个统一的解释。

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

    在回答人脑是不是计算机之前,我们要先问一个更大的问题。

    —— 这个宇宙是计算机吗?

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

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

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

    1  “实数”的不可思议

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

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

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

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

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

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

    德国哲学家格奥尔格·康托(Georg Cantor)曾经为此思考了整整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,

    ……

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

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


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

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

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

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

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

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

    2  计算机的本质

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

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

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

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

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

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

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

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

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

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

    0

    1

    01

    10

    00

    11

    000

    001

    ……

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

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

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

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

    3  再论信息论

    什么是信息呢?信息就是意外,信息就是你克服了多少不确定性。可供选择的范围越广,这个选择的信息量就越大。这里就不纠缠于香农信息熵的数学细节了,但是这个思想需要强调一遍。

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

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

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

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

    要给这样的信息编码,我们就要把铁路线分为一千段,给每一段一个编码。下次不管哪里出事,我们都可以报一个编码。

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

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

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

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

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

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

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

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

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

    4  数字宇宙假说

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

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

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

    学者们对数字宇宙有不同的信仰,Lee 把这些信仰按照从弱到强的顺序,分为五级 ——

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

    第二级认为这个世界里的一切都是信息。

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

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

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

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

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

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

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

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

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


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

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

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

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

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

    相关文章

      网友评论

        本文标题:宇宙是计算机吗?

        本文链接:https://www.haomeiwen.com/subject/svjomftx.html