首页 » 盲眼钟表匠:生命自然选择的秘密 » 盲眼钟表匠:生命自然选择的秘密全文在线阅读

《盲眼钟表匠:生命自然选择的秘密》第三章 累进变化

关灯直达底部

生物不可能全凭偶然因素出现在世上,因为生物的“设计”既复杂又优美,我们已经讨论了。那么它们是怎么出现的呢?答案是:它们源自一个累积的过程,逐步从非常简单的开始,变化成今日的模样。地球上生命演化的起点是太古时期的某些实体,它们因为实在太简单了,只因偶然的机缘就在世上出现了。这是达尔文提出的答案。演化是个逐步、渐变的过程,每一步骤—相对于前一步骤—都非常简单,跨出去全凭机缘。但是整串连续步骤却不是个随机过程(chance process),从终点产物的复杂程度就可以看出,相形之下起点的朴素模样反而令人惊讶。引导这个累积过程的是“非随机存活”。本章的主旨是:这一累积选择的力量本质上是个非随机过程(nonrandom process)。

要是你到布满卵石的海滩散步,一定会注意到卵石的散布不是毫无章法的。通常小卵石集中的区域沿着海滩一路上都有,并不连续,较大的卵石集中在不同的区域,错落其间。那些卵石已经分类、安排、挑选过了。生活在海岸附近的人类部落,看见海滩上卵石的分布,也许会觉得惊疑不置,认为那是“世上有过分类、安排”的证据,也许还会想出一个神话解释,“话说天上有一位巨灵,心思有条不紊、讲究秩序,卵石就是他安排的”。对这样的迷信观念我们也许会展露高傲的微笑,向“土人”解释:那种看来经过安排的现象,其实是物理学的盲目力量完成的,以海滩上的卵石分布而言,海浪是肇因。海浪没有目的也没有意图,没有井然的心,甚至根本没有心。海浪起劲地冲击海滩,将卵石抛向前方,不同大小的卵石,以不同的方式反应海浪的力量,落在或远或近的区域里。于是一个没有经过心灵计划的小型秩序就从混沌中出现了。

有些系统会自动创造出非随机现象,海浪与卵石就构成了一个简单的例子。世上到处是这样的系统。最简单的例子我想是个洞。只有比洞口小的东西才会掉进去。也就是说,要是你在洞口上随意堆放一堆东西,并出力随机地摇晃、推挤它们,过了一段时间后,洞口上与洞口下的东西就会出现非随机分布。洞口下的空间里,东西比洞口小,洞口上则是比洞口大的东西。不消说,人类老早就懂得利用这个简单的原理创造非随机分类了,我们叫作筛子的东西不就是吗?(译按:可参见唐朝李洞的《喜鸾公自蜀归》诗中“扫石月盈帚,滤泉花满筛”。)

太阳系很稳定,是绕日的行星、彗星与小行星碎块组成的,这种行星绕恒星公转的系统在宇宙中似乎不少,我们的只是其中之一。这种系统中,行星越接近恒星,公转速度就得越快,不然无法对抗恒星的引力、停留在稳定的轨道上。任何一条轨道,只有一个速度能使行星(或彗星、小行星)稳定公转而不逃逸。要是它以其他速度绕行,不是脱离轨道冲向太空深处,就是坠毁在恒星表面上,或进入另一条轨道。要是我们观察太阳系的行星,瞧!好家伙!它们每一个都以恰好的速度在恰好的轨道上稳定地公转。难道是神意设计的奇迹?不是,只不过是另一个自然“筛子”罢了。很明显,我们见到的所有绕日行星必须以特定速度绕行太阳,不然就无法稳定地停留在它们目前的轨道中—我们就不会看见它们在那里了。同样明显的是,这不能当作证据,说行星轨道是“有意识的设计”。

这种从混沌中“筛”出的简单秩序,不足以解释我们在生物界观察到的大量非随机秩序。门都没有。还记得号码锁的例子吗?可以简单“筛”出的秩序,约略相当于只要拨对一个号码就能打开的锁:很容易凭巧劲儿就打开了。我们在生物系统中见到的“非随机”现象,相当于一个巨大的号码锁,必须转不知多少次、输入多少正确的数字才打得开。就拿血红蛋白(红血球中携带氧气的分子)来说好了。将组成血红蛋白的所有氨基酸全拿在手边,随意把它们组合起来,想凭巧劲儿就组成血红蛋白分子,你可知需要多大的运气?大到不可思议。著名科学作家阿西莫夫(Issac Asimov,1920~1992)与其他人就以这个例子有力地论证生物界的秩序不可能是偶然性的产物。

血红蛋白分子是四条氨基酸链绞在一起构成的。我们只拿其中一条来讨论。这条链包括146个氨基酸。生物体内的氨基酸有20种。以这20种氨基酸组成一条含有146个氨基酸的链,可能的组成方式是个大得难以想象的数字,阿西莫夫叫它“血红蛋白数字”。它很容易计算,但是不可能写给你看。这146个氨基酸组成的链,第一个可能是20种氨基酸中的任何一种。第二个也一样。因此头两个氨基酸的可能组合就有20×20种,就是400种。这条链头三个氨基酸的可能组合方式是20×20×20,就是8000种。整条氨基酸链的可能组合方式,就是20自乘146次(20的146次方)。这是个令人头昏的大数字。100万是1后面跟着6个0。1万亿是1后面跟着12个0。我们正在计算的数字—“血红蛋白数字”—接近1后面跟着190个0。这就是我们需要的运气:在这么多“可能”中,瞎搞出一个血红蛋白分子来。然而,就人体的复杂性而言,血红蛋白分子只是九牛一毛而已。光凭单纯的筛选根本无从创造出生物体内的大量秩序。生物秩序的发展过程,筛选是核心成分,但是筛选无法说明生物秩序,差得远呢。为了解释这一点,我必须分别“单步骤”选择与“累积”选择。在这一章里到现在为止我们讨论过的简单筛子都是“单步骤”选择的例子。生物组织是“累积”选择的产物。

“单步骤”选择与“累积”选择的根本差异是这样的。任何实体的秩序,例如卵石或其他东西,若由“单步骤”选择造成,就是一蹴而就的。在“累积”选择中,选择结果会“繁衍”;或以其他的方式,一次筛选的结果成为下一次筛选的原料,下一次筛选的结果,又是下下一次筛选的原料,如此反复地筛选下去。实体必须经过许多连续“世代”的筛选。一个世代经过筛选后,就是下一个世代的起点,如此这般每个世代都经过筛选。“繁衍”、“世代”两个词通常用在生物身上,我们借用它们是很自然的,因为生物是“累积选择”主要的例子。也许实际上生物是唯一的例子。但是目前我会暂时搁置这个议题。

天上的云经过风的随机捏揉、切割,有时看来会像我们熟悉的事物。有一张流传很广的照片,显示耶稣的面庞在云中凝视世人,那是一位小飞机驾驶员拍的。我们都看过让我们想起什么的云,像是海马,或一张微笑的面孔。这种相似是“单步骤选择”造成的,换言之,“如有雷同,纯属巧合”,因此并不令人惊艳。夜空中的星座,要是你拿它们的名字对号入座的话,也不会感到惊艳,就像星象家的预言一样,不信的话,告诉我天蝎、狮子、白羊什么的在哪里。生物适应就不同了,总令人觉得不可思议。而生物适应是“累积选择”的产物。一只虫与一片叶子的相似程度,或一只螳螂与一丛粉红花的相似程度,我们会以不可思议、诡异、壮观等词来描述。一朵像黄鼠狼的云,并不能让我们目不转睛,连提醒身边的友人都不值得。此外,那朵云究竟像什么,我们也很容易改变心意。《哈姆雷特》第三幕第二景就有一段对话:

哈姆雷特(王子):你看见天边那朵云吗?像头骆驼的?

波罗纽斯(首席国政顾问):很大的那一朵?真像骆驼,没错。

哈姆雷特:我觉得像一只黄鼠狼。(Methinks it is like a weasel.)

波罗纽斯:它确实像只拱起背的黄鼠狼。

哈姆雷特:或像一头鲸鱼?

波罗纽斯:很像一头鲸鱼。

有人说过—我忘了谁是第一个—给猴子一台打字机,让它在上面随意乱敲,只要时间足够,整套莎士比亚作品都能打出来。当然,关键在“只要时间足够”。让我们对这只猴子面临的任务做些限制。假定我们只期望它打出一个短句子,而不是整套莎翁作品,就说是“我觉得像一只黄鼠狼”好了,我们给它的打字机也是简化的,只有26个大写字母键,外加一个空位键。这只猴子需要多少时间才打得出这一个短句子?

莎士比亚写这个句子,使用了23个字母,其中穿插了5个空位。我们假定猴子不断地尝试,每次都敲28次键。一旦敲出了正确的句子,实验就结束。要是不正确,它就得继续尝试。我不认得任何猴子,好在我有个女儿,才11个月大,对随意乱搞很有经验,我告诉她我想找猴子做的实验后,她就迫不及待地想扮演那只猴子。她在电脑上打出的实例我放在这页上,读者也许能够欣赏。

UMMK JK CDZZ F ZD DSDSKSM

S SS FMCV PU I DDRGLKDXRRDO

RDTE QDWFDVIOY UDSKZWDCCVYT

H CHVY NMGNBAYTDFCCVD D

RCDFYYYRM N DFSKD LD K WDWK

JJKAUIZMZI UXDKIDISFUMDKUDXI

由于她另有要务,我只好写一个计算机程序,仿真一个随意敲键的孩子,或猴子,这里也有一些例子可以参考。

WDLDMNNLT DTJBKWIRZREZLMQCO P

Y YVMQKZPGJXWVHGLAWFVCHQYOPY

MWR SWTNUXMLCDLEUBXTQHNZVJQF

FU OVAODVYKDGXDEKYVMOGGS VT

HZQZDSFZIHIVPHZPETPWVOVPMZGF

GEWRGZRPBCTPGQMCKHFDBGW ZCCF

这个程序就这样不断制造产品—将随机敲到的28个键在银幕上显示出来(或打印)。要花多少时间才能敲出“我觉得像一只黄鼠狼”呢?想想所有可能敲出来的字母串共有多少—每串是任意按28个键的结果。我们必须做的计算与前面做过的血红蛋白分子一样,结果也是同样大的数字。敲第一个键时,有27种选择(不区分空位键与字母键,26个字母键加1个空位键),敲到正确字母的概率是1/27。头两个键都碰巧正确的机会是1/27乘以1/27,等于1/729,因为第二个键敲对的概率,与第一个键相同,可是头两个键都要正确的话,得在第一个键敲对了之后才算第二个键。这个句子全部28个字母都正确的概率,因此是1/27的28次方,就是1/27自乘28次。结果是一个非常小的数字,难以想象的小,以分数表现的话,分子是1,分母是1后面跟着40个0。说得委婉些,这个句子要花很久才敲得出来,什么《莎士比亚全集》就算了吧。

随机变异中的“单步骤选择”已经谈得够多了,让我们回头谈谈“累积选择”。“累积选择”会更有效率吗?效率能提升多少?答案是:有效率多了,即使我们开始觉得这是一个很有效率的过程,也可能低估它的效能。但是只要你仔细再想想,就会发现惊人的效率几乎是必然的结果。我们要再度使用电脑替代猴子,但是我们会对程序做一个关键的修改。一开始这个程序会随机按28次键,例如:

WDLMNLT DTJBKWIRZREZLMQCOP

然后从这一个随机序列“繁殖”下去。电脑不断复制这个字母序列,但是复制过程容许某种程度的随机变异—“突变”。电脑会检查这些复制出来“子序列”,从其中选出最接近标的序列Methinks it is like a weasel(我觉得像一只黄鼠狼)的一个,不论相似的程度多么薄弱。第一个这样选出来的“子序列”与标的序列实在不怎么像:

WDLMNLT DTJBSWIRZREZLMQCO P

但是这个程序会重复下去,电脑开始复制这个赢家,并容许同样程度的随机变异,并选出一个新的赢家。如此这般,10“代”、20“代”之后的赢家,可能仍然必须凭信心才能看出它们与标的“很像”。但是,到了30“代”,相像就不再是想象的产物了。到了40“代”,银幕上出现的字母序列,只有一个字母是错的。正确的结果在第43“代”产生。

第二次重跑这个计算机程序,正确的结果在第64“代”产生。第三次重跑,第41“代”就产生正确的结果了。

电脑实际花了多少时间繁衍出符合标的的那一代,并不重要。如果你真的想知道,电脑第一次完成整个程序,是在我出去吃午餐的时候。大约半个小时。(计算机玩家也许会认为这实在慢得蹊跷。原因是我的计算机程序是用BASIC写的,这种语言在计算机程序语言家族中相当“幼齿”。我改用PASCAL语言重写这个程序后,11秒就完成了一回合。)电脑做这种事比猴子快一些,但是速度的差异其实不大。真正重要的时间差异,是“累积选择”需要的时间与“单步骤选择”需要的时间。同一部电脑,以同样的速度,执行“单步骤选择”程序的话,要花的时间是:1后面加30个0,单位是年。学者估计的宇宙年龄大约是100亿年(1后面加10个0)。我们不必细究1后面加30个0等于宇宙年龄的多少倍,比较适当的说法是:与猴子或电脑要花的巨量时间比起来,宇宙的年龄实在微不足道—在我们这种粗略的计算方式必须容忍的误差范围之内。但是同一部以随机方式按键的电脑,只要加入“累积选择”的条件,达成同样的任务所需的时间,我们人类以常识便可以了解,在11秒与吃一顿午餐所费的时间之间。

现在我们可以看出:“累积选择”(这个过程中,每一次改进,不论多么微小,都是未来的基础)与“单步骤选择”(每一次“尝试”都是新鲜的,与过去的“经验”无关)的差别可大了。要是演化进步必须依赖“单步骤选择”,绝对一事无成,搞不出什么名堂。不过,要是自然的盲目力量能够以某种方式设定“累积选择”的必要条件,就可能造成奇异、瑰丽的结果。事实上那正是我们这个行星上发生的事,我们人类即使算不上最奇异、最让人惊讶的结果,也是最近的结果。

让人惊讶的反而是:类似前面所举“血红蛋白数字”的例子,却一直被用来反驳达尔文的理论。那些这么做的人,往往在本行中是专家,像是天文学或什么的,他们似乎真诚地相信达尔文理论纯以概率(巧劲儿)—“单步骤选择”—解释生物的组织。“达尔文式的演化是‘随机的’”这个信念,不只是不真实而已。它根本与真相相反。在达尔文演化论中,“巧劲儿”只扮演次要的角色,最重要的角色是“累积选择”,它根本就是“非”随机的。

天上的云无法进入“累积选择”过程。某种特定形态的云不能通过某种机制生产与自身相似的子女。如果有这种机制,如果云像黄鼠狼或骆驼一样,能够繁衍模样大致相似的世系,“累积选择”就有机会发生。当然,有时云朵的确会分裂、形成“子女”,但那还不足以让“累积选择”发生。必要条件是任何一朵云的“子女”应该与“父母”相似,不像“族群”中的其他“老爹”。这个差别极为紧要,最近有些哲学家对自然选择理论发生了兴趣,可是他们有些人很明显地误解了这一点。还有一个必要条件是:任何一朵云生存、繁衍复本的概率,与它的形态有关。也许在某个遥远的星系中,这些条件都发生了,而且经过了数以百万年计的时光,结果是一种虚无缥缈的生命形式,只是寿命短暂。这个题材也许可以写成一部很棒的科幻小说,题目我都想好了,就叫《白云记》吧;但是就我们所想讨论的问题来说,电脑模型是比较容易掌握的,像猴子/莎士比亚模型一样。

虽然猴子/莎士比亚模型用来解释“累积选择”与“单步骤选择”的差别很有用,它却在重要的面相上误导了我们。其中之一是:在选择繁衍的过程中,每个世代各突变个体都以它与最终标的(“我觉得像一只黄鼠狼”)的相似程度判生判死。生物不是那样。演化没有长期目标。没有长程标的,也没有最终的完美模样作为选择的标准,尽管虚荣心让我们对于“人类是演化的最终目标”这种荒谬的观念,觉得挺受用的。在现实中,选择的标准永远是短期的,不是单纯的存活,就是—更为广义地说成功繁殖率。要是在很久很久之后,以后见之明来看生命史像是朝向某个目标前进,而且也达成了那个目标,那也是许多世代经过短期选择后的附带结果。“钟表匠”—能够累积变异的自然选择—看不见未来,没有长期目标。

我们可以改变先前的电脑模型,将这一点也考虑进去。在其他方面我们也可以使模型更逼近真实。字母与文字是人类特有的玩意儿,我们何不让电脑画图?说不定我们甚至可以看见类似动物的形状在电脑中演化,机制是在突变的形状中做累积选择。我们一开始不会在电脑中灌进特定的动物照片,免得电脑有成见。它们得完全以累积选择打造—累积选择在随机突变中运作的结果。

实际上每个动物的形态都是胚胎发育建构的。演化会发生,是因为连续的各世代每一个胚胎发育都发生了微小差异。这些差异是因为控制发育的基因发生了变化(即突变,这就是我前面说过的整个过程中的小角色—随机因素)。因此我们的电脑模型也该有些特征,相当于胚胎发育与能够突变的基因。设计这样的电脑模型,有许多方式。我选了一个,并为它写了一个计算机程序。现在我要描述这个电脑模型,因为它能给我们一些启发。要是你对电脑没有什么概念,只要记住电脑是机器,会服从命令干活儿,可是结果往往出人意表。程序就是给电脑的指令单子。

胚胎发育是个非常复杂的过程,无法在小型电脑上逼真地模拟。我们必须以一种简化的玩意儿做模拟。我们必须找到一个简单的画图规则,电脑很容易照办,然后它也可以在“基因”的影响下发生变化。我们要选择什么样的画图规则呢?电脑科学教科书经常以一个简单的“树木发育”(tree-growing)程序,说明所谓“递归”程序设计法(recursive programming)的威力。一开始电脑画出一条垂直线。然后这条线分出两条枝杈。每一条枝杈再分出两条小枝杈。每条小枝杈再分出两条小小枝杈。这是个“递归”过程,整棵树因为继续在局部应用同一条规则(以这个例子而言,就是“分枝规则”)而不断地发育。无论树木发育到多大,同一条分枝规则继续施用于所有新生枝条的尖端。

“递归”的“深度”指枝杈分枝的“次数”;就是一条树枝长出后,可以继续以同样的方式分枝多少次。这个次数程序中可以事先规定,次数一满新生枝头就停止分枝了。图2显示了“深度”对“递归”结果的影响。比较“深”的递归树是个颇为复杂的图案,但是你仍可以看出那是同一条分枝规则创造出来的。当然,真正的树就是这样分枝的。一棵橡树或苹果树的分枝模式看来很复杂,其实不然。基本的分枝规则非常相似。因为同一条规则不断地施用于整棵树的生长尖端—主干分出主枝,主枝分出小枝,小枝分出小小枝,等等,树才长得又大又繁茂。

图2

大体而言,动植物的胚胎发育过程也可以比喻成递归分枝。我并不是说动物的胚胎看来像发育中的树。它们一点儿也不像。但是所有胚胎的发育都以细胞分裂进行。细胞总是分裂成两个子细胞。基因最终会影响身体,可是受它们直接影响的是身体的局部细胞,以及那些细胞的分裂模式。动物的基因组从来不是“宏伟的设计图”,或整个身体的“蓝图”什么的。我们下面会讨论,基因比较像食谱,而不像蓝图;而且不是整个胚胎的食谱,而是每个细胞或胚胎某个区域一小撮细胞—只要分裂就必须遵循的食谱。我并不否认胚胎以及日后的成年个体有一个大尺度的形态可言。但是,发育中的身体逐渐成形,每个组成细胞都尽了绵薄之力(所以整体的形态是“细胞层次事件”的后果),而每个细胞的局部影响力主要通过“一分为二”的过程施展。树杈分枝与细胞分裂以同样的模式影响全身。基因影响这些局部事件,才影响到全身。换言之,基因的终极对象是全身,可是却从基层—细胞干起。

总之,用来画树的简单分枝规则看起来像是仿真胚胎发育的理想工具。我就把它写成一个很小的程序,取名为“发育”,预备将来植入一个大程序中—“演化”。为了编写“演化”这个程序,我们得先讨论基因。在我们的电脑模型中,“基因”的角色与功能如何呈现?在生物体内,基因做两件事:影响发育以及进入未来的世代。动植物的基因组,基因数目多达几万个,但是我们在电脑模型中,只设置9个。每个基因在电脑中都以数字代表,这个数字就是它的“值”。某一个基因的“值”可能是+4,或–7。

这些基因如何影响发育呢?它们能做的可多了。不过万变不离其宗:它们会对“发育”程序(树木发育的规则)产生微小的、可以计量的影响。举例来说,某个基因也许会影响桠杈的角度,另一个基因会影响某一特定枝杈的长度。另一种基因一定会做的事,是影响递归的深度—就是连续分枝的次数。我让“基因9”负责这个功能。因此图2的“7棵树”可以视为7个有亲缘关系的生物个体,彼此间除了“基因9”之外,其他的基因完全相同。我不想一一详谈其他8个基因的功能。图3透露了一些信息,你可以据以推测每个基因大体而言能做哪一类的事(功能)。图3正中的树是基本形,图2中也出现过。有8棵树环绕着基本形。这8棵树与中央的基本形只有一个基因的差异,也就是说,这8棵树是因为基本形的一个基因发生了突变而产生的。例如基本形的右侧,是“基因5”的原始值因为突变而加了1的结果。要是图3的空间够大,我会画出18棵突变形环绕着基本形。因为总共有9个基因,每个基因每次突变都有两个方向:升1级(原始值加1),或降1级(原始值减1)。因此基本形环绕着18个突变形,就穷尽了所有单步骤突变的可能结果。

图3

这些树每一棵都有独有的“基因式”(genetic formula)—9个基因的数值。我没有把图3每棵树的“基因式”写出来,因为基因式本身对各位不会有任何意义。真正的基因也一样。基因是合成蛋白质的“食谱”,蛋白质直接参与各种生理过程,换言之,基因必须“翻译”成胚胎的发育规则,才能造成观察得到的结果。同样,在电脑模型中,9个基因的数值只有在翻译成枝杈模式的发育规则时,才对我们有意义。要是两个个体只有一个基因有差异,比较这两个个体的身体,对于这个基因的功能就能有个大致的理解。例如图3中间那一列,对于“基因5”的功能就透露了有用的信息。

这也是正宗的遗传学方法。遗传学家通常不知道基因影响胚胎发育的方式。他们也不知道任何动物的完整基因式。(译按:完整基因式,指基因启动的顺序与作用;即使细胞核DNA的全部碱基序列都清楚了,也未必能找出完整的基因式。)但是两个成年个体若已知只有一个基因有差异,遗传学家比较它们的身体就可以观察到那个基因的作用。当然,实况更为复杂,因为基因的功能有复杂的互动,整体无法简化成“所有基因的总和”。电脑里的树也一样。下面我会举出一些图案,读者会发现:支配它们发育的基因,作用方式与生物的基因非常相像。

读者想必已注意到我的枝杈模式图全是左右对称的。这是我强加在“发育”(计算机程序)过程的限制。这样做部分原因是为了美感,以及精简基因的数量(如果基因不能在左右两侧产生镜像效果,那么每一侧都得有基因控制)。此外,我想演化出类似动物的形状,而大多数动物的身体都是左右对称的。为了同样的理由,从现在起,我不再管这些玩意儿叫“树”,我会管它们叫“身体”或“生物形”(biomorphs)。“生物形”是我师兄莫里斯(Desmond Morris,1928~1954年获得牛津大学动物学博士学位)创造的词,他的超现实主义绘画中有些玩意儿他叫作生物形,因为它们的形状模糊地类似动物。那些画在我钟爱的事物中有非常特别的地位,因为其中一幅上了我第一本书的封面。莫里斯宣称那些生物形在他心里演化,它们演化的来龙去脉可以在他一系列画作中寻绎。

闲话休说,言归正传,且说电脑生物形,先前我们说到一圈18个可能的突变形,图3可以见到8个。由于这一圈里每个突变形都与中央的生物形只差一个突变步骤,因此把它们视为中央基本形的子女,是很自然的。于是在我们的电脑模型中,“生殖”就有了着落。我们写一个小程序再现这种生殖过程,题名“生殖”,然后将它像“发育”一样塞入较大的“演化”程序中。关于“生殖”,有两点值得注意。第一,不涉及性别,生殖是无性的。因此我将生物形想象成女性,因为实行无性生殖的物种几乎总是女体。第二,我规定一次只有一个基因能够突变。孩子与母亲的差异,限于9个基因中的一个;此外,突变仅限于在母亲基因的原始值上加(或减)1。这些只是我任意强加的约定;即使另换一组约定,我们的模型仍然能恰当地仿真生物界的实况。

我们的模型倒是有一个特征,不能视为任意的约定,而是一个生物学基本原理的化身。每个孩子的形状不是直接源自母亲的形状。每个孩子的形状都是它9个基因的值(影响枝杈角度、距离等等)决定的。每个孩子的基因都来自母亲。这正是生物界的实况。身体不会代代遗传,基因会。基因在身体中,影响身体的胚胎发育。那些基因或者遗传到下一个世代,或者不。基因的性质不会因为参与过建构身体的过程而发生变化,可是它们遗传到下一世代的机会却可能受身体的影响。成功的身体协助基因进入下一世代,失败的身体则否。所以在我们的电脑模型中,我要仔细地分别发育与生殖,将它们写成两个不同的小程序。“生殖”将基因值传递给“发育”,基因值通过“发育”影响发育规则,此外“生殖”与“发育”互不相干。必须特别强调的是:“发育”不会将基因值回传给“生殖”,要是会的话,就与所谓“拉马克主义”(Lamarckism)无异了。(见第十一章)

好了,我们已经写好两个计算机程序模块了,叫作“发育”与“生殖”。“生殖”使基因世代相传,在遗传过程中基因可能会突变。在每个世代中,“发育”取得“生殖”提供的基因,并将它们逐步翻译成树木枝杈,最后在电脑屏幕上展示出一个(生物形)身体的图案。现在我们可以在一个叫作“演化”的大程序中将这两个模块组合起来。

“演化”基本上是一个无穷重复的“生殖”过程。在每个世代里,“生殖”从上一世代取得基因,遗传到下一世代,但是往往不是原封不动地遗传下去,有些基因会发生微小的随机差错—突变。一次突变不过是在基因既有的值上加1或减1,而且突变的基因是随机选出的。这就是说,即使每一世代的变化,从量方面说非常微小,经过许多世代后,后裔与始祖之间就会因为累积的突变而有巨大的遗传差异。但是,虽然突变是随机的,世代累积起来的变化却不是随机的。每个世代与母亲的差异没有一定的方向(随机)。但是母亲的儿女中哪一个有机会将体内的基因遗传到下一代,不是随机的。这是达尔文自然选择的功能。自然选择凭借的标准不是基因,而是身体—基因经由“发育”影响过它的形状。

每个世代,基因除了复制、遗传(经由“生殖”)之外,还参与“发育”—这个程序依据事先规定好的严格规则,将适当的身体图案画在银幕上。每个世代会有“一窝儿女”(下一世代的预定成员)展示在银幕上。它们都是同一个母亲的突变儿女,每个与母亲只有一个基因的差异。这么高的突变率,是电脑模型最不像生物的地方。实际上,真正基因的突变率往往小于百万分之一。我让电脑模型表现高突变率,是为了让银幕上的图案方便我们的眼睛,人才没有耐心等待100万个世代呢。

在这个故事中,人眼扮演了积极的角色。我们的眼睛会做选择。我们扫视银幕上的“那窝儿女”,选出一个繁殖。当选的就成为母亲,生出自己的“一窝儿女”,一齐展示在银幕上。我们的眼睛在这儿做的,与在繁殖名犬、异卉的脉络中所做的完全一样。换言之,我们的模型严格地说是一个人择(artificial selection)模型,而不是自然选择。“成功”的标准不是存活的直接标准,在真正的自然选择中才是。在真正的自然选择中,要是一个身体拥有存活的本钱,体内的基因也会存活,因为基因在身体里。因此,能存活的基因通常是让身体有存活本钱的基因,两者的关系如影随形。另一方面,在电脑模型中,选择的标准不是存活,而是迎合我们口味的潜力。这可不一定非是闲闲美代子的无厘头口味,因为我们可以下决心针对某个特定性质持续不断地选下去,例如“类似垂柳的树形”。不过,我从经验中知道,人类选择者往往口味不专、见异思迁。其实,在这一方面某些种类的自然选择也未遑谦让。

我们从屏幕上这一窝里选出一个繁衍下一代,就按键让计算机知道。中选的个体将体内基因交给“生殖”,新的世代就开始繁衍了。这个过程可以不断地反复,就像实际的演化一样。生物形的每个世代与前后世代,差异只有一个基因的一个突变步骤。但是100个世代后,突变累积了100个,模样的变化就说不准了。而经过这100个突变,模样可变的地方太多了。

我写好“演化”程序,第一次跑的时候,做梦都想不到变化可以大到那个程度。让我惊讶的主要是:生物形很快就看来不像树了。基本的二分分枝结构一直没变,但是很容易让彼此交错、再交错的线段遮掩住,造成密实的颜色块(打印机只能印出黑色与白色)。图4的演化史只包括了29个世代而已。始祖只是一个渺小的家伙,一个实心墨点—英文用的句点。虽然这老小子的身体只是一个墨点,像个太古浓汤中的细菌,它体内却有分枝发育的潜力,能够发育成图3中央的基本形:它体内“基因9”的值是0(意思是分枝0次),所以才只是一个点。图4中所有“生物”都源自“点始祖”,但是为了不让这一页看来拥挤不堪,我没有把它所有的苗裔都印出来。每一世代除了成功的那一位,只印出一位至两位失败的姊妹。所以图4只代表一个演化世系的主干,在我的美感引导下演化。每一个演化阶段图上都有。

图4

让我们简短地回顾图4的头几个世系。墨点在第二代变成一根Y形树杈。在下两代这根树杈变大了。然后两根枝杈有了弧度,整根树杈像是制作精良的弹弓。第7代,两根枝杈的弧度加大了,几乎互相碰触。第8代,树杈变得更大了,有弧度的枝杈每根都新增了一对小枝杈。第9代,这些小枝杈消失了,弹弓的柄变长了。第10代,看来像一朵花的剖面;带弧的主枝杈像合围着一根中央枝或“柱头”的花瓣。第11代,同样的花形,只是更大、更复杂些。

我不再这样叙述了。你看图就行了,一直看到第29代。请注意每一代的姊妹之间只有微小的差异,它们与母亲的差异同样的小。由于它们每一代都与母亲有微小差异,因此我们预期它们与外祖母的差异会稍大一点。这就是累积演化的要义—即使我们提升了突变率,让演化以不切实际的速率向前狂奔。因为演化速度快得不符实际,所以图4看来像物种的系谱,而不是个体的系谱,但是原则(累积演化)是一样的。

当初我编写这个程序,除了各式各样类似树的形状,完全没有想到它会演化出其他的东西。我期待见到垂柳、黎巴嫩杉(cedars of Lebanon)、伦巴第杨树(Lombardy poplars)、海草,也许还有鹿角。我身为生物学家的直觉,加上20年编写计算机程序的经验,以及最狂野的梦境,都不足以让我产生足够的心理准备,实际在银幕上出现的图案令人出乎意料。在枝杈模式的演化过程中,我不记得什么时候脑海里突然浮现一个念头:何不试试演化出类似昆虫的图案!就这么着,这个无厘头点子驱使我一代又一代地挑出任何一个看来像似昆虫的孩子繁衍下去。相似的程度逐步演化,不可思议的感觉也在心头逐步滋长。读者可以在图4下方看见最终的产物。我承认,它们有八只脚,像蜘蛛,而不是六足的昆虫,即便如此,你看它们多像昆虫啊!我第一次看见这些精致的电脑创造物在我眼前出现,欣喜雀跃,难以自已,直到现在仍然无法平复。我记得当时心中响起了宣示胜利的《查拉图斯特拉如是说》起始和弦(理查·施特劳斯1896年的作品,1968年的电影《2001年:太空漫游》主题曲)。我无心进食,那天晚上,我一阖眼“我的”昆虫就蜂拥而出。

市面上有些电脑游戏会令玩家产生幻觉,以为自己正在一座地下迷宫中漫游,这座迷宫非常复杂,但是地理布局明确,在其中玩家会遇见恶龙、半人半牛兽,以及其他神话主角的对手。在这些游戏中,怪物的数量其实不多。它们全是计算机程序师设计的,迷宫的地理布局也是。在演化游戏中,无论是虚拟的还是真实的,玩家(或观察者)在道路不断分叉的迷宫中神游,但是可能路径的数量几乎是无限的,而且一路上遇到的怪物都不是设计出来的,都是事先不可预测的。我在闭塞的生物形世界中漫游,一路上遇见了精灵虾、阿兹特克神殿、哥特式教堂的窗子、袋鼠的画,有一次还碰上一幅“漫画”,我居然认得,是牛津大学教授威金斯(Davis Wiggins,逻辑讲座教授,2000年退休)!可惜我忘了“收集”起来,空留回忆。图5是我收藏的一部分,全是以相同的方式“培育”出来的。我要强调:这些形状不是艺术家的创作。它们没有经过任何加工、修饰。它们全都在电脑里演化,由电脑画出来的。人类眼睛的角色,只限于“选择”—在随机突变的儿女中挑出一个繁殖,许多世代后,就可以观察到累积演化的结果。

现在我们手里有了一个切合实际情况的演化模型了,盲目敲打键盘的猴子没的比。但是生物形模型仍然有所不足。它为我们演示了累积选择的威力,类似生物的形状(“生物形”)得以产生几乎无限的变异,但是这个模型依赖人择而非自然选择。人眼在做选择。我们可以摆脱人眼,让电脑根据符合生物界实情的标准自行选择吗?不过这事比预想的困难多了,值得我花一些时间向大家解释。

要是所有动物的基因组你都一目了然,根据一个明确的判断标准选出一个特定的基因式就太容易了。但是自然选择并不直接拣选基因,它拣选的是“基因对身体的影响”,就是学者所说的“表型效应”(phenotypic effects)。我们的眼睛擅长挑选“表型效应”,人类已培育出了许多品种的家犬、牲口以及家鸽就是明证,要是读者不嫌弃,不妨图5也当作一件证据。为了让电脑直接选择“表型效应”,我们得写一个非常复杂的“模式辨识”(pattern-recognition)程序。市面上的确有这种“模式辨识”程序,电脑用来“阅读”印刷文字,甚至手写文字。但是这种程序是尖端软件,高手才会设计,而且大型、高速电脑才跑得动。不过,即使这种程序我会写,我的64k计算机跑得动,我也懒得动它们的脑筋。“模式辨识”这种工作,还是眼睛与大脑合伙来做比较妥当,毕竟大脑是个拥有100亿神经元的电脑!

图5

让电脑选择模糊的一般特征倒不太难,例如高瘦、短胖,甚至玲珑有致的曲线、锋芒、洛可可式的(rococo)装饰纹。一个办法是写个电脑程序让电脑记住人类在历史上青睐过的性质—着眼于它们的“类别”—然后电脑继续以同样的标准挑选未来的世代。但是这算不上仿真自然选择。请记住:自然不需要计算能力就能选择—除了少数例外,例如雌孔雀选择雄孔雀。在自然中,通常的选择媒介(agent)作风直接、赤裸又简单。它是台阴森的收割机。当然,存活的理由并不单纯—难怪自然选择能够创造出极为复杂的动物、植物。但是死亡却是粗陋、简单的。在自然界,在众表现型中做选择,只要通过“非随机死亡”就成了。表现型一旦选出,也等于选了它体内的基因。

若要电脑以令人感兴趣的方式模拟自然选择,我们就该忘记洛可可式的装饰纹与所有吸引视线的特征。我们应该致力于模拟“非随机死亡”。在电脑里,生物形应与虚拟的恶劣环境对抗。它们是否经得起环境的折腾,应与它们的形状有因果关联。理想状态是,恶劣的环境应包括其他的生物形—猎食者、猎物、寄生虫、竞争者—大家都在物竞天择,自求多福。举例来说,猎物与猎食者之间的斗争,胜负与它们的形状特征有因果关联。换言之,有些猎物由于体形的特征,易于逃过遭猎杀的命运。可是什么样的体形特征能协助个体逃过劫数,或让个体易遭劫数,不应由程序设计师事先决定。那些判生判死的标准应该是结果,就像生物形的演化一样,我们凭后见之明才能发觉。于是符合实情的演化剧就可以在电脑里上演了,因为条件已经齐备,一场不断增强的“军备竞赛”(arms race,参见第七章)即将发动,至于结局,我不敢臆测。不幸,我的程序设计本领还不足以建构这么一个虚拟演化世界。

什么人有这种本领呢?我想电玩店里“外星人入侵”之类的嘈杂、庸俗动作电玩你一定早已熟悉了,发展那些电玩的程序师就有这种本领。这些程序都在仿真想象的世界。在那个虚拟世界中,有地理情境,通常以三维空间呈现,也有快速移动的时间向度。其中有些对象在虚拟的三维空间中嗡嗡穿梭,在令人难以忍受的嘈杂声中彼此相撞、相互射击、互相吞噬。那个虚拟世界甚至逼真到操弄控制器的玩家都以为身临其境,情不自禁。我认为这种计算机程序设计最高段的产品,就是训练飞行员或宇宙飞船驾驶员的虚拟机了。但是与我们想要模拟的世界与情况相比,这些程序就太小儿科了。我们得模拟一个完整的生态系,猎物与猎食动物在其中演化,然后发展成愈演愈烈的军备竞赛!不过,这是做得到的。要是程序设计高手有意试试身手,与我合作接受挑战,请与我联络。

尽管模拟“军备竞赛”目前似乎是不可能的任务,还是有一些简单得多的事可做,我就打算暑假试试看。我会在花园里找个阴凉的地方,摆上一台电脑。屏幕要用彩色的。我手边有个“生物形”程序,其中有几个基因专门控制色彩,运作的方式就像那9个控制形状的基因一样。我会随便挑一个看来简洁、鲜艳的生物形做起点。然后电脑就展示出它的突变子女,整个屏幕上都是,有的颜色不同,有的形状不同,有的颜色、形状都不同。我相信蜜蜂、蝴蝶或其他昆虫会“造访”屏幕,它们“撞击”屏幕上特定生物形的位置,就表示它们“看上”了它—“选择”了它。等到昆虫访客超过一定数量之后,电脑就清理屏幕,以最受青睐的那个生物形代表第二世代,繁衍下一世代。于是屏幕上就出现了新一代的突变子女。

我很指望经过许多许多世代后野外的昆虫能让花朵在电脑里演化出来。果真的话,电脑花朵遭受的自然选择压力与野外的花朵完全一样—显花植物的演化驱力正是昆虫。我的指望可不是一厢情愿,事实上昆虫经常停留在女士衣服上的鲜艳处,科学家也系统地做过实验,研究昆虫的色彩癖好。另一个更令人兴奋的可能,是野生昆虫让类似昆虫的形状演化出来。这也有先例可援,绝非我瞎想:蜜蜂就是蜂兰演化的推手。蜂兰看来像似蜂后,引诱雄蜂与它交配,借以传播花粉。蜂兰今日的形态是它世代受到雄蜂垂青的累积结果。想象一下,要是图5中的“蜂花”是彩色的,你会不会以为它是蜜蜂?

我悲观的主要理由是:昆虫的视觉与我们的很不一样。映像管屏幕是为人眼设计的,而不是昆虫的眼睛。因此,虽然我们与蜜蜂殊途同归,都将蜂兰看作形似蜂后的东西,蜜蜂可能根本看不见映像管屏幕上的图像。蜜蜂也许只能看见625条扫描线而已。不过,这个实验仍然值得做。我想本书出版时,我就知道答案了。

常听人说:电脑输出的结果,不会比你输入的多。这个说法还有其他的版本,像是:电脑只能做你叫它做的事,因此电脑绝无创意。这些陈腔滥调的确是真的,可是又当不得真,这好有一比:莎士比亚一辈子写过的—字—也不过是他第一位老师教他写的那些玩意儿,不是吗?电脑跑的“演化”程序是我写的,可是图5上的那些图形都不是我事先构想的。压根儿我就没想到它们会出现,因此我认为说它们“突现”(emerge)挺实际的。没错,它们的演化以我的选择做向导,但是每一阶段我只能在一小撮随机突变的样本中做选择,我的选择谈不上“策略”,只能说投机、善变、短视。对生物形会演化成什么模样,我心无定见,自然选择也没有。

关于这一点,要是你听我说过一个故事,管保你印象更深刻。话说有一回,我的确试过在跑“演化”程序之前就默认了一个终极目标。不过我必须先来个坦白从宽。即使我不坦白,我想你也猜得到。图4的演化史是事后重建的。里面的“昆虫”不是我第一次见到的那些。当初它们出现在屏幕上,我心头响起了胜利的号角,可是我无法记录它们的基因式。它们就在眼前,在屏幕上,而我无法掌握它们,无法解开它们的基因式。我不愿把电脑关掉,一直在绞尽脑汁,希望想出什么办法来将它们的基因式记录下来,结果枉费心机。它们的基因埋藏在内部深处,真实生物的也是。我可以用打印机将它们的躯壳印出来,但是我失去了它们的基因。我立即修改了程序,以后的生物形都能留下基因式供日后查考,可是往者已矣,无从挽回。

于是我开始设法将它们找回来。既然它们演化出来过,难道不能再演化一次?记忆中的施特劳斯和弦萦绕心头,“我的”昆虫也挥之不去。我在生物形的国度里四处漫游,不知见过多少奇异的生物与事物,无奈过尽千帆皆不是,我没找到它们。我知道它们必然在什么地方。我知道它们的演化起点—始祖的基因式。我有它们的“画影图形”。我甚至连它们历代祖先的形貌都有记录。可是我不知道它们的基因式。

也许你以为重建它们的演化路径很容易,其实不然。理由是:演化世代要是到达某个数目,即使只涉及9个基因,可能的演化系谱也是个天文数字。好几次我遇上似乎可算“我的”昆虫的祖先,可是不管我怎么小心在意地选,以后的演化总不免步入歧途。最后,我在生物形国度里的演化漫游总算有了眉目—我又逮着了它们。那种胜利的心情,不亚于我第一次见到昆虫在屏幕上演化出来。我至今仍不清楚它们是否就是让我心中响起施特劳斯《查拉图斯特拉如是说》起始和弦的那些,还是它们只是趋同演化的产物,只不过形似而已。不过我已经很满意了。这一次不会再出错了:我把它们的基因式记了下来,现在我随时可以让“昆虫”演化了。

我承认这个故事有些地方我夸张了一些,但是我有深意。我希望读者明白的是:即使程序是我写的,电脑按照指令亦步亦趋行事,屏幕上演化出的动物也不是我规划的,我很清楚它们的“祖先”是什么模样,可是我见到它们时自己也万分惊讶。我完全不能控制演化,即便我想让某个“演化史”重演过一遍,依然无法得逞。好在那些“昆虫”的祖先每个世代我都打印过,留下了完整的图像记录,然而即使有图为凭,整个过程仍困难而沉闷。程序师不能控制或预测电脑图像的演化过程,你觉得困惑吗?难不成电脑里有什么我们难以理解甚至神秘的玩意儿在搞鬼?当然不是。真实生物的演化也不涉及什么神秘玩意儿。电脑模型可以帮助我们解决这个谜团,并对真实的演化过程有所认识。

我先交代一下,解决谜团的论证大致是这样的:有一个数目固定的生物形集合,每一个生物形都在一个数学空间中占据一个独特的位置。它们的位置是永久的,只要知道基因式就能立刻找到它们;而且每个生物形与四周的紧邻都只有一个基因的差异。因为我已知道我的“昆虫”的基因式,我可以随意复制它们,也可以让电脑从任何一个生物形朝向它们演化。你第一次以“人择”演化出新玩意儿的时候,会觉得那是一个创造的过程。也的确是。但是你实际在做的,只是在生物形国度的数学(基因)空间里“找寻”它们。我说这的确是个创造的过程,理由是:寻找任何一个特定的生物形极为困难,只因为生物形的国度非常非常大,居民几乎有无限多。在其中,漫无目的、毫无章法地搜寻根本不可行。你必须采取某种有效的—有创意的—搜寻策略。

有些人天真地以为会下棋的电脑是暗中试过所有可能的棋步后才落子的。要是他们输给电脑,这种想法可以令他们好过一点,但是他们的想法完全错了。棋局的可能棋步,数量实在太大了:在这么大的搜寻空间中使用闯空门的伎俩无异于大海捞针。写一个成功的下棋程序,秘诀在于找出有效的搜寻快捷方式。累积选择—无论是电脑模型的人择还是真实世界里的自然选择—是个有效的搜寻方式,它的结果看来就像是有创意的智能设计出来的。毕竟培里的设计论证着眼的就是那一点。就技术而言,我们在电脑上玩的生物形游戏,不过是从早已在数学空间就位的玩意儿中,搜寻觉得悦目的个体。整个过程让人觉得像是从事艺术创作。在一个很小的空间中搜寻的话,其中不过小猫三四只,通常不会觉得像是在创作什么。孩子玩的找东西游戏不会令人觉得有创意。随意瞎闯就想找到目标,通常只有在搜寻空间很小的时候才行得通。空间增大后,搜寻方式就得有点章法;空间越大,章法越得讲究。一旦空间大到一定的程度,有效的搜寻方式就与真正的创意无从分别了。

电脑生物形模型把这些论点展示得十分清楚,它们在人类的创造过程(例如构思赢得棋赛的策略)与自然选择(盲眼钟表匠)的演化创造之间构成一座有教育意义的桥梁。为了了解这一点,我们必须将“生物形国度”发展成一个数学“空间”,四面八方充满了形态有差异的生物形,它们有秩序地分布排列,各安其位,等待造访。图5的17个生物形,并没有什么特殊的安排。但是它们在生物形国度中,都有自己的独特位置,由基因式决定,四周也围绕着特定的邻居。在生物形国度中,它们彼此间都有明确的空间关系。那是什么意思?空间位置会有什么意义?

我们谈的空间是基因空间。在基因空间中,近邻都是基因式只差一个基因的个体。图3中央是基本形,周围的生物形是它在基因空间中18个近邻里的8个。那18个近邻都是它可能生产的子女,它也可能是它们的子女,这都是我们的电脑模型容许的。由那些近邻向外跨出一步,中央生物形的邻居就达到324个(18×18,暂且忽略“朝向祖先方向的”突变)。再跨出一步,邻居的数量就增加到5824个(18×18×18),包括可能的曾祖/曾孙,表/堂兄弟姊妹等等。

为什么要谈基因空间呢?我们会得到什么结论呢?答案是:基因空间可以帮助我们了解演化是一个渐进、累积的过程。根据电脑模型的规则,每一个世代只能在基因空间中移动一步。自始祖起经过29个世代,落脚的位置不可能距始祖29步以上。每一部演化史都是基因空间中一个特定的路径,或叫“轨迹”。举例来说,图4所记录的演化史就是基因空间中一个特定的蜿蜒轨迹,连接一个点与一只昆虫,中间经过了28个世代。我以比喻的方式说我在生物形国度里“漫游”,指的就是这个。

本来我想将这个基因空间以一张图画来呈现。我遇到的问题是:图画是二维空间。生物形居住的基因空间不是二维空间。它甚至不是三维空间,而是九维空间![一谈到数学,千万记住别害怕。数学没那么可怕,尽管有时数学家会让你觉得数学难得不得了。每一次数学难着我了,我都会想起电机工程大师汤普森(Silvanus Thompson,1851~1916)在《轻松学习微积分》(Calculus Made Easy)中的箴言:“要是一个傻子会做,每个傻子都会。”]要是我们能够画出九个向度,就能以每个向度对应一个生物形基因组的基因。每个特定动物的位置,就说蝎子或蝙蝠或昆虫好了,都能在基因空间中以它的基因式定位。演化变化就是在这九维空间中一步一脚印创造出来的。两个动物的遗传差异,从一个演化成另一个所需的时间,以及演化的困难程度,都可以用它们在这九维空间中的距离来表示。

可是我们没有办法画出有九个向度的空间。我想找个办法来凑合,就是用一张二向度的图(平面图)来表达在(九度)基因空间中从一点移动到另一点的感觉。有许多办法都能达到这个目的,我挑了一个我叫作“三角形”的。请看图6。三角形以任意挑出的三个生物形为顶点。顶上那个是基本树形,左边是“我的”昆虫中的一个,右边的没有名字但是我觉得它很好看。它们每一个都有独特的基因式,与所有生物形一样,基因式决定了它们在(九维)基因空间中的位置。

图6

这三角形在一个(二维)平面上,这个平面是(九维)基因空间的一个切面(一个傻子会做的,每个傻子都会)。这个平面就像一片插入果冻的平板玻璃。玻璃表面上画着一个三角形,以及凭基因式刚好位于玻璃面上的生物形。“凭基因式”是什么意思?这就要谈谈位于三角形三个顶点上的生物形了。我们管它们叫“锚地”(anchor)。

记得吗?我们谈基因空间中的“距离”,指的是遗传上相似的个体是“近”邻,遗传上相异的个体是“远”亲。在这一个平面上,三个“锚地”是计算所有距离的参考点。这片玻璃上的任一点,无论在三角形之内还是之外,基因式的计算方式都是求得距三个“锚地”生物形基因式的“加权平均数”。我想你已经猜到“加权”是怎么做的。就是以那个点到三个“锚地”的距离来加权的,精确地说,是它与三个“锚地”的接近程度。因此,那个点越接近昆虫就越像昆虫。要是你向树的方向看去,就会看见生物形的昆虫模样逐渐消失,反而越来越像树。当你的视线停留在三角形的中心,那儿见到的动物都因为三个“锚地”的影响表现出不同程度的“遗传夹缠”(Genetic Compromises)。

但是以上的说明对三个“锚地”生物形颇有抬举过当之嫌。电脑的确利用它们计算平面上任一点的基因式,无可否认。但是,在这个平面上任取三点都能完成这个任务,算出相同的数值。因此图7中,我就不画出三角形了。图7与图6是同样的图,只是另一个平面罢了。同一只昆虫仍是三个“锚地”之一,只是这会儿它在右手边。其他两个“锚地”是“悍妇”(第二次世界大战期间的英国海军飞机)与蜂花,图5上都有。在这个平面上,你也会注意到:近邻比远亲看来相似得多。例如“悍妇”就位于一中队类似机种之间,它们正以编队飞行。由于昆虫位于两个平面上,你可以想象两个平面相交,其间有一夹角。

图7

我们的方法因为除去了三角形而有所改进,因为它岔开了我们的注意力。三角形过度凸显了处于“锚地”位置的三个生物形。不过我们的方法还得进一步改进。图6与图7中,空间距离代表遗传距离,但是比例都扭曲了。纵坐标的比例尺与横坐标的比例尺未必对应。为了修正,我们必须慎选当作“锚地”的生物形,使它们彼此的遗传距离都相等。图8就是修正后的结果。三角形同样没有画上。三个“锚地”分别是图5中的蝎子,同样的昆虫(又来了),以及顶上说不出名堂的一个玩意儿。这三个生物形彼此相距30个突变(遗传距离)。换言之,任何一个都可以演化成另外两个,一样容易。任何一个要演化成另外一个,至少需要30个遗传步骤。图8下缘的标尺,标上了遗传距离的单位—基因。它可以被看作一把遗传尺。这把尺不仅能用在水平方向,你可以将它向任何方向倾斜,测量平面上任一点与另一点的遗传距离,以及所需的最低演化时间(让人懊恼的是:在图8的平面上,这并不确实,因为用来打印的打印机会扭曲比例,但是由于扭曲的比例很轻微,不值得计较。不过,要是你使用图8的标尺,记住:你得到的读数并不精确)。

图8

这些切入九向度基因空间的二向度平面,让我们多少可以体会“在生物形国度中漫游”的意思。若要更实际些,你得记住演化并不局限在一个平面上。在真正的演化旅途上,你随时可能从一个平面掉到另一个平面上,例如从图6的平面掉到图7的平面上(在那只“昆虫”附近,因为两个平面在那里相交)。

我说过图8的“遗传尺”让我们能够计算从一点演化到另一点需要的最短时间。就我们的模型而言,这是不错的,因为我们的模型内建了严格的演化规则,但是我想强调的是“最短”这个形容词。由于昆虫与蝎子相距30个基因单位,从昆虫演化成蝎子只要30个世代—要是一步都不错的话。可是“一步都不错”谈何容易?你得知道目标的基因式,想出前进的路径,并有“按表操课”的能力。这些机会—知道目标的基因式,想出前进的路径—在生物演化中完全不存在。

现在我们可以用生物形模型讨论先前以“猴子敲出莎士比亚作品”建立的论点了,那就是:渐进、逐步的变化是演化的关键,纯偶然性事件不是。首先我们要改变图8下方的标尺单位。距离不再是“(演化过程中)必须改变的基因数目”,而是“(完全凭偶然性)一次就能跳跃过该距离的概率”。为了方便讨论,我们得先软化一条电脑模型的内建规则,最后读者会了解为什么我一开始要设计那条规则。那条规则是:子女与父母的差异只限于一个基因。每一次只有一个基因可以突变,而且这个基因的“值”只准加1或减1。这条规则软化后,突变基因的数目不限,突变值也不限。这样软化,实际上的确太过分了,因为这等于突变值可以是正负无限之间的任意值。要是我们以个位数限定基因的突变值,例如正负9之间,就能恰当地契合我想推演的论点了。

那条规则适当地软化后,理论上生物形每个世代可能发生的变化,包括9个基因的任意组合。还有,每个基因的突变值也有许多可能,只要是个位数就可以了。这有什么意思呢?是这样的,理论上这么一来演化就是可以跳跃的:任何世代都可能在生物形国度中从一点跳到另一点。不只是一个平面上的另一点,而是整个九维超空间中的另一点。举例来说,要是你想从昆虫一步就演化成图5中的狐狸,办法如下:在基因1至9的值上加上下列数值,–2,2,2,–2,2,0,–4,–1,1。但是由于我们谈的是随机跳跃,每一次生物形国度中所有的点都有同样的机会成为目标。因此任何一个特定的点(例如狐狸)果真天降鸿运成为目标的概率就很容易计算了。那就要先算出超空间中所有生物形的总数。你一定已经看出来了,我们又要做天文数字的计算了。我们这次有9个基因,每个基因有19个可能的值(从–9到9),因此一次跳跃的可能目标有19的9次方个。总数是5000亿。与阿西莫夫的“血红蛋白数字”比起来寒碜得很,但是我还是认为它是个“大数字”。要是你开始时是个昆虫,像个白痴跳蚤一样跳个5000亿下,至少有一次你会跳成狐狸。

这对我们了解真正的演化有什么帮助呢?这个模型再一次让我们体认到“渐进、逐步变化”的重要。有些演化学者不认为演化需要这种“渐变假定”(gradualism)。生物形模型让我们结结实实地了解“渐进、逐步变化”很重要的理由。说起演化,我们预期那只昆虫会跳到它周遭近邻的位置,而不会一跃就到达狐狸或蝎子的位置。为什么?且听我分解。随机跳跃果真发生过,从昆虫跳到蝎子当然可能。它跳到近邻的位置一样可能。它跳到国度中任何一个生物形的位置都一样可能。但是现在问题来了,既然国度里生物形的总数达5000亿个,而跳到任一个位置的概率与其他位置的概率完全一样,于是跳到任何一个特定位置的概率就小到可以忽略的地步。

请注意,假定生物形国度里流行着一股非随机“选择压力”,对我们没有任何帮助。即使国王设立大奖,颁给任何一跳就跳到蝎子位置的幸运儿,也无济于事。概率仍是5000亿分之一,(与零相差多少?)但是,要是你不跳,而是走,一次一步,每一次你恰巧朝正确方向跨出一步的话就会得到一个小硬币作为奖励,你短时间内就能到达蝎子的位置。最快也要30步(世代),你不一定那么快,可是要不了太多时间,是可以肯定的。正因为一蹴而就的概率太低,一步一个脚印地前进,每一步都奠基于先前的成就,是唯一的可行之道。

前面几段的基调很容易引起误会,我非得“消毒”不可。我举的例子是从昆虫演化到蝎子,好像演化是针对某个遥远目标(例如蝎子)前进的过程。这个问题我们已经讨论过,演化从来不是个有目标的过程。但是如果所谓目标就是“任何能增进生存机会的条件”,我的论证仍然有效。如果一个动物有子女,它至少有本事活到成年。它的突变子女可能本事更大。但是如果子女的突变规模很大,遗传空间中的亲子距离拉得很开,子女因此拥有更大本领的概率有多大呢?答案是:很低。非常低。至于理由,我们在讨论生物形模型时已经讨论过了。要是突变的规模很大,可能的跳跃目标就会是个天文数字。而我们在第一章讨论过,因为死掉的方法比活着的方法多得多,在遗传空间中随机长距蹦跳显然是稳健的找死之道。在遗传空间中即使短距蹦跳都很可能闯入鬼门关。但是跳越的距离越短,死亡的概率越低,改善本领的概率越高。我们会在另一章回到这个主题。

那就是我想从生物形模型捻出的教训。我希望读者不会觉得太抽象。另有一个数学空间,充斥了有血有肉的动物,每个都由几十亿个细胞组成,每个细胞都包含几万个基因。这不是生物形空间,而是真正的基因空间。地球上生存过的真实动物,比起这个理论上可能生存的动物,数量简直微不足道。这些真实动物都是基因空间中演化路径的产物,真实的演化路径数量很少。动物空间中大多数理论路径都产生不可能生存的怪物。真实动物分布在理论怪物之间,这儿一些,那儿一些,在基因超空间中每个都有自己独特的位置。每个真实动物周遭的一小撮邻居位置,大部分从没有被真实动物填充过,但是有一些有,是它的祖先、苗裔、旁支亲族。

在这个巨大的数学空间中,人类、鬣狗、变形虫、土豚、扁虫(如涡虫)、乌贼、渡渡鸟与恐龙都有特定位置。要是我们有高明的基因工程技术,理论上我们就可以在动物空间中任意移动。我们就能在基因迷宫中逍遥自在,从任何一点出发都能找到抵达渡渡鸟(几百年前灭绝)、暴龙(中生代之末灭绝)与三叶虫(古生代之末灭绝)的路径(也就是重新创造它们)。我们必须知道的,不过是哪些基因必须修理,染色体哪些片段要复制、颠倒或者“删掉”。我不大相信我们会有那么完整的知识来干这件事,但是这些令人着迷的已灭绝的动物是那个巨大基因超空间中的永久居民,它们躲在自己的私密角落里,只要我们有正确的知识,懂得在迷宫中如何找路,就能发现它们。我们甚至还可能以人择让鸽子演化成渡渡鸟的复本,不过我们得活上100万年才能完成这个实验。但是现实世界的遗憾,可以用想象力弥补。像我一样没受过专业数学训练的人,电脑是想象力的有力盟友。电脑就像数学,想象力不仅因而飞翔,也因而自律自制。