人工生命
1994年,麻省理工学院媒体实验室前成员、现供职于基因艺术公司(GenArts)的卡尔·西姆斯(Karl Sims)想要研究行为的进化。他想以一种更快的方式来完成这项工作,这样就能得到比在实验室里用细菌和果蝇做实验更多的控制。因此,卡尔·西姆斯在一台超级计算机上创建了一个模拟的进化世界(没有超级计算机和卡尔·西姆斯的编程天赋的人可以通过各种商业电脑游戏来体验、模拟进化,如Maxis的SimLife游戏和微软的Impossible Creatures游戏)。4模拟世界中,每个生物的身体都由一系列相互连接的矩形积木组成。生物可以拥有任意数量的躯干积木,躯干积木还可以是任意尺寸的(例如立方体、短粗矩形、细长矩形)。这些积木以铰链的方式相互连接,并且可以弯曲(见图9-1)。通过一个简单的计算机“大脑”协调运动,积木生物可以控制其铰链积木躯干部分的运动。西姆斯给每一个积木生物设定一个目标,然后该生物会用身体上的传感器来评估它所处的位置与目标之间的关系。然后,积木生物会试图采取行动,通过以某种方式移动其铰接块体部件来实现目标。在西姆斯的第一个实验中,这些生物的目标是模拟在水中以最快的速度游泳。
图9-1 卡尔·西姆斯的积木生物
每个生物都由可以移动的积木块组成。
资料来源:西姆斯(1994年)。
西姆斯通过赋予每个积木生物一种计算机DNA,为他的积木世界带来了一个生物学上的转折,这种DNA描述了该生物躯干的布局,铰链积木躯干部分如何移动,以及其模拟大脑的初始状态。西姆斯接着进行了一系列实验。他以300个具有完全随机的计算机DNA的积木生物作为实验的开始,然后,他把这些积木生物松散地放在模拟游泳池里。大多数的积木生物都是随机设计的,它们会拍打、翻滚或下沉。然而,由于偶然的机会,一些积木生物拥有了一些潜力——一些推动他们前进的动作,或一些能够驾驭自己的能力。后来,西姆斯对他的第一代随机积木生物应用了一个简单的进化准则:表现优秀的游泳者被保留,表现差劲的游泳者被去除。接下来,表现优秀的游泳生物之间发生了“电脑性爱”,相互交换部分计算机DNA,以创造出继承父母双方特征的后代生物。此外,一些后代生物还发生了随机突变——DNA发生改变。
积木生物群体中表现出了变异,任何时间点上都存在一些拥有特殊游泳能力的积木生物。模拟过程中选择最适合的积木生物并复制,从而传播推广他们的设计。这个简单的变异、选择和复制准则在大约100代的时间里不断重复。通常情况下,在20代到30代之后,笨拙、随意、摇摆、会翻滚的积木生物就开始进化成能够游泳的生物(见图9-2)。有些积木生物长出了巨大的核心躯干,背部有一条摆动的尾巴;一些积木生物的尾巴像海豚一样上下摆动,而另一些则像鲨鱼一样左右摆动。好几种积木生物长出了像鱼一样的鳍;另一些则长着又长又细的体节,像蛇一样嗖嗖作响;还有一些积木生物长出了许多小胳膊,它们可以像千足虫一样旋转,还有一些则进化成了非常优雅的海马形状。
图9-2 进化后的积木生物
为游泳而进化的生物例子。
资料来源:西姆斯(1994年)。
进化算法并没有找到最佳的游泳方式,但用丹尼尔·丹尼特的话来说,进化准则发现了各种各样的“生存把戏”。5水的基本物理特性允许生物可以采用大量但又不是无限多的运动方式。在水中游动还需要一些能够用诸如鳍状物或流体动力学体形来稳定自己的能力,因此,水的物理特性限制了可以实现成功游动的生物的外观。这就是为什么所有真实的水生生物都包含某些目的性的变化,就像人造水上机器一样,这也是为什么西姆斯的积木生物会在进化过程中迅速“发现”这些成功的设计。
西姆斯的计算机进化模拟成功地在一个复杂又有约束条件的世界中找到了好的技巧,这还不仅仅局限于游泳问题。西姆斯还进行了一组类似的实验,在实验中,他给这些生物设定了在一个模拟重力的平坦表面上行走的目标。再一次,在经过二三十轮的进化后,随意摇摆的积木生物进化成了可以快速移动的蟹类生物、可以滑行的蛇类生物,以及能够爬行、跳跃、翻滚,甚至用腿行走的生物。在另一组实验中,为了争夺模拟食物而相互竞争的积木生物甚至进化出了胳膊、爪子和嘴巴。
西姆斯事先没有在他的程序中置入任何解决方案。虽然他创造了进化起作用的条件(例如计算机DNA和选择过程),但并没有“设计”任何关于生物自身的东西——程序中没有关于鳍、尾巴、腿或爪子的东西。所有这些设计都是在历经数代的进化过程中被发现的、自下而上产生的。6在数百万年的时间里,这些过程给生物带来了令人难以置信的创新设计,比如眼球、装甲电镀、有毒喷雾、翅膀和对生拇指。
然而,进化究竟是如何创造出如此多新颖的生存把戏的呢?