我正在阅读一些关于遗传算法的论文,他们经常以非常相似的方式提到进化算法。根据维基百科的定义,遗传算法是进化算法的一个子集。然而,如果我们仔细观察,我们会发现两者都是基于自然选择的元启发式优化算法(交叉、选择、变异),并且都没有固定的表达方式(它取决于要解决的问题,即使我们传统上使用二进制表示作为遗传算法)。它们非常相似。那么,我的问题是:我们是否可以认为每个进化算法都是遗传算法?它们之间有什么真正的区别?谢谢
为了补充deong出色的回答,这里引用了A.E.Eiben和J.E.Smith所写的优秀书籍《进化计算导论》中的一句话。
令人惊讶的是,将达尔文主义原则应用于自动化问题解决的想法可以追溯到40年代,早在计算机突破之前 [146]。早在1948年,图灵就提出了“遗传或进化搜索”的概念,而布雷内尔马米在1962年实际上已经对“通过进化和重组进行优化”的计算机实验进行了执行。在20世纪60年代,基本思想的三种不同实现在不同地方得以发展。在美国,福格尔、欧文斯和沃尔什引入了“进化编程” [155, 156],而荷兰称其方法为“遗传算法” [98, 202, 204]。与此同时,在德国,雷肯伯格和施韦费尔发明了“进化策略” [317, 342]。这些领域大约发展了15年,但自20世纪90年代初以来,它们被视为同一技术的不同代表(“方言”),即“进化计算” [22, 27, 28, 120, 271]。20世纪90年代初,第四个跟随一般思路的流派出现了,“遗传编程”,由科扎 [38, 229, 230] 领导。当代术语将整个领域称为进化计算,所涉及的算法被称为进化算法,并将进化编程、进化策略、遗传算法和遗传编程视为属于相应算法变体的子领域。