生命是神奇的存在。
生物学家们致力于考察真实生物的运作机制,而冯诺伊曼不同,他尝试在数学上寻求生命的本质。
因为在冯看来,生命的本质属于一种软件逻辑,他设计的「生命」形态可以与现在的生命完全不同,所以他选择的起点是图灵机。
- 冯诺伊曼的自复制自动机理论告诉我们 DNA 就是源代码,是元生物学的起源
- 在元生物学的论证过程中发现:代码即 DNA,算法突变即进化,软件即生命
- 生命的本质不是新陈代谢和遗传,而是创新
以上就是 Gregory Chaitin 的《证明达尔文》一书前五章的主要观点。
书写得冗长,读得很累。这个老头子有严重的骗稿费嫌疑,把一个课件写成了一本书。
我只打算写一篇文章,和老头子这本书的附录有关,附录是冯诺伊曼手稿。假如计算机科学是宗教,他是神祗之一。
耳机放兜里会打结,开水会慢慢变凉,长时间不扫地面会脏。
这是对自然造物的直观认识,独立封闭系统中的有序状态会自发地趋向于混乱和无序,是熵增过程,遵循于热力学第二定律。
传统的机械,我们的大部分人工造物,也存在存在类似的状况。
假设一个机器 A 能够自发地制造出机器 B,那么 A 中必须包含完整的 B 的信息,只有这样 A 才能根据这些信息将 B 制造出来。因为 A 包含的信息大于等于 B,即 A 要比 B 复杂。
如果根据这样的理解,机器的复杂度会在制造过程中不断降级和衰退,即一个系统的复杂度总是高于它所能制造的子系统的复杂度。
但是另一方面,在自然界却存在与之背离的欣欣向荣的现象:生命的诞生与进化,科技的发展和进步,都在往越来越复杂和多样化的方向发展,即人人都谈论的「涌现」这一概念。
由于对此难以控制、预测和描述。因此,在历史上的大部分时间里,人们都认为这是一种神迹。
即使到现在,我们能说清楚大脑是如何用神经递质传递信号,但是也没搞清楚智慧是如何产生;我们能观察到生物体内所有的生化反应,但是没有成功在实验室里合成出真正的生命。
我们早已习惯并且百试不爽的自底向上的思维方式,在这里似乎没有达到预期的效果:
低层级的存在无法推断高层的复杂性。
似乎在诸多现象中,复杂度的积累存在一个阈值。没到这个阈值时,事物最终自发地衰退;超过这个阈值时,就立刻呈现涌现的群体特征。在成为神的道路上,这一问题拦住了脚步:这个阈值在哪。
冯诺伊曼意图能找到这个阈值。
生命的本质是一种软件逻辑
生命是神奇的存在。
生物学家们仅考察真实生物的运作机制,而冯与传统生物学家的追求不同,纵观他的工作,冯是在沿着一条规范的道路——数学——寻求生命的本质1。
或者说,在寻求一个生命的最小内核,因为在冯看来,生命的本质属于一种软件逻辑,他的「生命」形态可以与现在的生命完全不同,所以他的起点是图灵机。
图灵机很简单,对任何一个图灵机,他的描述总是有限的,因此可以通过某种方式将其编码为一条图灵机指令。图灵机 的描述可以用 来指代,所有计算机科学专业毕业生都知道。
冯·诺伊曼设计出了这样一组机器:
- 构造机 :读入一条指令 ,则 可以根据这条指令 输出对应的机器
- 指令复制机 :读入一条指令,输出该指令的复制
- 控制机 :将 放入 ,得到 所描述的机器;将 放入 ,得到 的副本;最后将 和 的输出组装在一块儿输出
- 将 组合为机器 ,根据上文的描述,当然可以构造出 的描述,即指令
- 最后,将 输入机器 ,构成 ,容易发现 E 具备完整的自我复制能力,可以持续复制自己
在假设中,我们认为 、、 是元零件,并且容易得出以上描述不涉及循环指代:需要 时, 已经存在,因此 和 间存在确定的时间和逻辑顺序,对 的自复制能力的论证是严密的。
我们很容易在生物体中找到上面这组机器各个组成部分的对应物:
- 的表现很像基因。
- 作为指令可以存在变异,在 上直接变异会导致子代机器无法复制,是致命的;
- 上附加一段 ,则 + 会导致产出与复制核心逻辑无关的副产物, 发生变异则不会影响子代机器的复制,类似于基因表达了蛋白质。
但是,如果单独来看,无论是构造机 ,复制机 ,控制机 ,还是他们的基因 ,在他们各自独立时,都不具备自我复制的能力。当他们以合理的方式组织在一起时,却实现了自我复制,实现了自复制功能的涌现。
冯的研究仅仅是向一个关于自动机的涌现理论迈出的初步尝试,这个尝试在试图对复杂系统中的「复杂性」形成一个概念。他认为「复杂性」在一个阈值以下的系统会自发退化,这样的系统只会产生复杂性更低级的系统;而当复杂性高于这个阈值时,系统可以在该层次的复杂性上维持(比如 );如果我们能让人工造物的复杂性高于这个阈值,那我们就做了神的工作2。
冯诺伊曼虽然最终还是没有找到这个复杂度阈值,但他认为可复制自动机应当处于一个相当靠近复杂度阈值的地方,而且与其他试图解释涌现的理论的差异在于,冯·诺伊曼的解释在数学上存在对应物,如果我们不满足于仅仅观测,而希望真正深入地理解涌现,可复制自动机理论可能是条件很好的切入点。
悄悄敲敲代码,就有机会创造世界。