Tra*_*isG 19 genetic-algorithm evolutionary-algorithm
我已经阅读了几本书的介绍部分以及关于这两个主题的一些论文,并且我认为这两种方法几乎完全相同.也就是说,我还没有时间对主题进行深入研究,所以我可能错了.
遗传算法和进化策略之间有什么区别?是什么让他们与众不同,他们在哪里相似?
Ste*_*han 23
在进化策略中,个体被编码为实数的向量.在复制时,父母是随机选择的,最适合的后代被选中并插入下一代.ES个体是自我适应的.步长或"突变强度"在个体中编码,因此通过选择好的个体,良好的参数可以进入下一代.
在遗传算法中,个体被编码为整数.通过选择与其适合度成比例的父母来完成选择.因此,必须在第一次选择完成之前对个人进行评估.遗传算子在比特级上工作(例如,将比特串切成多个部分,并将它们与另一个父部分交换或切换单个比特).
这就是理论.在实践中,有时很难区分两种进化算法,并且您需要创建混合算法(例如,编码遗传算子参数的整数(位串)个体).
小智 6
在研究进化策略(ES)时偶然发现了这个线程。
正如 Paul 之前注意到的,这里的编码并不是真正的区别,因为这是特定算法的实现细节,尽管它在 ES 中似乎更常见。
为了回答这个问题,我们首先需要退后一步,看看 ES 算法的内部结构。在ES中有一个进化的内生参数和外生参数的概念。内生参数与个体相关联,因此与个体一起进化,外生参数从“外部”提供(例如,由开发人员设置常量,或者可以存在根据迭代号设置其值的函数/策略)。
因此,个体k由两部分组成:
这两个载体正在被选择、变异、重组在一起。
GA 和 ES 之间的主要区别在于,经典 GA 中算法参数的类型没有区别。事实上,所有参数都是从“外部”设置的,因此在 ES 术语中都是外生的。
还有其他一些细微的差异,例如,在 ES 中,选择策略通常是一种且相同的,而在 GA 中,有多种可以互换的不同方法。
你可以在这里找到更详细的解释(参见第 3 章):进化策略。全面介绍