第十七章 开放的宇宙

17.1拓展生存的空间

一群蜜蜂从蜂巢里溜出来,然后聚成一团悬挂在一根树枝上。如果附近的养蜂人运气好的话,它们落脚的树枝很容易够着。此时,这些喝饱了蜂蜜又不需要看护幼蜂的蜜蜂就像瓢虫一样温顺。

我曾有过一两次将悬聚在我头部高度的蜂团移进自己的空蜂箱的经历。将上万只蜜蜂从树枝上移入蜂箱的过程可说是生活中的一场奇妙表演。

如果有邻居在看,你可以给他们露一手:在嗡嗡作响的蜂团下铺上一块白布或者一大块硬纸板。将布单一边盖在空蜂巢底部拉出的门板上,使布或硬纸板形成一个导向蜂巢入口的巨大坡道。此时,戏剧性地停一下,然后抓住树枝用力一抖。

蜂团整个儿从树上掉下来,落到布单上四下奔涌,像翻腾的黑色糖浆。成千上万只蜜蜂交叠在一起,乱哄哄地挤作一堆,嗡嗡作响。慢慢地,你会看出些眉目。蜜蜂们面向蜂巢的开口排成一行,鱼贯而入,就像是接受了同一个指令的小小机器人。它们确实收到了指令。如果你俯下身来靠近白布,将鼻子凑近蠕动的蜂群,会闻到玫瑰花似的香味。你会看见蜜蜂们一边行进,一边弓着背,猛烈地扇动着翅膀。它们正从自己的尾部喷出玫瑰香气,并把它扇到身后的队伍里。这种香气告诉后面的伙伴们:"蜂后在此,跟我来。"第二个跟着第一个,第三个跟着第二个,五分钟后,整个蜂群都钻进了蜂箱,布单上几乎空空如也。

地球上最初的生命是不可能上演这一幕的。这并非因为缺少足够的变种。早期的基因根本就没有施展这种本事的能力。用玫瑰的味道来协调上万只飞虫聚成一个目标明确的爬行怪物,这不是早期生命所能做到的。早期生命不仅还未能创造出大戏上演的舞台----工蜂、蜂后、花蜜、树、蜂巢、信息素,而且连搭建这个舞台的工具也还没有创造出来。

大自然之所以能产生令人震惊的多样性,是因为它在本质上是开放的。生命不会仅靠最早诞生的那几个基因去产生令人眼花潦乱的变化。相反,生命最早的发现之一是如何创造新的基因,更多的基因,可变的基因,以及一个更大的基因库。

博尔赫斯图书馆里的一本书含有相当于100万个基因的信息量;而一帧高分辨率好莱坞电影画面所含的信息相当于3000万个基因。由此构建的"书库"尽管堪称庞大,在由所有可能存在的书库组成的"元书库"中,它们不过是一粒尘埃。

生命的特征之一是它会不断地拓宽自身的生存空间。大自然是一个不断扩展的可能性之库,是一个开放的大千世界。生命一边从书架上抽出最不可思议的书来,一边为藏书增建厢房,为更不可思议的文本创造空间。

我们不知道生命如何突破了从固定基因空间到可变基因空间的分界线。也许某一个特殊的基因决定着染色体中基因的数量。只要使那一个基因产生变异,就可以使链中基因的总数增加或减少。也许基因组的大小是由多个基因间接决定的。或者更有可能的是,基因组的大小是由基因系统自身的结构决定的。

汤姆·雷的实验显示,在他的自我复制世界里,可变的基因长度瞬时就涌现出来了。他的创造物自行决定其基因组的长度(由此也决定了它们可能存在的基因库的规模),短至出乎他意料的22字节,长至23000字节。

开放的基因组带来开放的进化。一个预先设定了每个基因的工作或基因数量的系统只能在预先设定的范围内进化。道金斯、拉萨姆和西姆斯最初的那些系统以及俄罗斯程序员的电子鱼,都搁浅在这个局限性上。它们也许能生成所有可能的具有既定大小和深度的画面,但不能生成所有可能的艺术品。一个没有预先确定基因角色和数量的系统才能出奇制胜。这就是汤姆·雷的创造物造成轰动的原因。从理论上说,他的世界只要运行时间够长,在最终的形式库中就能进化出任意东西。

17.2生成图像的基元组

形成开放基因组的方法不止一种。1990年,卡尔·西姆斯利用二代连接机(cm2)的超级计算能力设计了一个由长度可变基因组成的新型人工世界,比他设计的植物图像世界更为先进。西姆斯的妙招是创造一个由小方程而非长串数码组成的基因组。他原来的基因库中每个固定长度的基因各控制着植物的一个视觉参数;这个新基因库则拥有长度不定且可自由扩展的方程,籍此绘制各种曲线、色彩和形状。

西姆斯的方程----或着说基因,是一种计算机语言(lisp)的小型自包含逻辑单元。每一个模块都是一个算数指令,诸如加、减、乘、余弦、正弦。西姆斯把这些单元统称为"基元组"----它们构成了一个逻辑的字母表。只要有一张恰当的逻辑字母表在手,就可以建立任何方程,就像用适当多样的语音元素表就能合成任何语音句子一样。加、乘、余弦等的相互组合能产生任何我们想得出的数学方程。既然任何形状都可以用方程来表达,这一基元字母表也就可以画出任何一种图像。增加方程的复杂性也就神奇地扩大了所生成图像的复杂性。

方程基因库还有个意外的好处。在西姆斯的原版世界(以及在汤姆·雷的"地球"和丹尼·希利斯的共同进化的寄生虫世界中),有机体是一串串每次随机转换一个数字的数码,就像博尔赫斯图书馆里的书那样,一次改变一个字母。而在西姆斯的改良版世界里,有机体成了一串串每次随机转换一个基元的逻辑基元组。仍以博尔赫斯图书馆为例的话,这次被调换的是词而不是字母。每本书里每个词的拼写都正确,每本书的每一页由此就更有实际意义。但是,对于以词为原料的博尔赫斯图书馆来说,要煮这锅汤至少需要数以万计的词,而西姆斯仅用一打左右的数学基元就能列出所有可能的方程。

对逻辑单元而不是数字位元做进化,最根本的优势还在于它能马上将系统引上通往开放宇宙的大道。逻辑单元本身就是功能,而不像数字位元那样仅仅是功能的数值。在任意一个地方增加或交换一个逻辑基元,程序的整体功能就会产生转变或得到扩展,从而在系统中涌现出新功能和新事物。

而这就是西姆斯的发现。他的方程进化出全新的图像,并把它们显示到计算机屏幕上。这个新的空间是如此之丰富,使西姆斯大为震惊。由于基元组只包含逻辑部件,西姆斯的lisp字母表确保了大部分方程所绘出的图像都具有某种模式。屏幕上不会再充斥着模糊灰暗的图像,无论西姆斯"漫步"到哪里,都能看到令人惊艳的风景。"艺术"仿佛成了信手拈来之物。一开始,屏幕上布满了狂野的红色和蓝色之字形线条。下一刻,屏幕的上部点缀着黄色的斑斑点点。之后,斑点下出现一条朦胧的水平线,再接着,是重笔墨的波浪伴着蓝色的海天一线。再然后,斑点洇成毛莨花般嫩黄的圆晕。几乎每一轮画面都展现出惊人的创意。一小时内,上千张美轮美奂的图像被从其藏身之所唤起,第一次也是最后一次展现在我们面前。这好比站在世上最伟大的画家身后,观看他创作从不重复主题和风格的速描。

当西姆斯选中一幅图画,繁衍出其变种,再从中选取另一幅时,他所进化的不只是图像。撇开表象,西姆斯进化的是逻辑。一个相对较小的逻辑方程能绘制出一幅让人眼花缭乱的复杂图画。西姆斯的系统曾经进化出下面这段逻辑代码:

(cos(round(atan(log(inverty)(+(bump(+(roundxy)y)#(0.460.820.65)0.02#(0.10.060.1)#(0.990.060.41)1.478.73.7)(color-grad(round(+yy)(log(invertx)(+(inverty)(round(+yx)(bump(warped-ifs(roundyy)y0.080.067.41.656.10.543.10.260.7315.85.78.90.497.215.60.98)#(0.460.820.65)0.02#(0.10.060.1)#(0.990.060.41)0.838.72.6)))))3.16.8#(0.950.70.59)0.57)))#(0.170.080.75)0.37)(vectory0.09(cos(roundyy)))))

这个方程在西姆斯的彩色屏幕上绘出了一幅引人注目的图画:北极的落日余辉映照在两根冰柱上,冰柱晶莹剔透;远方的地平线淡然而宁静。这可堪比一个业余画家的大作哩。西姆斯告诉我说:"这个方程的进化从头到尾仅用了几分钟时间----如果是人类有意为之的话,可比这个费功夫多了。"

但是西姆斯却无从解释方程背后的逻辑以及它为何会绘出一幅冰的图画。在这个方程面前,西姆斯和我们一样茫然无知。方程所隐藏的逻辑已经无法用简单明了的数学来破解。

17.3无心插柳柳成荫

真正开始将逻辑程序的进化从理论付诸实践的是约翰·柯扎。他是斯坦福大学计算机科学系的教授,约翰·霍兰德的学生。他和霍兰德的另外几个学生一起使20世纪60~70年代一度被冷落的霍兰德遗传算法重放光芒,进入到80年代末并行算法的复兴时期。

与"艺术家"西姆斯不同,柯扎并不满足于单纯地探索可能之方程的空间,他想进化出能够解决特定问题的最佳方程。举个牵强一点的例子,假设在所有可能的图像中有一幅图会吸引奶牛凝视它,并由此提高产奶量。柯扎的方法就可以进化出能绘制这一特定图像的方程。在这个例子中,柯扎会对那些所绘图像哪怕只是轻微增加产奶量的方程给予赏奖,直至牛奶产量无法再得到提高。当然,柯扎所选的问题要比这实际得多,譬如,找出一个能操纵机器人移动的方程。

但从某种意义上来说,他的搜索方式与西姆斯以及其他研究者的相似。他也在由可能存在的计算机程序组成的博尔赫斯图书馆内搜寻----只不过不是毫无目的地东瞧瞧西看看,而是去寻找解决特定实际问题的最佳方程。柯扎在《遗传编程》(geneticprogramming)一书中写道:"这些问题的求解过程可以重新表述为在可能存在的计算机程序中搜索最合适的单个计算机程序。"

柯扎通过繁衍"找到"方程的想法之所以被认为有悖常理,和计算机专家对雷的进化方案嗤之以鼻的理由是一样的。过去,人人都"知道"逻辑程序是脆弱的,不能容忍任何变动。计算机科学理论中,程序只有两种状态:(1)无故障运行;(2)修改后运行失败。第三种状态----随机修改后还能运行----是不可能的。程序轻度出轨被称为程序漏洞,这是人们耗费大量财力试图避免的。专家们过去认为,如果计算机方程渐进式改良(进化)真有可能的话,也肯定只会出现在少数罕见领域或专门类型的程序中。

然而,人工进化的研究成果出乎意料地表明,传统观点大错特错了。西姆斯、雷和柯扎都有绝妙的证据来证明,逻辑程序是可以通过渐进式改良进化的。

柯扎的方法基于一种直观判断,即如果两个数学方程在解决一个问题时多少有些效果,那么它们的某些部分就是有价值的。如果这两者有价值的部分能被重新整合成一个新程序,其结果可能比两个母程序中的任何一个都更有效。柯扎数千次地随机重组两个母程序的各个部分,希望从概率上讲,这些组合中能包含一个程序,对母程序中有价值的部分做了最优安排,因而能更好地解决问题。

柯扎的方法和西姆斯的有很多相似之处。柯扎的"数据培养液"也含有大约一打用lisp语言表达的数学基元,诸如加、乘、余弦。这些基元随机串在一起形成一棵棵逻辑"树"----一种形似计算机流程图的层次结构。柯扎的系统像繁殖人口一样创建了500到10000个不同的独立逻辑树。"数据培养液"通常在繁衍了大约50代之后收敛到某个合适的后代身上。

树与树之间交换分枝迫使它们产生变种。有时嫁接的是一根长树枝,有时仅仅是一根细枝或枝头的"叶子"。每根树枝都可以被看作是由更小的分枝构成的完整无缺的逻辑子程序。通过分枝交换,一小段方程(一根树枝),或一个有用的小程序,可以得到保存甚至传播。

通过方程进化能解决形形色色的古怪问题。柯扎用它来解决的一个经典难题是如何让一根扫把立在滑板上。滑板必须在马达的推动下来回移动,使倒立的扫帚在板中央保持直立。马达控制的计算量惊人,但在控制电路上与操纵机器人手臂的电路并无多大区别。柯扎发现,他可以进化出一个程序来实现这种控制。

被他用来测试方程进化的问题还有:走出迷宫的策略;二次方程的求解方法;优化连接众多城市最短路径的方法(又称为旅行商问题);在tictac-toe一类简单游戏中胜出的策略。在每个例子中,柯扎的系统每次都会去寻找解决问题的一般公式,而不是寻找每一个测试实例的具体答案。一个公式经受不同实例的测试越多,这个公式就会进化得越完善。

尽管方程进化能得出有效的解决方案,可这些方案却往往要多难看有多难看。当柯扎拿起他那些高度进化的宝贝开始查看细节时,他和西姆斯以及雷一样感到震惊:解决方案简直是一团乱麻!进化要么绕上一个大弯,要么钻个曲里拐弯的逻辑漏洞抄近道。它塞满冗余,毫不雅致。出了错时,宁愿添加一节纠错程序,或者让主流程改道绕过出错的区域,也不愿销去错误的部分。最后的公式颇有几分神奇的鲁宾·戈德堡连动装置的样子,依靠某些巧合才能运作。当然,它实际上就是架戈德堡神奇连动机。

拿柯扎曾经给他的进化机器玩过的一个问题为例。那是一个由两条互相缠绕的螺旋线构成的图形,大致类似于纸风车上的双重螺旋线。柯扎要求进化方程机器进化出一个最佳方程式,来判定约200个数据点各在互绕双螺旋的哪一条线上。

柯扎将10000个随机产生的计算机公式加载到他的数据培养液里。他放任它们进化,而他的机器则挑选出最有可能获得正确公式的方程。柯扎睡觉的时候,程序树交换分枝,偶尔产生一个运行更好的程序。在他度假期间,机器照常运行。待他度假归来,系统已经进化出能完美划分双螺旋线的答案了。

这就是软件编程的未来!定义一个问题,机器就能在程序员打高尔夫球的时候找到解决方案。但是,柯扎的机器找到的解决方案让我们得以一睹进化的手艺。这是它得出的公式:

(sin(iflte(iflte(+yy)(+xy)(-xy)(+yy))(*xx)(sin(iflte(%yy)(%(sin(sin(%y0.30400002)))x)(%y0.30400002)(iflte(iflte(%(sin(%(%y(+xy))0.30400002))(+xy))(%x0.10399997)(-xy)(*(+-0.12499994-0.15999997)(-xy)))0.30400002(sin(sin(iflte(%(sin(%(%y0.30400002)0.30400002))(+xy))(%(siny)y)(sin(sin(sin(%(sinx)(+-0.12499994-0.15999997)))))(%(+(+xy)(+yy))0.30400002))))(+(+xy)(+yy)))))(sin(iflte(ifltey(+xy)(-xy)(+yy))(*xx)(sin(iflte(%yy)(%(sin(sin(%y0.30400002)))x)(%y0.30400002)(sin(sin(iflte(iflte(sin(%(sinx)(+-0.12499994-0.15999997)))(%x-0.10399997)(-xy)(+xy))(sin(%(sinx)(+-0.12499994-0.15999997)))(sin(sin(%(sinx)(+-0.12499994-0.15999997))))(+(+xy)(+yy)))))))(%y0.30400002))))).

这公式不但样子难看,而且还令人费解。即使对一个数学家或一个计算机程序员来说,这个进化出来的公式也是一团乱麻。汤姆·雷说,进化写的代码只有喝醉酒的人类程序设计员才写得出来。依我看,说进化生成的是只有外星人才写得出来的代码恐怕才更确切些。这绝非人类所为。对这个方程追本溯源,柯扎终于找到了这个程序处理问题的方式。完全是凭着百折不挠和不择手段,它才打通了一条艰难曲折又令人费解的解决之道。但这确实管用。

进化得出的答案看起来很奇怪,因为几乎任何一个高中生都能在一行内写出一条非常简洁优雅的方程式来描述这两条螺旋线。

在柯扎的世界里没有要求方案简洁的进化压力。他的实验不可能找到那种精炼的方程式,因为它并不是为此构建的。柯扎试着在运行过程中添加点简约性因素,却发现在运行开始就加入简约性因素会降低解决方案的效率。得到的方案虽然简单却只有中下水平。他有证据表明,在进化过程末期加入简约性因素----也就是说,先让系统找到一个管用的解决方案,再开始对其进行简化,这是进化出简洁方程更好的方法。

但柯扎坚信简约的重要性被过分高估了。他说,简约不过是"人类的审美标准"。大自然本身并不特别简约。举个例子:时为斯坦福大学科学家的戴维·斯托克分析了小龙虾尾部肌肉中的神经回路。当小龙虾想逃走的时候,其神经网络会引发一个奇怪的后空翻动作。对人类来说,那种回路看起来如巴洛克建筑那般繁复,取消几个多余的循环指令马上就可以使它简化一些。但那堆乱七八糟的东西却很管用。大自然并不会只为了优雅而简化。

17.4打破规则求生存

柯扎指出,人类之所以追求类似牛顿的f=ma那样简单的公式,是因为我们深信:宇宙是建立在简约秩序的基础之上。更重要的是,简约对人类来说是很方便的。f=ma这个公式比柯扎确定螺旋线的怪物使用起来容易得多,这使我们更加体会到公式中所蕴涵的美感。在计算机和计算器问世前,简单的方程更加实用,因为用它计算不易出错。复杂的公式既累人又不可靠。不过,在一定范畴内,无论是大自然还是并行计算机,都不会为繁复的逻辑发愁。那些我们觉得既难看又让人头晕的额外步骤,它们能以令人乏味的精确度运行无误。

尽管大脑像并行机器一般运作,人类意识却无法并行思考。这一讽刺性的事实让认知科学家们百思不得其解。人类的智慧有一个近乎神秘的盲点。我们不能凭直觉理解概率、横向因果关系及同步逻辑方面的各种概念。它们完全不符合我们的思维方式。我们的思维退而求其次地选择了串行叙述----线性描述。那正是最早的计算机使用冯·诺依曼串行设计方案的原因:因为人类就是这样进行思考的。

而这也正是为什么并行计算机必须被进化而不是被设计出来:因为在需要并行思考的时候我们都成了傻子。计算机和进化并行地思考;意识则串行思考。在《代达罗斯》1992年冬季刊上一篇极具争议的文章里,思维机器公司的市场总监詹姆斯·贝利描述了并行计算机对人类思维的飞反效应。文章题为《我们先改造电脑,然后电脑改造我们》,贝利在文中指出,并行计算机正在开启知识的新领域。计算机的新型逻辑反过来迫使我们提出新的问题和视角。贝利暗示道:"也许,世上还有一些截然不同的计算方式,一些只有用并行思考才能理解的方式。"像进化那样思考也许会开启宇宙中新的大门。

约翰·柯扎认为,进化处理定义不严格的并行问题的能力是它的另一个独特优势。教计算机学会解决问题的困难在于,时至今日,为了解决我们遇到的每一个新问题,我们最终还是要逐字逐句地为它重新编程。如何才能让计算机自行完成任务,而不必一步步告诉它该做什么和怎么做?

柯扎的答案是:进化。现实世界中,一个问题可能有一个或多个答案,而答案的范围、性质或值域可能完全模糊不清。进化就可以让计算机软件解决这种问题。譬如:香蕉挂在树上,请给出摘取程序。至今大多数计算机学习都不能解决这样的问题。除非我们明确地向程序提供一些明确的参数作为线索,诸如:附近有多少梯子?有没有长竿?

而一旦定义了答案的界限,也就等于回答了问题的一半。如果我们不告诉它附近有什么样的石头,我们知道是不会得到"向它扔石头"的答案的。而在进化中,则完全有这个可能。更可能出现的情况是,进化会给出完全意想不到的答案,譬如:使用高跷;学习跳高;请小鸟来帮忙;等暴风雨过后;生小孩然后让他们站在你的头上。进化并不一定要昆虫飞行或游泳,只要求它们能够快速移动来逃避捕食者或捕获猎物。开放的问题得出了诸如水蝇用脚尖在水上行走或蚱蜢猛然跳起这样各不相同却明确的答案。

每一个涉足人工进化的人都为进化能轻而易举地得出异想天开的结果而大为吃惊。汤姆·雷说:"进化可不管有没有意义;它关心的是管不管用。"

生命的天性就是以钻常规的漏洞为乐。它会打破它自己所有的规则。看看这些生物学上令人瞠目结舌的奇事吧:由寄居在体内的雄鱼来进行授精的雌鱼,越长越萎缩的生命体,永远不会死的植物。生命是一家奇物店,货架上永远不会缺货。自然界层出不穷的怪事几乎跟所有生命的数量一样多;每一种生物在某种意义上都在通过重新诠释规则来为自己找活路。

人类的发明物就没有那么丰富了。大部分机器被造来完成某个明确的任务。它们遵照我们旧式的定义,服从我们的规则。然而,如果让我们构想一架理想的、梦寐以求的机器的话,它应该可以改变自身来适应环境,更理想的是,它还能自我进化。

适应是对自身结构的扭曲,以使之能够钻过一个新漏洞。而进化是更深层的改变,它改变的是构建结构本身的架构----也即如何产生变化的方式,这个过程常常为其他人提供了新的漏洞。如果我们预先确定了一台机器的组织结构,也就预先确定了它能解决怎样的问题。理想的机器应该是一台通用问题解决机,一台只有想不到没有做不到的机器。这就意味着它必须拥有一种开放性的结构。柯扎写道:"(解决方案的)规模、形式以及结构复杂度都应是答案的一部分,而不是问题的一部分。"当我们认识到,是一个系统自身的结构决定了它所能得出的答案,那么我们最终想要的是如何制造出没有预先定义结构的机器。我们想要的是一种不断自我更新的机器。

那些致力于推动人工智能研究的人无疑会对此大唱赞歌。在没有任何提示和限定答案方向的前提下,能想出一个解决方案----人们称之为横向思维,几乎就等同于人类的智能了。

我们所知唯一一台能重塑自己内部连接的机器就是我们称为大脑的灰色活体组织(大脑灰质)。我们目前唯一可以设想付诸生产的重塑自身结构的机器,可能是一种能够自我改编的软件程序。西姆斯和柯扎的进化方程是通向自我改编程序的第一步。一个可以繁衍其他方程的方程正是这种生命种类的基土。繁衍其他方程的方程就是开放性宇宙。在那里任何方程都能产生,包括自我复制的方程和衔尾蛇式的无限循环公式。这种循作用于自身并重写自身规律的递归程序,蕴涵着世上最宏伟的力量:创造恒新。

"恒新"是约翰·霍兰德使用的词组。多年来,他一直在潜心研究人工进化方法。用他的话说,他真正在从事的,是一种恒新的新数学。那是能够创造永无止尽的新事物的工具。

卡尔·西姆斯告诉我:"进化是一个非常实用的工具。它是一种探索你不曾想过的新事物的方式。它是一种去芜存精的方式。它也是一种无需理解便能探索程序的方式。如果计算机运转速度够快,这些事它都能做到。"

探索超越我们理解力外的领域并提炼我们所收获的,这是定向式、监督式和最优化的进化带给我们的礼物。汤姆·雷说:"但是,进化不仅是优化。我们知道进化能超越优化并创造新事物来加以优化。"当一个系统可以创造新事物来加以优化时,我们就有了一个恒新的工具和开放的进化。

西姆斯的图像遴选和柯扎那通过逻辑繁衍进行的程序遴选都是生物学家称为育种或人工选择的例子。"合格"的标准----被选择的标准,是由培育员决定的,因而也是人工产物或人为的。为了达到恒新----找到我们不曾预料的东西,我们必须让系统自己为它的选择划定标准。这就是达尔文所说"自然选择"的含义所在。选择标准由系统的特性所确定;它自然而然地出现。开放的人工进化也需要自然选择,如果你愿意,也可以叫它人工自然选择。选择的特征应该从人工世界内部自然地产生。

汤姆·雷已经通过让他的世界自主选择适者的方式加载了人工自然选择工具。因此,他的世界从理论上说就具有了进化全新事物的能力。但是雷确实"做了点小手脚"以使系统进入运作。他等不及他的世界靠自己的力量进化出自我复制能力了。因此一开始他就引进了一个自我复制机制,一经引入,复制再也不会终止。用雷的比喻来说,他将生命在单细胞有机体状态下强力启动,然后观看了一场新生物体的"寒武纪大爆发"。但是他并不歉疚。"我只是尝试获得进化,并不真的在意获取它的方式。如果我需要将我的世界的物理和化学成分拉升到能支承花样繁多无限制进化的水平,我乐于这么做。我不得不操纵它们来达到这个水平,对此我并不感到内疚。如果我可以操控一个世界达到寒武纪大爆发的临界点,然后让它自己沸腾溢出边界,那才真是永生难忘呢。和系统所产生的结果相比,我不得不操控它达到临界点是一件不值一提的事。"

雷认为,启动开放的人工进化本身已经极具挑战性了,他不一定非得使系统自己进化到那种程度。他会控制他的系统直到它能靠自己的力量进化。正如卡尔·西姆斯所说,进化是一种工具。它可以与控制相结合。雷在控制数月之后转入了人工自然选择。与之相反的过程同样可行----也许有人会在进化数月之后再施以控制,以得到想要的结果。

17.5掌握进化工具

进化作为一种工具,特别适用于以下三件事:

◎如何到达你想去而又找不到路的领域;

◎如何到达你无法想象的领域;

◎如何开辟全新领域;

第三种用途就是通向开放世界的门户。它是非监督式、非定向式的进化过程。它是霍兰德设想的不断扩张的恒新机器,是一个可以自己建设自己的事物。