进化过程:孩子的游戏
有了进化完成其工作所需的所有信息处理机制之后,我们还需要初始化系统。假设乐高套装的各个部分散落在担任解读者的孩子面前的地板上,我们从乐高图书馆随机抽取100张上面有乐高设计编码的卡片交给这个孩子。这个孩子会尽职尽责地把卡片上指定的每个玩具都组装起来,放在担任乐高设计适合度仲裁者的孩子面前。仲裁者会对每个玩具进行评分,由于这些玩具完全是随机构造的,大多数玩具的评级都为零或接近零,但也有些玩具比其他玩具有趣一点,评级略高一些。我们把仲裁者使用适合度函数标准来给玩具打分的过程称为选择。
解读者之后会拿出排名在前两位的玩具进行改造:将这两个玩具的模式卡随机切成两半并交换这两部分。改造后的新玩具具有了两款获得高评分的玩具的设计特色。在进化术语中,这种交换被称为杂交。进化算法的一个重要特点是设计越合适,其平均变量就越多,这有助于使设计适合的特征在群体中得到放大。然而,对乐高玩具的数量也是有限制的,因为解读者可以用来构建乐高玩具的积木块是有限的。为了扩大群体中合适的玩具的特性并减少不太合适的玩具的特性,我们将实施以下规则:前20个合适的设计将通过杂交来使每对模式卡拥有4个变体,接下来的20个设计的每对模式卡将有3个变体,再接下来的20个设计的每对模式卡将有2个变体,接下来的20个设计的每对模式卡只有1个变体,而最不合适的20个设计将没有变体。我们将通过抛硬币来打破适合度的束缚。因此,我们将从原来的100个设计中制作出100个变体(40 + 30 + 20 + 10 + 0)。一旦制作好变体,我们将拆掉原来的100个设计,并将零件放回箱子里。如果一个高评级的设计需要比盒子里保有得更多的部件,我们会将最低评级的设计拆分以提供必要的部件——即使在乐高世界里也存在对有限资源的竞争。
此外,我们还假设解读者这个孩子并不完美。有时候,积木搭建过程中会出现错误。例如,他可能会错误地将模式从一张卡转录到另一张卡,并意外地更改、删除或添加之前不存在的符号。这些错误大多数时候都不会被注意到,可能只是改变了某一个部件的颜色,或者稍微改变了一个特定积木块的方向。但是,这样一个随机的错误可能会对后续玩具的适合度产生重大影响,这种随机误差就是突变。
现在,让我们想象一下这两个孩子(解读者和仲裁者)经历几十次循环过程后会发生什么。就像卡尔·西姆斯的电脑模拟一样,最初我们会看到一群随机的低适合度的玩具。解读者可能会在相当长的一段时间里费力地完成许多无趣的设计。但总有一两个设计会引起仲裁者的注意,于是,这些设计就会衍生出不同的版本。我们很快就会看到一些更适合、更有趣(至少在仲裁者眼中是这样)的设计。玩具群体的适合度水平将开始上升。我们也看到在玩具中会出现共同的特点,它们都体现出对仲裁者的口味的迎合。例如,如果仲裁者喜欢有人和动物形象的玩具,我们就会看到有四肢和脸的玩具。如果仲裁者喜欢黄色,我们会看到很多黄色的玩具。在某种程度上,我们会开始看到有复杂结构出现,也就是任何能吸引决定适合度的仲裁者的东西,比如乐高人、乐高马、乐高狗。相对而言,与在乐高图书馆中随机搜索相比,将会很快出现符合这种适合度设计的发现。
在互动者群体中出现的共同特征和花招将把我们引向另一个重要的观点。复杂设计本质上是模块化的。13人类身体中有一系列令人眼花缭乱的系统、子系统和其他组件,从心血管系统到心脏,再到红细胞,而红细胞又有自己的系统和子系统。复杂的人工设计具有相同的特点,例如汽车的刹车系统、刹车本身和一个单独的刹车片。复杂设计可以被看作模块和子模块的分层集合。在进化系统中,这些系统、子系统和组件在模式中都有对应的代码片段。因此,进化构建的模式中充满了这样的模块,这些模块组合成更高级别的模块,而更高级别的模块会组合成更更高级别的模块。在生物学中,构建人类DNA图谱的是单个基因,这些基因编码了从眼睛颜色到将有毒氨转化为危险性较低的尿素的化学循环等各种事物。在乐高的案例中,我们将看到编码肢体和颜色等事物的模块。如果某个模块有助于提高互动者的适合度,那么随着时间的推移,我们将看到该模块在玩具中变得更加普遍。如果仲裁者真的喜欢黄色,我们就会看到黄色的模块出现在许多模式图中。
事实上,正如道金斯指出的那样,选择实际上并不对互动者本身起作用,它作用的是模块。14我们可以把每个乐高玩具看作由积木编码的特性集合。通过在仲裁者面前展示不同的组合,进化过程会测试哪些特征会吸引裁判的眼球,然后用这些特征构建更多的东西。随着时间的推移,这些特性以及为它们编写代码的模块在玩具群体中变得越来越常见。因此,进化过程并不是选择单个玩具,而是在表达“仲裁者喜欢有四肢的、黄色的东西”。
如果将第一个仲裁者撤换为仲裁者2,突然之间,适合和不适合的东西就会发生变化。之前符合前任仲裁者口味的玩具现在被仲裁者2判定为“恶心”,我们很快就会看到适合度的崩溃。但在这次崩溃之后的某个时刻,进化算法将再次站稳脚跟,并开始提出一些更好的设计。一旦这种情况发生,它将开始产生越来越多更好的设计变体,最终乐高玩具的适合度将再次攀升。如果仲裁者2喜欢飞机、汽车和绿色,我们很快就会看到玩具设计中出现翅膀、轮子和许多绿色的元素。15
进化是一个在巨大的可能性空间中筛选的过程。它会尝试一系列设计,然后增加可行的设计并减少那些不可行的设计,如此循环往复。没有远见,没有计划,没有理性,也没有有意识的设计,有的只是针对算法进行的盲目又机械的反复折磨。