第十五章 人工进化 15.1 汤姆·雷的电进化机

汤姆·雷刚把编写好的小玩意儿放进计算机,它就迅速繁殖起来,直到几百个副本占满了可用的存储空间。雷的小玩意儿勉强算是个试验性的计算机病毒,因为一旦离开他的计算机便不能再复制,所以它没什么危险。他只是想看看,如果病毒必须在一个有限空间里互相竞争,会有什么结果。

雷的世界设计得很巧妙,在病毒老祖宗数以千计的克隆品中,有大约10%在自我复制时发生了微小变异。最初那个家伙是一个“80”——叫这个名字是因为它的编码长度为80个字节。有些80发生了一点随机的变异,成了79或81。这些新病毒中的一些变种不久就接管了雷的虚拟世界。它们进而再变异出更多种类。病毒80几乎被这迅速增长的新“物种”大军逼到濒临灭绝的地步。不过,它挺了过来,在79、51和45这些新面孔出现并达到数量峰值一段时间以后,80又死灰复燃了。

不过区区几个小时,汤姆·雷的电进化机已经进化出了“一锅培养液”,近百种计算机病毒为了在这个与世隔绝的世界中生存而大打出手。在花了几个月的时间编写代码后,雷在他的首次尝试中就孕育出了人工进化。

当雷还是个说话细声细气、腼腆的哈佛本科生时,就曾为著名的蚁人威尔森在哥斯达黎加收集蚁群。威尔森的剑桥实验室需要活的切叶蚁群,而雷受雇到中美洲茂密的热带丛林寻找并捕获状态良好的野外蚁群,然后运到哈佛。他发现自己特别擅长做这个工作。他的窍门是以外科医生般的灵巧对丛林土壤进行挖掘,搬走蚁群的核心部分。需要搬走的是蚁后的完整内室,包括蚁后自己、她的看护蚁以及一个储存着足够食物的微型蚁园,以在运输中确保蚁群们不会忍饥挨饿。年轻的新生蚁群是最理想的了。这种蚁群的核心部分正好可以装进一个茶杯里。而另一个技巧就是找出藏在森林植被下的很小的蚁巢。只需几年时间,这个巴掌大小的小蚁群就可以填满一个大房间。

在热带雨林采集蚂蚁的同时,雷还发现了一种不明种类的蝴蝶,它会尾随行军蚁的行军路线。行军蚁吞噬其前进道路上所有动物的残忍习性,会把一群飞虫赶得慌不择路。一种鸟逐渐形成了跟随这个掠食大军的习惯,愉快地享用那些在空中四散奔逃的虫儿。而在紧随行军蚁大军的飞鸟身后,蝴蝶又接踵而至。蝴蝶尾随其后的目的是享用“蚂蚁鸟”的粪便“大餐”——那是产卵所急需的氮的来源。蚂蚁,“蚂蚁鸟”,“蚂蚁鸟蝴蝶”,也许还有谁知道什么玩意儿的东西跟在后面,组成了一支杂牌军,像一群串联好了的吉普赛人一样,浩浩荡荡地横扫这片丛林。

雷被如此精妙的复杂组合折服了。这简直就是一个游牧社会嘛!在无奇不有的天地万物面前,大多数企图了解生态关系的尝试都显得那么可笑。在茫茫宇宙之中,这三个种群(一种蚂蚁、三种蝴蝶、十几种鸟)是如何结成这种奇异的相互依赖关系的呢?为什么会这样呢?

雷在读完博士的时候,觉得生态科学暮气沉沉停滞不前,因为它不能对上面这些重要的问题给出一个满意的答案。生态学缺少好的理论来概括由每一片荒野的观察数据所积累起来的财富。它受到大量局部知识的困扰:没有一个总体理论,生态学只不过是个充斥着迷人童话的图书馆。藤壶群落的生命周期、毛茛田地的季节性形态变化或山猫家族的行为已是众所周知的了,但是,是什么原则(如果有的话)主导了这三者的变化呢?生物学需要一门关于复杂性的科学来解答这个关于形态、历史和发展的难解之谜——这些都是非常有趣的问题——而且都有野外数据的支持。

和许多生物学家一样,雷也认为生物学的希望在于将其研究重点从生物时间(森林的千年寿命)转移到进化时间(树种的百万年寿命)。进化起码还有一个理论。然而,对细节的过分执着也往往纠缠着进化研究。“我很沮丧,”雷对我说,“因为我不想研究进化的产品——爬藤啊、蚂蚁啊、蝴蝶啊什么的。我想研究进化本身。”

汤姆·雷梦寐以求的是制造一台电进化机。用一个“盛有”进化的黑匣子,他就能够阐明生态学的历史法则——雨林是如何由早期森林传承而来,生态系统到底是如何从产生了各种物种的同一原初力量中涌现出来的。如果他能研制出一台进化机,他就会有一个试验台可以用来做真正的生态实验。他可以选择一个群落,以不同的组合一遍又一遍地进行试验,比如说生成没有水藻的池塘,没有白蚁的森林,没有黄鼠的草地,或者为免以偏概全,生成有黄鼠的丛林和有水藻的草地。他可以从制造病毒开始,看看这一切将把他带向何处。

雷以前观察鸟类,收集昆虫,种植花卉——与计算机狂人完全不沾边儿——而他却坚信这样一台机器是能够造出来的。他记得十年前当他向一位麻省理工学院的计算机高手学习日本围棋时,那个高手曾运用生物隐喻来解释游戏规则。雷陈述道,“他对我说,‘你知道吗?编写一个能够自行复制的计算机程序是可行的。’在那一刻,我所憧憬的正是我现在所做的。我问他该怎么做,他说,‘噢,小菜一碟,不值一提。’但是我不记得他说了什么,或者他是否真的懂。当我想起那次谈话时,我就把小说扔到一边,捧起计算机手册来了。”

雷的电进化机方案是从简单的复制体开始,给它们一个舒适的栖息地,以及大量能源和有待填补的空间。和这些家伙最接近的实物是自复制的核糖核酸碎片。这个艰巨任务看上去是可行的。他打算调制一份计算机病毒的培养液。

当时正值1989年,新闻杂志上铺天盖地都是计算机病毒比瘟疫还糟、是技术所能到达的邪恶之极的封面报道。但雷却从计算机病毒的简单代码中窥见了一个新科学的诞生:实验进化与生态学。

为保护外部世界(和保证自己的计算机不会崩溃),雷用一台虚拟计算机来运行他的实验。虚拟计算机是一种在真实计算机的潜意识深处模拟特定计算机的智能软件。通过将那些可自我复制的小家伙们限制在这个影子计算机中,雷把它们与外界隔离,使自己在不危及主机的情况下,能够对计算机内存这样的重要功能胡乱折腾。“看了一年计算机手册之后,我坐下来写代码。两个月后,这小玩意儿跑起来了。在程序运行的头两分钟里,我就已经获得了可以进化的生物。”

雷在他称为“地球”的世界里种下了他编写的一个小玩意儿——80字节的程序代码——把它放入他的虚拟计算机的内存中。这个小家伙先是找到一块80字节大小的空白内存空间,然后用一份自己的复制品占据这块地盘,从而实现了自我复制。不消几分钟,内存里就满是80的复制品了。

雷增加了两个重要功能,将这台施乐复印机般的复制机改造成一台进化机:他的程序在复制中偶尔会搞乱几位代码,他还赋予这些“生物”中的刽子手以优先权。简言之,他引入了变异和死亡。

计算机科学家告诉过他,如果随意改变计算机代码(他的所有生物实际上都是代码),改变后的程序可能无法正常运行,甚而使计算机崩溃。他们认为通过向编码中随机引入漏洞来获得可运行的程序的概率太低了,他的方案无异于浪费时间。雷其实也知道,维持计算机运行所需的完美实在是太弱不禁风了——漏洞会杀死进程。不过,由于他的造物程序在他的影子计算机中运行,一旦变异产生一个严重“畸形”的东西,他的刽子手程序——他将其命名为“收割机”——就会将它杀死,而他的“地球”的其余部分则继续运转。“地球”实际上是找出不能复制的漏洞程序,将其从虚拟计算机中拖将出去。

然而“收割机”会放过极少数有效变种,也就是说,那些碰巧形成一个真正的替代程序的变种。这些合法的变种能够复制并产生其它变种。如果你像雷那样将“地球”运行十亿个计算机周期,在这十亿次的机会中,将出现数量惊人的随机产生的东西。为了让系统更有活力,雷还为造出来的小东西们打上了年龄戳记,这样一来,老一些的家伙就会死亡。“收割机既杀死最老的家伙,也杀死最捣蛋的家伙。”雷笑着说。

在“地球”的首轮运行中,随机变异、死亡和自然选择都起了作用。没几分钟,雷就见证了一个生态系统的诞生——这个系统由那些新的生物组成,它们为抢夺计算机周期而竞争。竞争奖励个头小的家伙,因为它们需要的周期更少,而残酷的达尔文进化论淘汰的则是贪婪的消耗者、体弱多病的物种和老家伙。物种79(比80少一个字节)是幸运的。它的工作卓有成效,很快就超过了80。

雷还发现了非常奇怪的东西——一种只有45个字节的变种。它的代码效率极高,数量上也超过了所有其它变种。“这个系统自我优化的速度之快令我震惊,”雷回忆说。“系统中的存活者有着越来越短的基因,我可以用图把这个速度描绘出来。”

在对45的代码做进一步考察时,雷惊奇地发现它是一只寄生虫。它只包含了生存所需的代码。为了繁殖,它“借用”了80的繁殖代码来复制自己。只要周围有足够的80宿主,45就会兴盛起来。但是,如果在有限的范围内45太多了,就不会有足够的80提供复制源。随着80的减少,45也减少了。这对舞伴跳着共同进化的探戈,进进退退,就像北部森林中的狐狸和兔子一样。

“所有成功的系统都会吸引寄生虫,这似乎是生命的普遍属性。”雷提醒我说。在自然界寄生虫如此常见,以至于宿主很快就共同进化出针对它们的免疫力。寄生虫随之进化出骗过那种免疫力的策略。结果宿主再共同进化出抵制它们的防御能力。实际上这些行动并不是交替出现的,而是两股持续相互作用的力量。

雷学会了用寄生虫在“地球”中进行生态实验。他把79装到他的“培养液”里,因为他觉得79可能对寄生虫45免疫。的确如此。不过随着79的兴旺,第二种能够捕食它们的寄生虫进化出来。这一种有51字节长。当雷为它的基因排序时,他发现,45之所以能变成51,正是由一个“基因事件”所引起的:“七个出处已无从考究的指令取代了45中间段某处的一个指令,”把一个丧失能力的寄生虫变成了强有力的新物种。但这还不算完——一个对51具有免疫力的新物种进化了出来。而这样的过程还在继续。

在运行了很长时间的“培养液”中,雷发现了以其它寄生虫为宿主的超寄生虫:“超寄生虫就像是从你家的电线上偷电的邻居。他们用你的电,你付电费,而你还蒙在鼓里。”在“地球”里,像45这样的有机体发现自己无需“携带”大量代码来复制自己,因为它们周围有足够的代码。雷俏皮地说,“这就像我们利用其他动物的氨基酸一样(在我们吃它们的时候)。”在进一步检查中,雷发现超-超寄生虫兴旺起来,寄生升级到了第三重。他发现了“社交骗子”——这种生物利用两个合作的超寄生虫的代码(“合作”的超寄生虫彼此还相互偷窃!) 。社会骗子需要相当发达的生态环境。至于超-超-超寄生虫,虽然还没看到,不过也许已经有了。在他的世界里,这种不劳而获的游戏也许永无止境。