书名:复杂的引擎(第一推动丛书·综合系列)
作者:约翰·E.梅菲尔德
译者:唐璐
出版社:湖南科学技术出版社
出版时间:2018-01-01
ISBN:9787535794611
第6章 算法进化
三、进化算法的特点
1、特点
- 算法是遵循特定顺序的逻辑步骤。
进化算法有一个特点:它们包含图6.2所示的循环过程。
图6.2 进化算法的基本结构
2、算法步骤
- 算法的第1步是生成初始信息体结构,通常是随机生成;可以将其视为试探性答案,不需要很好。
第2步是评估。根据某个标准对所有信息结构进行评估。评估是必须的,而且非随机。
第2到第5步反复进行,从随机变化中捕捉有用的信息并累积。
第5步是新信息的来源。由于只有最差的结构被替换,就算所有突变拷贝都比父代差,系统整体也不会“滑坡”。
总的效应是累积能提高成绩的随机引入的信息。
如果在某一轮循环中没有出现改善,也没有关系;总会有一些循环改善。
(根据选择标准)反复基于每一代最好的进行改进来实现长远的改变。
一旦达到预先设定的目标或时间,程序就输出最好的结果然后停止。
3、评估
只要所评估的对象发生变异,这个通用方案就能为许多问题产生出“性能”越来越强(评估成绩越来越好)的结构。
事实上任何编码信息的体系都能作为进化算法的基础。
计算机科学家给出了许多这样的例子。同样,对性能的评估以及选择复制的信息体的规则也很多。
一致性是关键,并且第5步生成的变异体不能与父代差别太大。
如果新的变异体与前代差别太大,就很难带来改善。
另一方面,如果变化太小,也什么都不会发生—每一代基本都与前代一样。有适量的变异,每一代就有合理的可能产生出一些性能强于前代的信息体。
一旦出现,有更好评估成绩的信息就能传递给后代。
通过反复执行这个策略,整个信息体群体针对目标问题就会变得越来越好。
4、突变
- 图6.2给出的方案通过突变复制并留下最好的信息体确保每一代都不会差于前代。这个特性并不是必须的。在许多应用中,如果突变率不是太高,群体中所有成员都可以突变,算法仍然能正常工作。要产生出程序员自己也没有想到的变异,变异至少在一些方面必须是随机的。