三体里有不少让人印象深刻的情节,维度攻击是其中的佼佼者。
两个二维体的结构在星光下清晰地显现出来:在二维化的太空艇上,可以看到二维展开后的三维构造,可以分辨出座舱和聚变发动机等部分,还有座舱中那个卷曲的人体。在另一个二维化的人体上,可以清楚地分辨出骨骼和脉络,也可以认出身体的各个部位。在二维化的过程中,三维物体上的每个点都按照精确的几何规则投射到二维平面上,以至于这个二维体成为原三维太空艇和三维人体的两张最完整最精确的图纸,其所有的内部结构都在平面上排列出来,没有任何隐藏,但其映射规程与工程制图完全不同,从视觉上很难凭想象复原原来的三维形状。与工程图纸最大的不同是,二维展开是在各个尺度层面上进行的,曾经隐藏在三维构型中的所有结构和细节都在二维平面排列出来,于是也呈现了从四维空间看三维世界时的无限细节。这很像几何学中的分形图案,把图中的任何部分放大,仍然具有同样的复杂度,但分形图案只是一个理论概念,实际的图案受分辨率限制,放大到一定程度后就失去了分形性质;而二维化后的三维物体的无限复杂度却是真实的,它的分辨率直达基本粒子尺度。
在这张超级图纸上反映了城市的所有细节,小到每一颗螺丝钉,每一根纤维,每一只螨虫,甚至每一个细菌,都被精确地画下来,这张图纸的精确度是原子级别的,原三维世界中的每一个原子,都以铁的规则投射到二维空间平面上相应的位置。绘制这张图纸的一个基本原则是没有重叠,没有任何被遮挡的部分, 所有细节都在平面上排列出来,显露无遗。在这里,复杂代替了宏伟。读懂这张图纸并不容易,能够看出城市的总体布局,也能够认出一些宏观结构,比如二维的树形建筑仍呈现出树形结构。不过二维化后的建筑结构变形很大,仅凭想象力从其二维图形推测出原来的三维形状几乎不可能,但毫无疑问,以正确的数学模型为基础的图像处理软件应该能够做到。
那么可以想象维度攻击是怎么回事,它是一个三维空间到二维空间的一个映射,应该满足:
- 它是一个单射,否则不可逆,将有信息丢失,按照刘慈欣的说法维度攻击里并不会丢失信息。
- 它是连续的。有两个地方显示维度塌缩是一个连续函数:首先根据描述,维度塌缩是一个连续的过程,以光速向外扩散;其次,塌缩后三维物体在二维平面上都保持了原有结构。
很可惜,这样的映射在数学上是不存在的。
假设维度塌缩是一个$ R^3$ 到$ R^2$ 的连续单射,记为$ f$ 。无妨设$ f(0)=0$ ,且$ \Omega = f(R^3)$ 。那么$ f$ 也是$ R^3\backslash0$ 到$ \Omega\backslash0$ 的一个一一映射。由于$ R^3\backslash0$ 是单连通的,但$ \Omega\backslash0$ 是非单连通的,不存在这两者之间的连续单射。
还存在一种可能性,维度塌缩并不是空间的塌缩,只是粒子的重排,或者说空间不是连续的。这时候,塌缩是一个$ Z^3$ 到$ Z^2$ 的单射。
$ Z^3$ 和$ Z^2$ 是离散空间,不存在连续的概念。但按照刘慈欣的描述,塌缩从一点开始后,以光速向外扩散。假设塌缩从 0 开始,那么三维空间里。
根据刘慈欣的描述,我猜作者使用的是类似于下面这个变换:
很可惜,上面这个变化并不是连续的。
该 bug 的可能性最开始由 Shichao 提出,后续得到本科同学 SmallRock@BDWM (现已是南大数学系老师)的帮助。
Q. E. D.