什么是差异进化,它与遗传算法相比有何不同? [英] What's differential evolution and how does it compare to a genetic algorithm?

查看:296
本文介绍了什么是差异进化,它与遗传算法相比有何不同?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

解决方案

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

遗传算法非常接近遗传繁殖的隐喻.即使是语言也几乎是相同的-都谈论染色体,都谈论基因,基因是不同的字母,都谈论交叉,并且交叉非常接近对基因复制的低级理解,等等.

差异演化具有相同的样式,但是对应关系不那么精确.第一个重大变化是DE使用的是实数(严格的数学意义上,它们以浮点数,双精度数或其他形式实现,但从理论上讲,它们是在实数范围内的.) ,变异和交叉的观念大不相同.到目前为止,对变异算子进行了修改,以至于我什至都很难理解为什么将其称为变异,除了它具有将事物突破局部极小值的相同目的.

从好的方面来说,有少数结果表明DE往往比遗传算法更有效和/或更有效.而且,在进行数值优化时,能够将事物表示为实际的实数,而不是首先必须进行染色体表示,这是一个很好的选择. (注意:我已经阅读了有关它们的内容,但是我并没有对它们进行过多地弄乱,因此我无法从第一手的知识中真正地发表评论.)

从消极的一面来看,我认为尚无DE融合的证据.

From what I've read so far they seem very similar. Differential evolution uses floating point numbers instead, and the solutions are called vectors? I'm not quite sure what that means. If someone could provide an overview with a little bit about the advantages and disadvantages of both.

解决方案

Well, both genetic algorithms and differential evolution are examples of evolutionary computation.

Genetic algorithms keep pretty closely to the metaphor of genetic reproduction. Even the language is mostly the same-- both talk of chromosomes, both talk of genes, the genes are distinct alphabets, both talk of crossover, and the crossover is fairly close to a low-level understanding of genetic reproduction, etc.

Differential evolution is in the same style, but the correspondences are not as exact. The first big change is that DE is using actual real numbers (in the strict mathematical sense-- they're implemented as floats, or doubles, or whatever, but in theory they're ranging over the field of reals.) As a result, the ideas of mutation and crossover are substantially different. The mutation operator is modified so far that it's hard for me to even see why it's called mutation, as such, except that it serves the same purpose of breaking things out of local minima.

On the plus side, there are a handful of results showing DEs are often more effective and/or more efficient than genetic algorithms. And when working in numerical optimization, it's nice to be able to represent things as actual real numbers instead of having to work your way around to a chromosomal kind of representation, first. (Note: I've read about them, but I've not messed extensively with them so I can't really comment from first hand knowledge.)

On the negative side, I don't think there's been any proof of convergence for DEs, yet.

这篇关于什么是差异进化,它与遗传算法相比有何不同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆