宇宙大怪兽21——终极多重宇宙3
世界的BUG
如果,我们真的生活在虚拟世界中,我们如何知道呢?
《黑客帝国》电影和动画片已经生动的描述了这样一种可能。那就是我们在生活中发现了什么超越我们认识的东西。比如动物成精了(当然建国以后就不允许了),比如有人开挂了,可以像超人一样飞,比如转世,比如灵魂,反正众多的未解之谜都可能成为我们指认我们是在虚拟世界的证据。
但是,要证实这些证据,却困难重重。因为我们不知道是真的bug,还是因为我们知识体系不够完善。也许当我们知识足够多的时候,那些未解之谜就全部解开了。
那还有没有其他办法呢?
有,科学家可不是骗科研经费的!
上一篇说到,当我们像尼奥一样吞下红色药丸儿的时候,我们就从虚拟世界中出来了。我们就可以从外部视角来审视这个全是电子元器件和代码的世界。
程序猿的策略
尼奥来到飞船以后,小伙伴为了让他学习技能,让他进入了另外一些小的虚拟世界。这些虚拟世界相对母体来说,只是一个小规模,局部的虚拟世界。当然我们后来看到,就算是飞船、锡安,也是一些虚拟世界。
从程序猿的角度来说,要设计一个虚拟世界可以有两种途径。一种就是从局部开始。
这就是“层展策略”。为每一个局部单独设计一套代码。
我们现在的大部分代码都是通过层展策略写的。比如一个游戏中,一些代码负责描绘场景的变换,一些代码负责人物的移动,一些代码负责统筹全局的数据。。
就像用一些破布来缝一件衣服一样。要让衣服穿着得体,那么每一块破布的拼合都得恰如其分。
当系统越来越大,越来越复杂以后,这个配合的难度也变得巨大起来。投射到虚拟世界里面,我们就会经常觉得漏洞百出,各种不可思议的事情接连发生。没有任何连续性。知识不连贯。
我们可以想象一下程序猿不停的修补漏洞,不停的调和系统。但是系统就像地震龟裂的大地一样,此起彼伏,按下这块,那边又冒出来。程序猿忙得不可开交,最后心力交瘁而死!
而系统累计的误差会越来越大,最后导致系统崩溃。
不过,程序猿也可以采用另外一种策略。
我们称为“极度还原策略”
在这种情况下,程序猿只需要提供一套基本数学理论,用来描述物质和基本相互作用。再设定一个初始条件,然后就开始模拟。
虽然,这个策略可以避免层展策略的衔接问题。但是却会造成另外一些问题。
比如,这套数学理论能否模拟出一个具有智慧生物存在的世界?
假如算法没问题,那么进行如此庞大的模拟,计算量够不够?
假如计算量也够,那么最重要的问题就来了
系统不可能穷尽每一个连续变化量的无穷细分的数值。只能取到一定精度的近似值。
最后,这个近似值经过漫长的时间就会产生越来越大的误差。
当系统内部的科学家格林发现了这种误差的规律以后,格林会明白自己正处于一个模拟之中。
如果格林用这套数学理论再生成一个虚拟宇宙,那么那个虚拟宇宙中的科学家也会为一毛一样的近似产生的误差而困惑。
进击的程序猿
当然,我们的程序猿也不是吃干饭的。他可以采取更为激进的措施来防止系统崩溃。比如暂停系统运行,擦除、修改所有人的记忆,修补系统漏洞,打上补丁,甚至重启系统。。而这一切,我们甚至都可能无法察觉。(此段配合服用《黑客帝国》动画版,效果更佳)
回到原点的问题:我们多大程度上可能是生活在虚拟世界之中的?
上一篇从内部的视角,展望了人工智能的发展会带来的一个可能的统计学意义上的结论,我们极有可能生活在虚拟世界中。
这一篇,我们从外部视角探讨了虚拟世界相对于其设计的初衷和基本数学公式而言,必然存在不可避免的误差。而这些误差有可能被我们观察到而推测自己可能是生活在虚拟世界之中。
这里面蕴含的逻辑性是:虚拟现实必然导致系统内部出现误差、反常、不自洽。但是反过来,误差、反常、不自洽却不能推出我们必然生活在虚拟世界。只能说是有可能而已。
然而,当我们真的运行了一个虚拟世界,其中充满智慧生物。那么,我们真的是第一个实现这个壮举的生物吗?按照普遍性原则,从概率上讲,我们人类并无特别之处。在整个虚拟多重宇宙中,这种成就已经取得无数次了。既然虚拟多重宇宙中绝大部分智慧生物都活在虚拟之中,那么我们是否也活在虚拟现实之中呢?
这就完了?
没有!这些人工智能和虚拟世界的思考会让我们更进一步思考我们所在现实的本质。我们下篇见。