本节书摘来异步社区《Java遗传算法编程》一书中的第1章,第1.3节,作者: 【英】Lee Jacobson(雅各布森) , 【美】Burak Kanber(坎贝尔),更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 进化计算的历史
20世纪50年代,进化计算首次作为一种优化工具被尝试,当时的计算机科学家将达尔文的生物进化论思想应用于候选解构成的种群。他们建立理论,认为有可能应用进化算子,如交叉(它是生物繁殖的模拟)和变异(这是新的遗传信息添加到基因组中的过程)。这些算子和选择压力共同作用,让遗传算法在一段时间后,能够“进化”出新的解。
在20世纪60年代,“进化策略”(应用自然选择和进化思想的一种优化技术)最初由Rechenberg(1965,1973)提出,他的想法后来被Schwefel(1975,1977)发展。其他计算机科学家当时在类似的研究领域独立地工作,如Fogel L.J,Owens, A.J以及Walsh, M.J(1966年),他第一个引入了进化编程的领域。他们的技术包括用有限状态机表示候选解,以及应用变异来创建新解。
在20世纪50年代和60年代,一些研究进化的生物学家开始用计算模拟进化。然而,是Holland, J.H.(1975)在20世纪60年代和70年代首先提出并发展了遗传算法的概念。1975年,在开创性著作《Adaption in Natural and Artificial Systems(自然与人工系统中的适应)》中,Holland终于提出了他的想法。Holland的书展示了达尔文的进化论可以如何被抽象并用计算机建模,用于优化策略。他的书解释了染色体如何建模为1和0的序列,通过实现自然选择中的技术,如变异、选择和交叉,拥有这些染色体的种群可以如何进化。
在20世纪70年代首次被引入后的几十年里,Holland原创的遗传算法定义已经逐渐改变。这在某种程度上是因为,近期进化计算领域的研究人员偶尔将来自不同方法的思想融合在一起。虽然这模糊了许多方法学之间的界限,但它为我们提供了丰富的工具,帮助我们更好地解决具体问题。在本书中,术语“遗传算法”既指Holland的遗传算法的经典定义,也指更宽泛的、今天的解释。
计算机科学家至今仍在研究生物学和生物系统,以便得到启发,创造更好的算法。最近的一个仿生优化算法是蚁群优化算法,它由Marco, D. (1992)于1992年首先提出。蚁群优化算法对蚂蚁的行为建模,以此作为解决各种优化问题的方法,如旅行商问题。