第一推动丛书·综合系列(套装共8册)
上QQ阅读APP看书,第一时间看更新

最优化与协同进化有何区别?

在分析基于复杂引擎的活动的广泛谱系时,我们会遇到两种不同的情形。第一种是环境和选择标准不会随时间变化。在其中的进化实体会越来越适应环境和选择标准。有时候会找到最好的可能答案或匹配;有时候只是接近最好,但最佳答案至少在理论上是存在的。第二种情形是环境会不断变化;因此“最好的”答案只是暂时的。这一类中最有趣的系统是各个实体的环境本身就是由其他进化的实体构成。实体进化使得其他实体的选择规则也在改变。为了方便起见有时候将第一种情形(朝固定的最优解前进)称为最优化,将进化实体之间存在竞争的情形称为协同进化。两种情形都属于复杂引擎的范畴。进化系统只有在协同进化时才能发挥最大的创新潜力。

第6章讨论的将任意01序列转化为全1序列的最多1问题就是最优化。虽然算法每次运行时搜索答案的路径不同,但最终的答案都是一样的。如果问题变得更复杂,最佳答案是什么可能不知道;但在理论上还是存在最佳答案,如果有合适的进化算法就有可能最终找到它。在运行了一段时间之后,如果在找到最佳答案之前优化终止了,很有可能找到的是一个较好的答案,如果运行更长时间,又有可能找到更好的。免疫系统应对感染就是最优化,最佳答案是什么不知道,但经过数天后产生出的结果往往已经足以保护身体免受进一步感染。身体需要这么长时间才能进化出能与特定外来抗原紧密结合的抗体。HIV病毒之所以让免疫系统难以应对就是因为这种病毒进化的速度不低于免疫系统的响应速度;因此身体产生的抗体总是脱靶。利用了复杂引擎的算法往往能解决复杂的最优化问题,但并不总是这样。朝最优解前进的速度取决于问题本身和所采用算法的细节。通常无法用进化方法解决的问题往往是那些最优解在解空间的地貌中没有被其他较好答案围绕的问题。这种情形很容易人为创造出来,但在自然界很罕见。

最优化的一个普遍特性是无法从整体上判断结果是趋向于更复杂还是更简单。结果的复杂性取决于最优解是复杂还是简单。而最优解是复杂还是简单取决于问题本身。

回到生命进化的问题,在自然界中选择往往是基于与其他生物的互动。换句话说选择是协同进化。在这种情形中,随着生物的进化,选择也不断变化,不存在永远的最优解。在计算机中可以设计出类似的进化算法,实体像生物一样受到其他实体挑战。甚至一个突变或随机变化就会改变整体的动力学。一个实体的变化会导致其他实体的选择动力学改变。在这种情形中会形成不断的挑战—响应—挑战循环。当其他实体改变,每个实体所面临的适应性地貌都会不断变化。在这个缓慢变化但最终不可预测的世界里,一时的优势可能过了一段时间就变成了劣势,没有哪个创新能确保长期的成功。人们可能会认为,在这样的系统中复杂性增加并不一定是好事,因为与复杂性相关的大量互动不大可能都从中获得好处,而且复杂性的具体特征也不会一直都带来好处。但结果并不是这么回事。

计算机进化算法带来的一个好处是现在可以进行以前只有活的生物才能进行的实验。在一个计算机实验中,实体相互竞争许多代,同时定期保存群体样本,比如说每1000代保存一次。然后将不同时期进化出的群体放到一起竞争。在其中第1000代可以与第10000代竞争。在生物界这就好比将三叶虫保存下来放到现代海洋中去,或者将现代鱼类放到寒武纪的海洋中去。

通过这一类实验发现,进化了较长时间的群体一般比进化史更短的群体更具竞争优势。当两个群体是取自两次不同的实验,两者没有共同的历史时仍然是这样。长期的竞争似乎更青睐能应对新形势的策略。圭尔夫大学的丹·阿什洛克称这种现象为整体适应。他收集了6个例子,均采取很不一样的算法和数据结构,除了很少的代变化严重受限的情形之外,他还没有发现不表现出这种效应的系统丹尼尔·阿什洛克,个人信件。5个发表的例子参见:Dan Ashlock&John E.Mayfield, Acquisition of General Adaptive Features by Evolution, Evolutionary ProgrammingⅦ,V.W.Porto, N.Sarava-nan, D.Waagan,&A.E.Eiben eds.(1998);Daniel Ashlock, Elizabeth Blanken-ship,&Jonathan Gandrud, A Note on General Adaptation in Populations of Painting Robots, Proceedings of the 2003 Congress on Evolutionary Computation(2003);Daniel Ashlock&Brad Powers, The Effect of Tag Recognition on Non-Local Adaptation, Proceedings of the 2004 Congress on Evolutionary Computation, Vol.2(2004);David Doty, Non-Local Evolutionary Adaptation in Gridplants, Proceedings of the 2004 Congress on Evolutionary Computation, vol.2(2004);Daniel Ashlock&Adam Sherk, Non-Local Adaptation of Artificial Predators and Prey, Proceedings of the 2005 Congress on Evolutionary Computation(2005)。

其中一个例子由丹的两个学生伊丽莎白·布兰肯希普和乔纳森·甘拉德完成,他们写了一个程序,在其中有两个虚拟的机器人在虚拟的12×12的格板上涂绘颜料。每个涂绘机器人采用不同颜色的涂料,通过涂绘颜料占据格子。机器人轮流动作,每次涂绘一个方格。机器人能够探测其周围8个格子的颜色。涂绘机器人只允许三种动作,右转、左转或前进。板子总共144格,每次游戏机器人各动作288次,足以将整个板子涂两遍。288次动作结束后占据格子多的机器人获胜。游戏中依次涂所有格子的机器人可能会输,因为对手只需跟在它后面涂就可以了。涂绘机器人的动作由被称为控制器的软件模块决定。控制器将周围方块的颜色作为输入(没有被绘制、对手的颜色或自己的颜色)并决定下一步动作。实验中机器人群体(实际就是控制器)进化许多代,每一代在机器人之间进行一定数量的竞赛。

在给出的实验中,有200个控制器(涂绘机器人),每一代每个机器人与4个随机选择的对手竞赛5次。得分最高的100个控制器被选出进行复制,后代产生突变并配对重组。重组是随机选取相同的位置将2个控制器(编码字串)截断,然后左右互配生成新的控制器。然后将重组和突变的控制器与100个父代一起放入游戏池进行下一轮(代)竞争。每一轮都用100个成绩最好的控制器的后代替换100个得分最低的控制器,最好的100个则直接进入下一轮。

通过反复竞争,结果发现如果最初的控制器是随机给定,则平均得分(机器人涂绘的方块数)在最初20到30代会迅速增长,随后逐渐稳定下来。在大约50代后,涂绘的方块一般是60个左右(总共144个),此后就不再一直增长,再过数千代也是这样。在最初阶段,完全无法胜任的机器人被去除,存活下来的策略则各不相同。288次动作足以让一个简单重复涂绘策略的机器人将全部144个格子涂绘2遍;因此60分的平均分表明成功的机器人将大部分时间花在覆盖对手涂好的方块!用生物学打比方就是某个生物将大部分时间用于阻挠竞争对手而不是寻找食物。

这个实验最有趣的是将第500代的机器人与第5000代的机器人放到一起竞争。在99%的情形中都是进化程度更高的机器人胜出。虽然两代机器人在与同代机器人竞争时成绩都是60分左右,结果仍是如此。从统计上来说,纯属偶然观察到这种现象的机会还不到千万分之一(10-7)。

其他很不一样的系统也得到了类似的结果,这表明进化更久的群体在某方面更加复杂。在涂绘机器人的例子中,决定实体行为的指令(控制器)的长度并不增加;因此如果以指令长度作为复杂性度量,并不会增长。不同的是发现了能成功应对不同环境的策略。适应范围更广泛的策略似乎能更有效地应对以前从未遇到过的群体环境。进化更久的指令在某方面比早期的指令更具适应性。分数没有增加是因为竞争更难了。可以说群体中的所有成员都变得更聪明了。类似的现象在生物群体中应当也同样存在。