- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在阅读一些有关遗传算法的论文,并且他们经常以非常相似的方式提及进化算法。根据维基百科,GA是EA的子集。但是,如果我们仔细观察,我们会发现它们都是基于自然选择(交叉,选择,变异)的元启发式优化算法,并且都没有固定的表示形式(这取决于要解决的问题,即使我们传统上使用二进制GA的表示形式)。它们非常相似。因此,我的问题是我们是否可以将每种进化算法都视为遗传算法?它们之间的真正区别是什么?谢谢
最佳答案
这取决于您问谁。在最初存在的几十年中,每个人都认为存在不同的类别(通常列为“遗传算法”,“遗传编程”,“进化策略”和“进化编程”)。子字段之间的差异,因此区分确实具有一定意义。
在某个时候(大约在90年代末期左右),人们对统一提出了更大的要求,因为人们开始将它们视为更通用的算法类别的实例。主要的GA session (ICGA)演变为GECCO,统一的术语变成了“进化计算”,涵盖了以上所有内容,偶尔还有其他一些内容(您也可以将诸如粒子群优化之类的东西视为进化算法)定义有点宽松)。
因此,目前,我们通常将“进化计算”(或“进化算法”)称为笼统术语。遗传程序设计直接作为进化代码串保持其自身的身份,而进化策略在处理实值时也保持独立的身份,并且通常包括某种自我修改(例如,运行时的协方差矩阵自适应学习搜索方向)。进化编程仍然存在,但只是小得多。术语“遗传算法”已经扩展了很多。最初,人们认为它们是在按代选择等操作的二进制字符串上进行操作。随着时间的流逝,严格性逐渐消失。此时,您几乎可以将“遗传算法”用作“进化计算”的同义词。您不应该这样做,因为您会迷失术语的一种精妙之处,但总的来说,如果您不直接进行代码生成,并且您不是在以一种非常特别定义的方式演化实数,与人们认为的进化策略相对应,那么您可以安全地将其称为“遗传算法”。
关于genetic-algorithm - 遗传算法和进化算法之间的真正区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9176195/
我喜欢基于图像的语言的想法,最近我一直在通过 sbcl 使用 Common Lisp。我在一些地方读到了关于如何通过能够保存和加载虚拟机的镜像,您可以改进在该镜像上运行的应用程序或应用程序集。 我知道
我是一名优秀的程序员,十分优秀!