25

从我目前所读到的内容来看,它们看起来非常相似。微分进化改用浮点数,解叫向量?我不太确定那是什么意思。如果有人可以概述一下两者的优缺点。

4

2 回答 2

26

嗯,遗传算法和差分进化都是进化计算的例子。

遗传算法与遗传繁殖的隐喻非常接近。甚至语言也大体相同——都谈染色体,都谈基因,基因是不同的字母,都谈交叉,交叉相当接近于对遗传繁殖的低层次理解,等等。

微分进化的风格相同,但对应关系并不准确。第一个重大变化是 DE 使用的是实际实数(在严格的数学意义上——它们被实现为浮点数、双精度数或其他任何东西,但理论上它们的范围是实数域。)结果, 变异和交叉的思想本质上是不同的。到目前为止,变异算子已经过修改,以至于我什至很难理解为什么它被称为变异,除了它的目的是为了打破局部最小值。

从好的方面来说,有少数结果表明 DE 通常比遗传算法更有效和/或更高效。在进行数值优化时,能够将事物表示为实际的实数是很好的,而不必首先使用染色体类型的表示。(注意:我已经阅读过它们,但我并没有对它们进行过广泛的研究,所以我无法从第一手的知识中真正发表评论。)

不利的一面是,我认为目前还没有任何 DE 收敛的证据。

于 2012-03-02T01:44:18.453 回答
11

差分进化实际上是更广泛的遗传算法空间的一个特定子集,具有以下限制:

  • 基因型是某种形式的实值向量
  • 变异/交叉操作利用种群中两个或多个向量之间的差异来创建新向量(通常通过将差异的一些随机比例添加到现有向量之一,加上少量随机噪声)

DE 在某些情况下表现良好,因为可以认为向量形成“云”,非常有效地探索解决方案空间的高价值区域。从某种意义上说,它与粒子群优化密切相关。

然而,它仍然存在卡在局部最小值中的常见 GA 问题。

于 2012-03-02T05:10:17.000 回答