我正在阅读一些关于遗传算法的论文,他们经常以非常相似的方式提到进化算法。根据维基百科,GA 是 EA 的子集。然而,如果我们仔细观察,我们会注意到它们都是基于自然选择(交叉、选择、变异)的元启发式优化算法,并且都没有固定的表示(这取决于要解决的问题,即使我们传统上使用二进制GA 的表示)。它们非常相似。所以,我的问题是我们可以将每个进化算法视为遗传算法吗?它们之间的真正区别是什么?谢谢
2 回答
这有点取决于你问谁。在这些东西存在的最初几十年里,每个人都认为存在不同的类别(通常被列为“遗传算法”、“遗传编程”、“进化策略”和“进化编程”。可以肯定的是,重要的子领域之间的差异,所以这种区别确实有一定的意义。
在某个时候(大约在 90 年代后期左右),人们开始将它们视为更通用的算法类别的实例,从而推动了统一。主要的 GA 会议 (ICGA) 演变为 GECCO,统一的术语变成了“进化计算”,包括上述所有内容,偶尔也包括其他一些内容(如果你是定义有点自由)。
所以目前,我们通常会说“进化计算”(或“进化算法”)作为包罗万象的总称。遗传编程直接保持自己的身份作为进化的代码字符串,进化策略也保持一个单独的身份来处理真实值,并且通常包括某种自我修改(例如,协方差矩阵适应在运行时学习搜索方向)。进化编程仍然存在,但只是作为一个小得多的利基市场。“遗传算法”这个术语已经相当广泛了。最初,人们认为它们是对二进制字符串进行操作,并进行世代选择等操作。随着时间的推移,严格性逐渐消失。此时,您几乎可以使用“遗传算法”作为“进化计算”的同义词。您不应该这样做,因为您会丢失术语中可以理解的微妙之处,但总的来说,如果您不直接进行代码生成,并且您没有以非常特别定义的方式演变实数与人们认为的进化策略相对应,那么您可以合理地称其为“遗传算法”。
为了完成 deong 的精彩回答,这里引用了 AE Eiben 和 JE Smith 所写的优秀书籍Introduction to Evolutionary Computing 。
令人惊讶的是,这种将达尔文原理应用于自动化问题解决的想法可以追溯到四十年代,远早于计算机的突破[146]。早在 1948 年,图灵就提出了“遗传或进化搜索”,到 1962 年,布雷纳马米实际上已经进行了“通过进化和重组进行优化”的计算机实验。在 1960 年代,基本思想的三种不同实现在不同的地方开发了。美国,福格尔,欧文斯和沃尔什介绍了进化规划[155, 156],而霍兰德将他的方法称为遗传算法[98,202,204]。同时,在德国,雷肯伯格和施韦费尔发明了进化策略[317, 342]。大约 15 年来,这些领域分别发展;但自 1990 年代初以来,它们一直被视为一种技术的不同代表(“方言”),这种技术后来被称为进化计算[22、27、28、120、271]。在 1990 年代初期,出现了遵循一般思想的第四流,即基因编程,由 Koza [38, 229, 230] 倡导。当代术语用进化计算来表示整个领域,所涉及的算法称为进化算法,它把进化规划、进化策略、遗传算法和遗传规划视为属于相应算法变体的子领域。
致力于 EC 的科学论坛的发展表明了该领域的过去和现在。第一次专门研究该主题的国际会议是国际遗传算法会议(ICGA),于 1985 年首次举行 [180],每两年举行一次,直到 1997 年 [182, 333, 43, 158, 137, 241 在 1999 年与遗传编程年度会议[235, 234, 232] 成为年度遗传和进化计算会议(GECCO) [37。416. 381. 2421. 同时进化规划年会。自 1992 年以来举行。 [150。151. 344. 268. 154. 12. 3071 与自 1994 年以来举行的 IEEE 进化计算会议合并,[210. 211. 212. 213. 2141 组成进化计算大会(CEC)自 [71.] 以来每年举行一次。72. 73. 741.
第一个欧洲活动(明确设置为包含所有流)是 1990 年的并行问题解决自然(PPSN)[3431. 这已成为一年两次的会议[259. 90. 410. 116. 337. 1871. 这是在一次小组讨论中(引诱第一个 PPSN 将进化计算这个名称作为所有现有“方言”的总称。 进化计算(麻省理工学院出版社)。第一个科学1993 年创办了专门研究这一领域的期刊。1997 年,欧盟委员会决定在 EC 资助一个名为 EvoNet的欧洲研究网络,其资金保证到 2003 年。在撰写本文时(2003 年),有三个主要的 EC 会议(CEO、GECCO。和 PPSN)和许多较小的会议,包括一个专门用于理论分析和开发的会议,遗传算法的基础 (FOGA) 自 1990 年以来每两年举行一次 [316, 420. 425. 44. 39. 261. 3081。到目前为止,EC 共有三个核心科学期刊(进化计算、IEEE Transactions on Evolutionary Computation、 遗传编程和可进化机器)) 和许多具有密切相关的配置文件。例如,关于自然计算。软计算或计算智能。我们估计 2003 年 EC 出版物的数量超过 1500 份,其中许多是在特定应用领域的期刊和论文集中。