zoukankan      html  css  js  c++  java
  • 差分算法

    差分算法的概述

      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]范围内均匀分布的随机变量。

    变异(Mutation)

      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的方程为:

       差分变异图示:

     

    交叉(Crossover)

      交叉操作采用将变异得到的中间个体和目标个体进行杂交。交叉操作生成试验向量,DE算法由两种交叉方式:二项式交叉和指数交叉。

      二项式交叉(Binomial Crossover)

      通过随机选择,使试验向量至少有一个分量由变异向量贡献,二项式交叉操作的方程为:

      其中,CR是用户指定[0,1]之间的常量,控制从变异向量中复制分量。jrand在[1,D]上随机选取的整数。

      二项式交叉操作示意图:


      指数交叉

      对于指数交叉,首先选择一个1−之间的整数作为交叉的起点,在起点处,试验向量取自变异向量,然后按照随机数与变异率的比较情况选择一个小于D的长度L作为替换的变量数目。

    选择(Selection)

      DE算法采用贪婪的选择策略,根据目标向量和试验向量的适应度值来选择最优个体。对于最小值来说,选择方程如下:

    其中,Xi,G+1为下一代目标向量。

  • 相关阅读:
    Linux性能监测:CPU篇
    Linux性能监测:监测目的与工具介绍
    敏捷开发学习笔记
    Sonar+Hudson+Maven构建系列之三:安装Hudson
    Sonar+Hudson+Maven构建系列之二:迁移Sonar
    Sonar+Hudson+Maven构建系列之一:安装Sonar
    nohup之no hang up, kill, ps -ef, ps aux, grep
    Sonar相关资料
    自动、手动同步FishEye, JIRA的联系人信息
    SOAPFaultException
  • 原文地址:https://www.cnblogs.com/mysterygust/p/12984435.html
Copyright © 2011-2022 走看看