什么是差异进化以及它与遗传算法相比如何?

Und*_*ned 16 artificial-intelligence genetic-algorithm differential-evolution

从我到目前为止看到的它们看起来非常相似.差分进化使用浮点数代替,解决方案称为向量?我不太清楚这意味着什么.如果有人可以提供一些关于两者的优点和缺点的概述.

Nov*_*vak 17

那么,遗传算法和差分进化都是进化计算的例子.

遗传算法与遗传繁殖的隐喻密切相关.甚至语言也大致相同 - 都谈论染色体,谈论基因,基因是不同的字母表,都谈论交叉,交叉相当接近对遗传繁殖的低级理解等.

差异进化的风格相同,但对应关系并不那么精确.第一个重大变化是DE正在使用实际的实数(在严格的数学意义上 - 它们被实现为浮点数,或双数,或者其他什么,但理论上它们在实数范围内.)因此,突变和交叉的想法是截然不同的.到目前为止,变异算子被修改,以至于我甚至很难理解为什么它被称为变异,因为它起到了破坏局部最小值的目的的作用.

从好的方面来看,有一些结果显示DEs通常比遗传算法更有效和/或更有效.在进行数值优化时,能够将事物表示为实际的实数而不是必须首先使用染色体类型的表示,这是很好的.(注意:我已经读过它们了,但我并没有对它们进行过广泛的讨论,所以我无法从第一手资料中做出真正的评论.)

从消极方面来看,我认为还没有任何证据证明DE有收敛性.

  • 仅仅补充一点,遗传算法没有任何内容可以排除实值编码.有像SBX(模拟二元交叉)这样的交叉算子,以及以不同方式"混合"父母的各种想法.实值染色体的突变有几个明显的实现,高斯碰撞参数等. (2认同)
  • 没错,但是从原始概念中得到的距离越远,隐喻变得越紧张.我不是在诽谤,我认为它们都非常迷人且有用,并且可以合理地称为遗传算法.这只是一种判断/美学呼唤. (2认同)

mik*_*era 9

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

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

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

然而,它仍然存在通常的GA问题,即陷入局部最小值.