为什么差异进化如此有效?

Why differential evolution works so well?

differential evolution 中的突变背后的想法是什么?为什么这种突变会表现良好? 我看不出它背后有任何好的几何原因。

谁能给我指出一些技术解释?

与所有进化算法一样,DE 使用启发式算法,因此我的解释会有些生硬。与所有进化算法一样,DE 试图做的是进行随机搜索,而不是 随机。 DE 的变异算子首先计算群体中两个随机成员之间的向量,然后将该向量添加到群体中的第三个随机成员。这很有效,因为它使用当前人口作为确定要采取多大的步骤以及朝哪个方向迈出的一种方式。如果人口分布广泛,那么大步走也是合理的;如果它是紧密集中的,那么小步走是合理的。

DE 比 Goldberg 的 GA 效果更好的原因有很多,但关注变分运算符我会说最大的区别是 DE 使用实数编码变量,而 GA 使用二进制编码。在连续 space 上优化时,二进制编码不是一个好的选择。这一点自 1990 年代初就为人所知,而主要是德国进化策略社区和主要是美国遗传算法社区之间相遇的第一件事就是 Deb 的模拟二进制交叉。该运算符的作用类似于 GA 的交叉运算符,但作用于实数编码变量。