美文网首页
差分进化算法

差分进化算法

作者: 憨憨的小熊 | 来源:发表于2020-11-10 13:09 被阅读0次

简述

个人感觉差分进化算法,是对遗传算法的一种优化,他详细定制了变异,交叉的算法,他的改进方向,是取决于种群内其他的个体,而并非基于概率的随机生成。书中原话:差分进化算法是一种自组织最小化方法,用户只需很少的输入。它的关键思想与传统进化方法不同:传统方法是用预先确定的概率分布函数决定向量扰动;而差分进化算法的自组织程序利用种群中两个随机选择的不同向量来干扰一个现有向量,种群中的每一个向量都要进行干扰。差分进化算法利用一个向量种群,其中种群向量的随机扰动可独立进行,因此是并行的。如果新向量对应函数值的代价比它们的前辈代价小,它们将取代前辈向量。

基础理论

这里的基础理论同之前的遗传算法,这里不再描述,直接介绍不同于遗传算法的部分

基本差分算法

变异操作

对于每个目标向量基本差法进化算法的变异由下式产生:

变异
其中ri(i = 1, 2, 3)是三个互不相同的数,F为变异算子,范围[0,2],负责控制偏差向量的放大作用

交叉操作

为了增加干扰参数向量的多样性,引入交叉操作,则试验向量变为:


交叉操作

其中RC表示交叉算子,rnbr是为了保证u中至少有一个v中的个体。

选择操作

依据贪婪准则,在x和u中选择组合成下一代的种群

next_gen = []
for i in length(x):
    if fit_x[i] > fit_z[i]: ##这里的大于号只是表示更优,而并非数学意义上的大于
        next_gen[i] = x[i]
    else:
        next_gen[i] = u[i]

差分的其他形式

QQ截图20201110125434.png

自适应差分算法

主要针对变异算子F的一个计算过程,在每一次迭代的过程中使F都能针对当前的情况来调整数值,书中给了一个算法是

自适应算法
其中Gm为最大迭代次数,G为当前迭代次数,这样当G=1时,F = 2F0,这样对于变异有较大的帮助,而当G趋近于Gm时,F会趋近于F0,这对结果的收敛有帮助

差分算法的流程

  1. 确定差分进化算法的控制参数和所要采取的具体策略。
  2. 随机产生初始种群,进化代数g=1
  3. 对种群进行评价,即计算初始种群中每个个体的目标函数数值
  4. 判断是否达到终止条件或者最大进化代数:若是,进化中止;否则,进行下一步操作
  5. 进行变异和交叉,对边界条件处理,得到临时种群
  6. 对临时种群评价,计算临时种群的目标函数值。
  7. 跟据贪心法则选择出新一代的种群
  8. g = g+1,转到4

相关文章

  • 优化算法笔记(七)差分进化算法

    1. 差分进化算法简介 (以下描述,均不是学术用语,仅供大家快乐的阅读)差分进化算法(Differential E...

  • 差分进化算法

    简述 个人感觉差分进化算法,是对遗传算法的一种优化,他详细定制了变异,交叉的算法,他的改进方向,是取决于种群内其他...

  • 差分算法

    diff差分数组,diff[i]就是nums[i]和nums[i-1]之差: 通过这个diff差分数组是可以反推出...

  • 差分进化算法(DE)求函数最小值

    差分进化算法求函数 Z = 3 * cos(X .* Y) + X + Y , -4 <= X <= 4, -4 ...

  • 差分进化算法(DE)步骤简介

    差分进化算法是一种基于实数编码的演化算法,可分为初始化种群,变异,交叉,选择等步骤。

  • 迈尔斯差分算法

    说点什么 最近在关注Git diff的原理,其实就是将一个文件转换成另一个相似文件的过程。再简化一定就是如何将一个...

  • 差分进化算法Python实现

    本文you清华大学硕士大神金天撰写,欢迎大家转载,不过请保留这段版权信息,对本文内容有疑问欢迎联系作者微信:jin...

  • 遗传算法详解

    遗传算法(Genetic Algorithm)又叫基因进化算法,或进化算法。属于启发式搜索算法一种,这个算法比较...

  • Spark zip算子优雅的实现差分算法

    Spark zip算子优雅的实现差分算法 什么是差分呢?用公式表示就如下图所示: 差分计算有什么用呢?它在时间序列...

  • bsdiff 差分算法使用

    1. 背景 玩过王者荣耀的同学肯定碰到过这样的场景:一段时间没打开 APP,打开的时候会提醒你下载安装升级资源包,...

网友评论

      本文标题:差分进化算法

      本文链接:https://www.haomeiwen.com/subject/ooidbktx.html