进化计算综述 1. 什么是进化计算 在计算机科学领域,进化计算(Evolutionary Computation)是人工智能(Artificial Intelligence),进一步说是智能计算(Computational Intelligence)中涉及到组合优化问题的一个子域。其算法是受生物进化过程中“优胜劣汰”的自然选择机制和遗传信息的传递规律的影响,通过程序迭代模拟这一过程,把要解决的问题看作环境,在一些可能的解组成的种群中,通过自然演化寻求最优解。 2. 进化计算的起源 运用达尔文理论解决问题的思想起源于20 世纪 50 年代。 20 世纪 60 年代,这一想法在三个地方分别被发展起来。美国的Lawrence J. Fogel 提出了进化编程(Evolutionary programming),而来自美国 Michigan 大学的John Henry Holland 则借鉴了达尔文的生物进化论和孟德尔的遗传定律的基本思想,并将其进行提取、简化与抽象提出了遗传算法(Genetic algorithms)。在德国,Ingo Rechenberg 和 Hans-Paul Schwefel 提出了进化策略(Evolution strategies)。 这些理论大约独自发展了 15 年。在80 年代之前,并没有引起人们太大的关注,因为它本身还不够成熟,而且受到了当时计算机容量小、运算速度慢的限制,并没有发展出实际的应用成果。 到了 20 世纪 90 年代初,遗传编程(Genetic programming)这一分支也被提出,进化计算作为一个学科开始正式出现。四个分支交流频繁,取长补短,并融合出了新的进化算法,促进了进化计算的巨大发展。 Nils Aall Barricelli 在 20 世纪六十年代开始进行用进化算法和人工生命模拟进化的工作。Alex Fraser 发表的一系列关于模拟人工选择的论文大大发展了这一工作。[1]Ingo Rechenberg 在上世纪 60 年代和 70 年代初用进化策略来解决复杂的工程问题的工作使人工进化成为广泛认可的优化方法。[2]特别是 John Holland 的作品让遗传算法变得流行起来。[3]随着学术研究兴趣的增长,计算机能力的急剧增加使包括自动演化的计算机程序等实际的应用程序成为现实。[4]比起人类设计的软件,进化算法可以更有效地解决多维的问题,优化系统的设计。[5] 3 . 进化计算的分支 进化计算的主要分支有:遗传算法 GA ,遗传编程 GP、进化策略 ES、进化编程EP。下面将对这 4 个分支依次做简要的介绍。 1 遗传算法(Genetic Algorithms): 遗传算法是一类通过模拟生物界自然选择和自然遗传机制的随机化搜索算法,由美国 John...