从我目前所读到的内容来看,它们似乎非常相似。差分进化使用浮点数,而解被称为向量?我不太确定这意味着什么。如果有人能提供一个概述,并稍微谈一下两者的优缺点就好了。
回答:
嗯,遗传算法和差分进化都是进化计算的例子。
遗传算法非常接近遗传繁殖的比喻。甚至语言也大多相同——两者都谈到染色体,都谈到基因,基因是不同的字母表,两者都谈到交叉,交叉与遗传繁殖的低层次理解相当接近,等等。
差分进化属于同一风格,但对应关系并不那么精确。第一个重大变化是DE使用实际的实数(在严格的数学意义上——它们被实现为浮点数、双精度数或其他,但在理论上它们是在实数域上变化的)。因此,突变和交叉的概念有很大不同。突变操作符被修改得如此之远,以至于我甚至很难理解为什么它被称为突变,除了它服务于将事物从局部最小值中解脱出来的相同目的之外。
从积极的方面来看,有一些结果显示DE通常比遗传算法更有效和/或更高效。在进行数值优化时,能够将事物表示为实际的实数,而不是首先不得不绕道到染色体类型的表示,是一件好事。(注意:我读过关于它们的资料,但我没有广泛地使用它们,所以我无法从第一手经验中评论。)
从消极的方面来看,我认为还没有关于DE收敛性的证明。