有人可以解释一下差分进化方法吗?维基百科定义 http://en.wikipedia.org/wiki/Differential_evolution#Algorithm非常具有技术性。
一个简单的解释和一个简单的例子将不胜感激:)
这是一个简化的描述。 DE 是一种优化技术,它迭代地修改候选解的群体,使其收敛到函数的最优值。
您首先随机初始化候选解决方案。然后,在每次迭代中,对于每个候选解决方案 x,您执行以下操作:
- 您生成一个试验向量:v = a + ( b - c ) / 2,其中 a、b、c 是从总体中随机挑选的三个不同的候选解决方案。
- 您在 x 和 v 之间随机交换向量分量以生成 v'。必须交换 v 中的至少一个组件。
- 仅当它是更好的候选者时(即它可以更好地优化您的函数),您才用 v' 替换总体中的 x。
(请注意,上述算法非常简化;不要从中编码,而是在其他地方找到合适的规范)
不幸的是,维基百科文章缺乏插图。通过图形表示更容易理解,您会在这些幻灯片中找到一些内容:http://www-personal.une.edu.au/~jvanderw/DE_1.pdf http://www-personal.une.edu.au/~jvanderw/DE_1.pdf .
它与遗传算法 (GA) 类似,只是候选解不被视为二进制字符串(染色体),而是(通常)被视为实数向量。 DE 的一个关键方面是突变步长(参见突变的步骤 1)是动态的,也就是说,它会适应群体的配置,并且在收敛时趋于零。这使得 DE 比 GA 更不容易受到遗传漂变的影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)