差分算法

Posted mysterygust

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了差分算法相关的知识,希望对你有一定的参考价值。

差分算法的概述

  Differential Evolution grew out of Ken Price‘s attempts to solve the Chebychev Polynomial fitting Problem that had been posed to him by Rainer Storn. A breakthrough happened, when Ken came up with the idea of using vector differences for perturbing the vector population. Since this seminal idea a lively discussion between Ken and Rainer and endless ruminations and computer simulations on both parts yielded many substantial improvements which make DE the versatile and robust tool it is today. The "DE community" has been growing since the early DE years of 1994 - 1996 and ever more researchers are working on and with DE. Those scientists who contributed actively to this homepage are listed at the bottom in alphabetical order. It is the strong wish of Ken and Rainer that DE will be developed further by scientists around the world and that DE may improve to help more users in their daily work. This wish is the reason why DE has not been patented in any way.

——摘自https://www1.icsi.berkeley.edu/~storn/code.html

  差分进化算法源于Ken Price试图解决Rainer Storn提出的切比雪夫多项式拟合问题。Ken Price提出利用向量差分来扰动向量种群的想法时,一个突破产生了。由于这一开创性的想法,Ken Price和Rainer Storn进行了激烈的讨论和不断地深思、仿真,产生了许多实质性地改进,使得DE算法成为当今通用的强大的工具。

生词短语

grow out of      产生于;源于

perturb         扰动

seminal       意义重大的

rumination       深思

substantial      实质的

yield        产生;提供

标准差分进化算法的理论

  DE算法首先在解的取值范围内生成一个随机的初始种群,然后通过差分变异、交叉、选择操作,产生新一代种群。DE算法基于实数编码,它首先在问题的可行解空间生成随机初始化种群。

初始种群

  DE算法目标是进化NP个,D维参数向量,所谓的个体就是编码全局优化的候选解

技术图片

初始化种群应该尽可能更好的覆盖整个搜索空间,在规定最小和最大参数边界后在搜索空间中,按均匀分布抽取个体。

技术图片技术图片

例如:

  在第0代中,第i个个体中的第j个参数通过下面的式子产生:

技术图片

  rand(0,1)表示[0,1]范围内均匀分布的随机变量。

变异

  DE is used for multidimensional real-valued functions but does not use the gradient of the problem being optimized, which means DE does not require the optimization problem to be differentiable, as is required by classic optimization methods such as gradient descent and quasi-newton methods. DE can therefore also be used on optimization problems that are not even continuous, are noisy, change over time, etc.

——维基百科

  在优化问题中,DE算法被用在多维实值函数,而不是用在梯度上。这意味着,DE算法不需要优化问题可微(像经典优化算法。例如,梯度下降法、准牛顿法)。

  在这里我首先要声明以下,DE算法要求是多维实值函数,换句话说,候选解必须是向量(个体就是向量,向量的每个分量就是基因)。

  在DE算法中,种群内个体的差分向量经过放缩之后,与种群内另外的相异个体相加得到变异向量。根据变异向量生成方法的不同,形成了多种变异策略。其中变异方式DE/rand/1的方程为:

 

 

以上是关于差分算法的主要内容,如果未能解决你的问题,请参考以下文章

优化算法差分松鼠搜索优化算法(DSSA)含Matlab源码 1330期

差分进化算法

差分进化算法优化集成参数

差分进化算法(DE)简介及Python实现

差分进化算法(DE)简介及Python实现

差分进化算法(DE)简介及Python实现