14.3 倘佯在生物形态王国

卡尔·西姆斯既不是博尔赫斯「大千」(有人称之为「库」)世界的唯一探索者,也不是第一个。就我所知,第一个合成的博尔赫斯世界的图书馆员是英国动物学家理查德·道金斯。1985年,道金斯发明了一个他称之为「生物形态王国」的「大千」。「生物形态王国」是一个由可能的生物形状组成的空间,这些生物形状由短直线和分叉线构成。它是第一个由计算机生成的可能形式库[1],并且可以用繁殖的方法进行搜索。

道金斯的「生物形态王国」是作为教育程序而编写的,目的是阐明在没有设计师的情况下设计之物是如何产生的。他想用视觉方式直观地证明,随机选择和无目的的漫游绝不能产生连贯一致的设计物,而累积选择(即「方法」)可以做到。

广告:个人专属 VPN,独立 IP,流量大,速度快,连接稳定,多机房切换,每月最低仅 5 美元

除了在生物学界享有盛誉,道金斯在大型计算机编程上也有丰富的经验。「生物形态」就是个相当成熟复杂的计算机程序。它绘制出一段具有一定长度的线条,以某种生长方式给它加上枝条,再给枝条加上枝条。枝条如何分岔,加多少枝条,枝条的长度是多少,这些都可以随形状的演变而在数值上有些许的变化,并且互不相干。在道金斯的程序里,这些数值的「变异」也是随机的。每次对九个可能变量中的一个进行「变异」,就得到一个新的形状。

道金斯希望通过人工选择和繁殖来遍历[2]一个树状的库。「生物形态王国」中诞生的形状起初很短,只能称之为一个点。道金斯的程序生成了它的八个子代,这与西姆斯的程序非常相似。这个点的子代在长度上各不相同,这取决于随机变异赋予了它们什么样的值。电脑把子代加上亲本显示到九个方框中。通过选择-繁殖方法,道金斯选取了他最喜欢的形状(这是他的选择),进化出更加复杂的变异形状。到第七代时,后代已经加速进化到了精雕细琢的程度。

这正是道金斯最初用BASIC[3]写这个程序代码时所希望的。如果他足够幸运的话,就能得到一个由奇妙的、多种多样的分枝树所组成的「大千」。

在程序运行的第一天,道金斯度过了兴奋的一小时,他把他的博尔赫斯图书馆里最临近的书架翻了个底朝天。在一次变异中,他发现茎、枝条、干出现了意想不到的排列。这是些自然界中从未有过的奇异的树。还有那些世间从未出现过的灌木、草和花的线图。道金斯在《盲眼钟表匠》[4]一书中从进化和「库」的角度对此作了双重解释:「当你通过人工选择在电脑中第一次进化出新生物时,感觉就像是在创造一般。确实如此。而从数学的角度看,你所做的实际上是在发现生物,因为在『生物形态王国』的基因空间里,它早就待在那属于它的位置上了。」

随着时间的流逝,他注意到他走进了库的另一个空间:在这里树的分支开始自相缠绕,纵横交错的线条充满了一些区域,直到它们堆成一个实体。层层缠绕的分支形成了小小的躯体而不是树干。而从躯体中长出来的辅助分支看起来像极了腿和翅膀。他进入了库中的昆虫世界(尽管他这个上帝从未打算过要有这么一个国度!) 他发现了各式各样奇怪的虫子和蝴蝶。

道金斯震惊了:「当我写这个程序时,我从未想过除了类似树的形状,它还能进化出别的什么东西来。我本希望能够进化出垂杨柳、杨树和黎巴嫩雪松。」

而现在已经到处是昆虫了。那一晚道金斯兴奋到了废寝忘食的程度。他花了更多的时间去发现那些令人惊叹的复杂生物,它们有的看起来像蝎子,有的像水蜘蛛,还有的像青蛙。他后来说:「我简直兴奋得发狂。我无法形容,探索一个按自己设想所创造出来的王国是多么令人兴奋。在面对这些突现在屏幕上的东西时,无论是我的生物学家背景,还是我20年的编程经验,抑或是我最狂野的梦境,都未能让我有丝毫的心理准备。」

那一晚他无法入睡。他继续向前推进,渴望饱览他的「大千」所能延伸到的境界。这个原本以为简单的世界还有些什么神奇的东西?当他终于在清晨睡着时,「他的」昆虫图像成群结队地出现在梦里。

接下来的几个月里,道金斯在「生物形态王国」这个世外桃源中流连忘返,寻找非植物和抽象的形状。仙女虾,阿兹特克神庙,哥特式教堂窗户,土著人的袋鼠壁画——这些只是他所碰到的形状中的一小部分。道金斯充分利用了一切空闲时间,最终用进化的方法找到了许多字母表里的字母。(这些字母是通过繁殖而得的,不是画出来的。)他的目标是找到他名字中的所有字母,但是他一直没能找到一个像样的D或一个精致的K。(在我办公室的墙上贴着一张令人称奇的招贴画,26个字母和10个数字在蝴蝶翅膀上若隐若现——包括完美的D和K。尽管自然进化出了这些字母,它们却不是被「方法」发现的。摄影师杰尔·山伍德告诉我,他看过了超过一百万只翅膀才收集全这36个符号。)

道金斯在探寻。他后来写道:「市面上的电脑游戏可以让玩家产生某种置身于地下迷宫的幻觉,这个地下迷宫的地形就算复杂也是确定的,在那里他碰到龙、牛头怪或其他它虚构的对手。在这些游戏中怪物的数量其实是相当少的,它们全都是由人类程序员设计的;迷宫的地形也是如此。而在进化游戏里,不论是电脑版还是真实版,玩家(或观察者)的感觉都犹如漫步于一个充满分岔口的迷宫,路径的数量是无穷尽的,而他所碰到的怪物们也不是设计好的或可以预料的。」

最为神奇之处是这个空间的怪物只出现一次,然后就消失了。「生物形态王国」最早的版本没有提供保存每个生物形态坐标的功能。这些形状出现在屏幕上,从库中各自所在的架子上被唤醒,当电脑关闭时,它们又回到其数学位置。重新碰到它们的可能性微乎其微。

当道金斯第一次到达昆虫区时,他拼命地想保留一只以便日后能再次找到它。他打印出它的图片以及所有一路演化而来的28代先祖形态的图片,但是,他早期的原型程序却没有保存那些能使他重建这个形态的「后台」数据。他知道,一旦他那天晚上关闭了电脑,昆虫生物形态就消失了,唯余残留在其肖像中的缕缕香魂。他到底能不能重新进化出一模一样的生命形态呢?他排除了这种可能性。但他至少证明了,它们存在于库中的某个地方。知道它们的存在足以让他刻骨铭心。

尽管道金斯手中有起始点和一套完整的进化序列「化石」,但重新捕获当初的那只昆虫仍然是一件可望不可及的事情。卡尔·西姆斯也曾在他的CM5上繁育出一个由彩色线条组成的令人眼花缭乱的冷艳图案——颇有杰克逊·波洛克[5]之风——但那时他还没有添加保存坐标的功能;他后来也再没能重新找回这个图案,尽管他留有一张当时的幻灯片作为纪念品。

博尔赫斯空间是如此广大。刻意在这个空间里重新定位同一个点是如此困难,不啻重新下一盘一模一样的棋。任何一个轮次的选择,都会是失之毫厘,谬以千里。在生物形态空间里,形式的复杂性,选择的复杂性,以及差异的微妙性,都足以使对每一个进化出的形式的造访既是第一次也是最后一次。

也许在博尔赫斯图书馆中有一本名为《迷宫》的书讲述了下面这个不可思议的故事(是大学图书馆那本《迷宫》里所没有记载的)。在这本书里豪尔赫·路易斯·博尔赫斯讲述了他的父亲——徜徉在一切可能之书的「大千」里的行旅读者——在这片令人望洋兴叹的广阔空间中曾经偶遇过一本可读之书。全书四百一十页,包括目录,都以两行回文(顺序倒序都是一样的词)的体裁写就。前33句回文既晦涩又深奥。那就是他父亲仓促间读到的全部内容——地下室的一场意外大火迫使这个区的图书馆管理员疏散到外面。由于撤离得匆忙,他父亲忘记了这本书的位置。出于羞愧,他在图书馆之外从未提起过这本回文书的存在。而在随后的整整八代人时间里,一个由前图书馆管理员组成的颇为诡秘的协会一直时不时地碰面,来系统地追踪这个先辈旅行者曾经留下的足迹,希望某天在图书馆浩瀚空间的某处重新找到这本书。然而,他们找到自己心目中圣杯的希望极其渺茫。

为了证实这样的博尔赫斯空间到底有多么巨大,道金斯曾悬赏能够重新繁育出(或者撞大运也行!) 一幅高脚杯图像的人。这只高脚杯是他在生命形态王国的一次漫游时偶遇的;他称之为圣杯。道金斯深信它早已深埋无踪,因而愿意向第一个能呈现出圣杯图案的人提供1000美元奖金。「用我自己的钱悬赏,」道金斯说:「是用我的方式宣告没有人会找到它。」让他大跌眼镜的是,他的悬赏挑战发出不到一年,托马斯·里德,加利福尼亚一个软件工程师,竟然重逢了这个圣杯。这看上去与追踪老博尔赫斯的足迹来定位失落的回文书颇为相似,或者与在博尔赫斯图书馆中找到《失控》这本书一样,堪称伟大的壮举。

但是「生物形态王国」提供了线索。它的起源反映了道金斯作为一名生物学家的专业兴趣——在进化之上,它还体现了有机体的一些原则。正是生物形态的这第二生物学属性使里德得以发现这个圣杯。

道金斯认为,要想造出一个有实际意义的生物「大千」,就必须把可能的形状限定在具有一定生物学意义的范围内。否则,即使用了累积选择的方法,找到足够多生物形态的机会也会被淹没在所有形状汇成的茫茫大海中。毕竟,他解释道,生物的胚胎发育限制了它们变异的可能性。举个例子,大多数生物都显示出左右对称的特性;通过把左右对称设定为生物形态的基本要素,道金斯就能够缩小整个库的规模,也就更容易发现生物形态。他把这种缩减称为「受限胚胎学」。他给自己的任务是设计一个「生物学意义上有趣的」受限胚胎学。

道金斯告诉我:「一开始我就有个强烈的直觉,我想要的胚胎学应当是递归的。我的直觉一部分是基于这样一个事实——真实世界中的胚胎学可以被看作是递归的。」道金斯所说的递归,是指简单规则一遍又一遍地循环应用(包括用于其自身的结果),并由此生成了最终形式所具有的绝大多数复杂性。譬如,当「长出一个单位长度然后分岔成两个」的递归规则重复应用于一段起始线条上时,大约五次循环之后,它就会生成一片灌木般的具有大量分叉的形状。

其次,道金斯把基因和躯体的理念引入到库里。他认识到,(书中的)一串字母就好比是生物的基因。(在生物化学的正规表述中,甚至就用一串字母来表示一段基因。)基因生成肌体组织。「但是,」道金斯说:「生物基因并不控制肌体的各个微小部分,这就相当于它并不控制屏幕上的像素点。相反,基因控制的是生长规则,也即胚胎的发育过程,而在『生物形态王国』里,就是绘图算法。」因而,一串数字或文字就相当于一段基因(一条染色体),隐含着一个公式,并按这个公式用像素点绘出图案(躯体)。

这种以间接方式生成形式的结果就是,图书馆中几乎任何随机角落里摆放的——或者说,几乎所有基因生成的——都是符合逻辑的生物形状。通过让基因控制算法而非像素,道金斯在他的「大千」中建立了一条内在语法,阻止了一切旧日荒谬的出现。即使是再出乎意料的变异,结局也不会是一个不起眼的灰点。同样的变换在博尔赫斯图书馆里也可以实现。每个书架的位置不再代表一种可能的字母排列,而是代表一个可能的词语排列,甚至是可能的句子排列。这样一来,你选中的任何书都将至少是接近可读的。这个得到提升的词语串空间远比文字串空间小,此外,正如道金斯所说,限定在一个更有意思的方向上,你就更有可能碰到有意义的东西。

道金斯引入的基因是以生物的方式发生作用——每次变异都按结构化的路径来改变多个像素。这不仅缩小了生物形态库的规模,将其精炼成实用的形态群,而且为人类繁育者提供了发现形式的替代途径。生物形态基因空间的任何微妙变化都将放大成图像的显著而可靠的变化。

这给了托马斯·里德这个无冕的圣杯骑士以第二种繁育途径。里德不断地改变亲本形式的基因,观察基因引起的形状变化,以求了解如何通过改变单个基因来引导形状改变。这样他就可以通过对基因的调整来导出各种生物形态。道金斯把他程序中的这种方法叫做「基因工程学」。和在真实世界一样,它有着神奇的力量。

事实上,道金斯是将他的1000美金输给了人工生命领域的第一位基因工程师。托马斯·里德利用工作中的午餐间隙来寻觅道金斯程序里的圣杯。道金斯宣布竞赛发起的6个月后,里德通过图像繁育和基因工程双管齐下的办法找到了失落的宝藏。繁育是一个快速而随意的头脑风暴,而工程学则是微调和控制的手段。里德估计他用了40个小时来寻找圣杯,其中有38个小时花在工程学上。「只通过繁育手段我是绝不可能找到它的,」他说。接近圣杯的时候,里德无法做到不动其他的点而让最后一个像素改变。他花了好多时间在倒数第二个形式上以试图控制最后那个像素。

无独有偶,让道金斯大为震惊的是,在里德之后数星期内又有两个发现者各自独立地找到了圣杯。他们能够在天文尺度的可能性空间里准确地定位到他的圣杯,同样并非只靠繁育,而主要是通过基因工程,有一个还运用了反向工程[6]

可能形式库(library of possible forms):由所有可能的形式所组成的库。为简洁计,我们后面都使用「可能形式库」这个词。

遍历(traverse):计算机搜索算法中的术语,指按照某种算法,对一个树状结构的每个节点做且仅做一次访问。

BASIC:全名为「Beginner's All-purpose Symbolic Instruction Code」,直译为「适用于初学者的多功能符号指令码」,这正好与其首字母缩写成的英文词有相同的含义。BASIC是计算机发展史上应用最为广泛的高级语言,至今仍然是计算机初学者的入门语言。

《盲眼钟表匠》:The Blind Watchmaker

杰克逊·波洛克(Jackson Pollock, 1912.01.28~1956.08.11):20世纪美国抽象绘画的奠基人之一。

反向工程(Reverse Engineering):通俗说,就是倒推的办法,即根据结果或输出来推断输入或设计。