进化是一个慢过程;改变需要时间,但有些类型的改变非常快。变异是几乎所有进化算法都会采用的一种快速变化。

提出反向学习是为了在进化算法中提高学习率。因为,进化是一个慢过程而革命是一个快过程,在进化算法中模拟革命可能会加快算法的收敛。


目录

反向的定义和概念

反向进化算法

跳变比

反向组合优化

对偶学习


反向的定义和概念

标量开始,首先假设x定义在域[a,b]上,并且这个域的中心是c,即

x∈[a,b] 这里a<b,c=(a+b)/2

1.反射反向和模反向

要定义标量x的方向,可以考虑几种不同的方式,例如,x的反射方向定义为

= a + b - x

这意味着和x到域的中心距离相同:

c - x =  - c

x的模反向定义为

= (x - a + c) mod(b - a)

反射反向和模反向的定义可以用一种简单直接的方式扩展到向量。假设x是定义在长方形域上的一个n维向量;即,定义在域上,并且的域的中心为

x的反射反向定义为:

向量x的模反向定义为:

这些定义只适用于长方形域。

接下来的部分我们将“x的反射反向”简称“x的反向”,并将记号 简写为

2.部分反向

已知向量x,我们可以定义x的一个部分反向,取x的某些维的反向同时让x的其他元素保持不变。例如:

其中S是{1,2,3...,n}的某个子集,是它的补集;即S∪={1,2,3,...,n},对所有j∈{1,...,|S|},并且对所有j∈{1,..,||},S,反向度定义为

3.1型反向和2型反向

我们一直用函数的域定义反向,称之为1型反向。也可以用函数的范围定义反向,称之为2型反向。我们从标量x的标量函数y(·)开始,其中x定义在域[a,b]。范围[,]定义为

这个范围的中心定义为

它意味着与y(x)到的距离相等:

除非y(·)是一一对应的,不然由这个定义可以得到多个 的值。下图说明1型反向和2型反向之间的区别。

将x反射到中心域c的对面得到x的1型反向。将y(x)反射到域中心的对面得到,然后计算的逆得到x的2型反向,上图中有两个可能的值。

接下来的部分只讨论1型反向。

4.准反向和超反向

现在我们定义反向的另外3中方式。与前面一样,考虑标量x∈[a,b],c是域的中心。x的准反向定义如下:

其中是标准反射反向,即是均匀分布在[c,]上的随机数的一个实现。rand函数的结果独立于自变量的顺序,也就是说rand(c,)和rand(,c)等价。

x的超反向定义为

是均匀分布于 和离x最远的域边界之间的随机数的一个实现。这个定义并不完备,因为在c=x的情况下没有定义,

x的准反射反向定义如下

是均匀分布于x的c之间的随机数的一个实现。

下图说明反向的4中不同方式。

将x反射到域中心c的对面得到x的反向 ;在c和之间生成一个随机数得到x的准反向;在和离x最远的边界之间生成一个随机数得到x的超反向;在x和c之间生成一个随机数得到x的准反射反向


反向进化算法

进化算法使用反向学习的一种简单的方式。

  1. 当初始化进化算法种群的N个个体时,建立N个反向个体,每个反向个体相应于N个初始个体中的一个。已知2N个候选解(N个初始个体和N个反向),保留最好的N个作为反向进化算法开始的种群。
  2. 进化算法的标准实现。它涉及费用函数评价、重组,以及变异的循环,按定义每代执行一次循环。
  3. 每隔几代就计算N个个体各自的反向,在这2N个候选解中(N个标准进化算法的个体以及N个反向个体),为下一代保留最好的N个个体。在每一代依概率∈[0,1]执行这一步,被称为跳变率。

是一个可调参数。周期性的生成反向种群是为了探索空间中的未知区域。不想再每一代都生成反向种群,因为那样一来会在搜索空间中反复跳来跳去,浪费函数评价次数。

反向的基于生物地理学优化 

将标准BBO算法与反向学习结合就得到反向BBO算法。算法的具体实现如下:


跳变比

跳变比是改进反向学习性能的一个简单扩展。因为反向学习所需的计算资源较多所以提出这个想法。注意,适应性强的个体的反向不大可能比适应性弱的个体的反向强。如果个体靠近最优解,就不值得再去生成它的反向,反之,如果一个个体远离最优解,可能值得生成它的反向。

下述算法是基于适应度的反向逻辑算法,此逻辑可替代反向BBO算法逻辑。参数α>0控制着生成反向个体的压力。的适应度成正比,因此,基于适应度的反向逻辑让适应性差的个体更有可能生成反向个体。α越小生成的反向个体越多。当α→0时,基于适应度低的反向逻辑等价与反向BBO算法的标准反向逻辑。α越大生成的反向个体越少。当α→∞时,不生成反向个体,反向BBO算法退化为标准BBO算法。

实施基于适应度的反向逻辑还有另一种方法是只为种群中适应性最差的部分中的个体生成反向个体。它更明确并可以按下面的算法来实施,这里的∈[0,1]。如果=1,此逻辑退化为标准反向逻辑。


反向组合优化

对于组合问题,我们想要找到节点排列的最好方式。旅行商问题就是一个很好的例子。假设要用进化算法求解一个4城市旅行商问题。城市标记为ABCD,一个候选解为:

A→B→C→D

  1. 定义行程的一段为两个相邻城市之间的旅行。上述候选解由三段组成A→B,B→C,C→D。
  2. 定义两个城市之间的接近度为从一个城市到另一个城市的段的个数。A和B的接近度为1,A和C的接近度为2,A和D的接近度为3.
  3. 定义一条路的总接近度为每对城市之间接近度的总和。总接近度为3,因为A→B,B→C,C→D每一对的接近度都为1.一条路路径的总接近度总是邓毅N-1,这里N为城市个数。
  4. 定义路径β的相对接近度为β中每对城市的总接近度和,这里根据某条另外的路径α得到接近度。例如:

β相对于α的接近度为6.因为β由三段组成:第一段是B→D,在α中这两个城市的接近度为3;第二段是D→A,在α中这两个城市的接近度为2;第三段是A→C,在α中这两个城市的接近度为1.

定义路径α的反向的一种方式是找出相对接近度尽可能大的路径β。α相对于α的相对接近度是N-1,它是可能的最小值。利用这个定义 A→B→C→D的反向为

C→A→D→B

这条相对路径对于A→B→C→D的接近度为7,它是可能的最大值。

要找出相对接近度最大的路径,这本身就是一个组合优化问题。如果用反向学习解决组合优化问题的话,每一代就不得不解决由多个组合问题组成的组合问题。我们定义组合个体的贪婪反向。在贪婪反向中,路径开始的城市不变,然后加入与开始的城市相对接近度最大的城市作为第二个城市。与新的第二个城市相对接近度最大的城市设置为第三个城市。重复这个过程就得到整个贪婪反向路径。下述的算法概述了这个过程:

用上述算法得到 A→B→C→D的贪婪反向为A→D→B→C的接近度为6,比C→A→D→B的接近度少1。下面的算法为实施贪婪反向的另一个更简单的方式。这些算法没有给出旅行商问题候选解的完全反向,但希望它们能以合理的较小的计算代价得到近似反向。


对偶学习

20世纪90年代首次提出对偶学习,在21世纪被重新发现。在反向BBO算法中融入对偶学习的想法就得到下面的算法的对偶逻辑,下面的算法可以替换反向BBO算法的反向逻辑那一段。

在每一代生成对偶的个数可以针对最优的进化算法性能做调整。在每一代执行这个方案,还可以把它添加到上述算法的后面:

f(·)值较大的个体表示性能较好。是来自前一代的“有效” 对偶个数,有效对偶个数是指由某个个体得到的对偶比此个体的性能好。参数∈(0,1)是一个决策阈值。如果有效的对偶的比例大于,在下一代就生成更多对偶;如果有效对偶的比例小于,在下一代生成的对偶会更少,β∈(0,1)是控制自适应速度的常数。可取的最小值和最大值。

为求解动态优化问题,对偶学习也可以扩展到PBIL。在PBIL中,对偶概率向量与向量p关于50%的概率值对称: =1-p。

进化算法——反向学习相关推荐

  1. 基于正交设计的折射反向学习樽海鞘群算法

    文章目录 一.理论基础 1.樽海鞘群算法 2.正交反向学习樽海鞘群算法OOSSA (1)正交反向学习策略 (2)惯性权重策略 (3)OOSSA算法 二.仿真实验与结果分析 三.参考文献 一.理论基础 ...

  2. 基于精英反向学习的逐维改进蜻蜓算法-附代码

    基于精英反向学习的逐维改进蜻蜓算法 文章目录 基于精英反向学习的逐维改进蜻蜓算法 1.蜻蜓算法 2. 改进蜻蜓算法 2.1 基于精英反向学习的种群初始化 2. 2 基于贪婪保留的逐维更新策略 2.3 ...

  3. 基于逐维反向学习的动态适应布谷鸟算法

    文章目录 一.理论基础 1.布谷鸟搜索算法 2.DA-DOCS算法 (1)逐维反向学习策略 (2)动态适应 (3)DA-DOCS算法流程 二.实验与结果分析 三.参考文献 一.理论基础 1.布谷鸟搜索 ...

  4. 【智能优化算法】基于分段权重和变异反向学习的蝴蝶优化算法求解单目标优化问题附matlab代码

    1 简介 针对原始蝴蝶优化算法容易陷入局部最优解,收敛速度慢及寻优精度低等问题,提出分段权重和变异反向学习的蝴蝶优化算法.通过飞行引领策略来矫正邻域内蝴蝶的自身飞行,降低盲目飞行,增强算法跳出局部最优 ...

  5. 基于自适应反向学习的黏菌算法

    文章目录 一.理论基础 1.黏菌算法 2.自适应反向学习黏菌算法 (1)反向学习 (2)自适应决策策略 (3)AOSMA算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基础 1.黏菌算法 请 ...

  6. 精英反向学习带扰动因子的混沌蚁狮算法-附代码

    精英反向学习带扰动因子的混沌蚁狮算法 文章目录 精英反向学习带扰动因子的混沌蚁狮算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 加入扰动因子 q 的蚂蚁随机游走公式 2.2 Logistic ...

  7. 精英反向学习与黄金正弦优化的HHO算法

    文章目录 一.理论基础 1.哈里斯鹰优化算法(HHO) 2.融合精英反向学习与黄金正弦的EGHHO (1)精英反向学习机制 (2)黄金正弦算法 (3)EGHHO优化算法 二.实验仿真与结果分析 三.参 ...

  8. 基于精英反向学习和Lévy飞行的鲸鱼优化算法

    文章目录 一.理论基础 1.鲸鱼优化算法 2.改进鲸鱼优化算法 (1)基于精英反向学习的种群初始化 (2)自适应权重 (3)Lévy飞行 二.实验结果与分析 三.参考文献 一.理论基础 1.鲸鱼优化算 ...

  9. 融合柯西变异和反向学习的改进麻雀算法

    文章目录 一.理论基础 1.基本麻雀搜索算法 2.融合柯西变异和反向学习的麻雀搜索算法 (1)Sin混沌初始化种群 (2)动态自适应权重 (3)改进的侦查预警麻雀更新公式 (4)融合柯西变异和反向学习 ...

  10. 反向传播算法(BP算法)学习总结

    反向传播算法(BP算法)学习总结 1.简介   BP算法是由学习过程由信号的正向传播与误差的反向传播两个过程组成.由于多层前馈网络的训练经常采用误差反向传播算法,人们也常把将多层前馈网络直接称为BP网 ...

最新文章

  1. python中gui有没有电子表格控件_python实现表格控件
  2. 使用IntelliJ IDEA 14和Maven创建java web项目
  3. python中的@符号的作用
  4. 信息系统项目管理师:第5章:项目范围管理(2)-重点汇总
  5. android添加时间,添加加载时间记录函数
  6. echarts折线图背景线_echarts设置折线线条颜色和折线点颜色的实例
  7. java国家电网面试试题_国家电网笔试面试相关
  8. xcode--常用快捷键
  9. java extjs4 分页_extjs学习笔记(四)带分页的grid
  10. Vue开发总结 及 一些最佳实践 (已更新)
  11. 华为专利全球第一:哪里跌倒,哪里爬起!
  12. systemctl命令_开发者必备Linux命令
  13. 深入PHP变量存储结构
  14. Spring Security(一):最简单的Spring Security程序
  15. 物流快递发货单接口API代码-快递100API
  16. 当面试官问:JS中原始类型有哪些?
  17. 剑御九州手游辅助升级工具 提升战力材料介绍
  18. 《从一到无穷大》阅读笔记1
  19. bcd转ascii码 流程图_BCD码到ASCII码转换实例
  20. 笔记本题目 复习(一)

热门文章

  1. 相机投影变换(位姿)
  2. 用大白话聊聊JavaSE -- 自定义注解入门
  3. LZJ的Python第二次打卡
  4. 高并发场景以及应对技巧
  5. IEEE Conference Template Letter
  6. linux lpte_所有的linux和unix的指令行下的指令都一样吗
  7. S4 HANA CO和FI自动集成:成本中心分配分摊业务实践-KSV5/KSU5
  8. cocos实现PC端鼠标指针更换功能
  9. 特拉华大学计算机专业,特拉华大学计算机专业
  10. 定时任务:每隔30分钟执行一次脚本