差分进化算法(Differential Evolution Algorithm,DE)介绍

目录

    • 前言
    • 差分进化算法
      • 初始化种群
      • 变异操作
      • 交叉操作
      • 选择操作
      • 算法流程
      • C语言伪代码
    • 参考文献

前言

      差分进化算法(Differential Evolution Algorithm,DE)由Storn和Price于1995年提出,最早用来解决切比雪夫多项式问题。
      DE 采用实数编码方式, 其算法原理与遗传算法十分相似, 进化流程与遗传算法相同: 变异、交叉和选择。DE 算法中的选择策略通常为锦标赛选择,而交叉操作方式与遗传算法也大体相同,但在变异操作方面使用差分策略, 即利用种群中个体间的差分向量对个体进行扰动,实现个体变异。DE 的变异方式,有效利用群体分布特性, 提高算法的搜索能力,避免遗传算法中变异方式的不足。

差分进化算法

初始化种群

差分进化算法(Differential Evolution Algorithm,DE)介绍_第1张图片

变异操作

差分进化算法(Differential Evolution Algorithm,DE)介绍_第2张图片
差分进化算法(Differential Evolution Algorithm,DE)介绍_第3张图片差分进化算法(Differential Evolution Algorithm,DE)介绍_第4张图片

      下图为变异操作中式子(2.11)在空间的示意图。
差分进化算法(Differential Evolution Algorithm,DE)介绍_第5张图片

交叉操作

差分进化算法(Differential Evolution Algorithm,DE)介绍_第6张图片

选择操作

差分进化算法(Differential Evolution Algorithm,DE)介绍_第7张图片

算法流程

  1. 初始化种群,算法参数;
  2. 变异操作;
  3. 交叉操作;
  4. 选择操作;
  5. 判断是否满足终止条件(最大迭代代数or最大函数评价次数等),若满足则输出结果,否则继续返回步骤 2 进行循环。
  6. 差分进化算法(Differential Evolution Algorithm,DE)介绍_第8张图片

C语言伪代码

差分进化算法(Differential Evolution Algorithm,DE)介绍_第9张图片

参考文献

[1] 杨启文, 蔡亮, 薛云灿. 差分进化算法综述[J]. 模式识别与人工智能, 2008, 21(4): 506-513.
[2] Price K V. Differential evolution[M]. Handbook of Optimization. Springer, Berlin, Heidelberg, 2013: 187-214.
[3] 待续,因为有部分截图内容无法找到原著作,大家如果发现了请告知,谢谢。

你可能感兴趣的:(进化计算)