融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法

文章目录

  • 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法
    • 1.蝴蝶优化算法
    • 2. 改进蝴蝶优化算法
      • 2.1 柯西变异
      • 2.2 自适应权重
      • 2.3动态切换概率策略
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.Python代码

摘要:针对基本蝴蝶优化算法(Butterfly Optimization Algorithm,BOA)存在的收敛精度较低、容易陷入局部最优解的问题,提出柯西变异和自适应权重优化的蝴蝶算法(Cauchy variation and adaptive Weight Butterfly Optimization Algorithm,CWBOA)。通过在全局位置更新处引入柯西分布函数进行变异,在局部位置更新处引入自适应权重因子,改进了蝴蝶算法的局部搜索能力;并且引入动态切换概率p来权衡全局探索与局部开发过程的比重。

1.蝴蝶优化算法

基础蝴蝶优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107855860

2. 改进蝴蝶优化算法

2.1 柯西变异

蝴蝶个体受局部的极值点约束力在进行柯西变异后下降, 并且 柯西分布函数的峰值相对较小, 蝴蝶个体在变异后会使 用相对较少的时间来搜索相邻区间, 把更多的时间放在 搜寻全局最优值上, 使得改进的蝴蝶优化算法在寻找全 局的最优值方面具备很好的调节能力。用柯西变异进 行随机扰动有利于增加种群的多样性从而避免算法陷 入局部最优, 提高全局搜索最优值的能力。柯西分布的 特征使其能够产生与原点相距较远的随机数, 这意味着 经过柯西变异后的蝴蝶个体具备了能够迅速逃离局部 极值的能力。另外, 柯西分布函数的峰值较低, 该特点 能够缩短变异后的蝴蝶个体在邻域周围搜索的时间。 因此在求得当前最优解后, 本文使用公式 (5)所示的更 新公式对当前全局最优解进行变异处理。
x newbest  = x best  + x best  × Cauchy ⁡ ( 0 , 1 ) (5) x_{\text {newbest }}=x_{\text {best }}+x_{\text {best }} \times \operatorname{Cauchy}(0,1) \tag{5} xnewbest ​=xbest ​+xbest ​×Cauchy(0,1)(5)

2.2 自适应权重

惯性权重因子是很重要的一个参数, 当惯性权重比 较大时, 算法全局搜索能力较强, 能够增加种群多样性, 可以搜索较大的区域; 当惯性权重比较小时, 算法局部 搜索能力较强, 可以在最优解周围精细搜索, 加快收玫 速度。蝴蝶进行局部寻优时, 是以公式 (3) 进行局部搜 索的, 其中当蝴蝶以公式 (3) 向局部最优解靠近时, 这时 只能靠近局部最优解, 而不能进行更好的局部寻优 [ 12 ] { }^{[12]} [12], 针对这个问题受文献[13]、文献[14]的启发, 提出了新的 自适应权重方法, 蝴蝶接近食物的时候, 采用较小的自 适应权重改变此时最优的蝴蝶的位置, 使得蝴蝶局部寻 优能力得到提高。自适应权重公式如式(6)所示:
w = sin ⁡ ( π ⋅ t ( 2 ⋅ i tmax ⁡ ) + π ) + 1 (6) w=\sin \left(\frac{\pi \cdot t}{(2 \cdot i \operatorname{tmax})}+\pi\right)+1 \tag{6} w=sin((2⋅itmax)π⋅t​+π)+1(6)
式 (6) 中, t t t 为当前迭代次数, itmax 是最大迭代次数。 改进式 (3)的公式如(7)所示:
x i t + 1 = w ⋅ x i t + ( r 2 × x j t − x k t ) × f i (7) x_{i}^{t+1}=w \cdot x_{i}^{t}+\left(r^{2} \times x_{j}^{t}-x_{k}^{t}\right) \times f_{i} \tag{7} xit+1​=w⋅xit​+(r2×xjt​−xkt​)×fi​(7)
通过融合自适应权重因子 w w w, 使蝴蝶个体具有更 好的局部寻优能力。

2.3动态切换概率策略

在基本蝴蝶优化算法中, 局部搜索和全局寻优过程 用常量切换概率 p ∈ [ 0 , 1 ] p \in[0,1] p∈[0,1] 来控制, 一个合理的搜索过程 在算法的前期应该进行较强烈的全局搜索, 迅速定位搜 索空间中全局最优解所在范围, 在探索后期局部开采能 力应增强, 以提升算法的寻优精度。本文引入动态切换 概率来平衡局部开采和全局开采的比重, 来实现更好的 寻优策略。动态切换概率 p p p 的公式如下:
p = 0.6 − 0.1 × ( MaxIter  − t ) / MaxIter  (8) p=0.6-0.1 \times(\text { MaxIter }-t) / \text { MaxIter }\tag{8} p=0.6−0.1×( MaxIter −t)/ MaxIter (8)

3.实验结果

4.参考文献

[1]高文欣,刘升,肖子雅,于建芳.柯西变异和自适应权重优化的蝴蝶算法[J].计算机工程与应用,2020,56(15):43-50.

5.Matlab代码

6.Python代码

柯西变异和自适应权重优化的蝴蝶算法-附代码相关推荐

  1. 柯西变异和自适应权重优化的蝴蝶算法

    文章目录 一.理论基础 1.蝴蝶优化算法 2.改进的蝴蝶优化算法 (1)柯西变异 (2)自适应权重 (3)动态切换概率策略 (4)算法描述 二.函数测试与结果分析 三.参考文献 一.理论基础 1.蝴蝶 ...

  2. 【优化求解】基于柯西变异和自适应权重优化的蝴蝶算法求解单目标优化问题matlab代码

    1 简介 针对基本蝴蝶优化算法(Butterfly Optimization Algorithm,BOA)存在的收敛精度较低.容易陷入局部最优解的问题,提出柯西变异和自适应权重优化的蝴蝶算法(Cauc ...

  3. 融合柯西变异和反向学习的改进麻雀算法-附代码

    融合柯西变异和反向学习的改进麻雀算法 文章目录 融合柯西变异和反向学习的改进麻雀算法 1.麻雀搜索算法 2.融合柯西变异和反向学习的改进麻雀算法(ISA) 2.1 Sine 初始化种群 2.2 动态自 ...

  4. 一种改进的进化模型和混沌优化的萤火虫算法-附代码

    一种改进的进化模型和混沌优化的萤火虫算法 文章目录 一种改进的进化模型和混沌优化的萤火虫算法 1.萤火虫算法 2. 改进萤火虫算法 2.1 基于混沌优化策略的种群初始化 2. 2 基于惯性权重的进化计 ...

  5. 改进交叉算子的自适应人工蜂群黏菌算法-附代码

    改进交叉算子的自适应人工蜂群黏菌算法 文章目录 改进交叉算子的自适应人工蜂群黏菌算法 1.黏菌算法 2.改进黏菌算法 2.1 自适应可调节反馈因子 2.2 算数交叉算子 2.3 改进的人工蜂群搜索策略 ...

  6. 基于柯西变异的蚁狮优化算法 - 附代码

    基于柯西变异的蚁狮优化算法 文章目录 基于柯西变异的蚁狮优化算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 基于柯西变异算子改进 3.实验结果 4.参考文献 5.Matlab代码 6.Pyth ...

  7. 混合策略改进的蝴蝶优化算法-附代码

    混合策略改进的蝴蝶优化算法 文章目录 混合策略改进的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 混沌映射初始化 2.2 融合改进正弦余弦算法的局部搜索 2.3 自适应权重系数 2. ...

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

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

  9. 一种改进的鲸鱼优化算法-附代码

    一种改进的鲸鱼优化算法 文章目录 一种改进的鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 准反向学习初始化种群 2.2 非线性收敛因子 2.3 自适应权重策略与随机差分法变异策略 3 ...

最新文章

  1. sass文件编译的三种方式【舒】
  2. linux 脚本编程
  3. 中科院脑科学与智能技术卓越创新中心:在“脑海”中突破进取
  4. Xamarin IOS – hello word
  5. ArcGIS Engine开发模板及C#代码
  6. 12_04_Linux软件管理之四yum
  7. 海马扫描Linux,海马扫描-海马扫描下载 v1.2.0官方版-完美下载
  8. mysql n叉树_MySQL索引底层:B+树详解
  9. 一盒两用!——破解电信IPTV机顶盒为普通安卓机顶盒
  10. 渐变的alert_好看的alert样式或者弹窗样式
  11. 海量数据搜索---搜索引擎的实现
  12. Linux基础之计算机网络
  13. 推荐一个有效清理电脑桌面广告、流氓软件的方法
  14. 深度学习工程实践 5. libtorch+opencv使用复杂的训练分割模型(脸部,头发实现分割)
  15. zabbix查询历史数据
  16. 打乱魔方软件_怎样打乱魔方
  17. 二维码扫描枪对接手册
  18. K8S查看服务器日志
  19. git cherry-pick 多分支的代码库,将代码从一个分支转移到另一个分支
  20. 小木虫网站无法登陆(账号突然被封禁)的解决办法

热门文章

  1. 6款超强国外免费网盘推荐
  2. MT5 中文版财经日历,主标不可或缺
  3. brew安装慢问题解决方案
  4. vs2019注释快捷键设置
  5. NET 程序员十种必备工具 - 目录
  6. 可汗学院风格电子板书攻略:Wacom+ArtRage
  7. php本地缓存错误,thinkphp网站提示缓存文件写入失败
  8. Linux自动挂载失败,Linux学习记录--开机挂载错误
  9. 俄罗斯----中国人对它的颠覆性---不正确的神话
  10. 关于AD19设计与印刷板制作过程的入门见解