智能优化算法:蝴蝶优化算法-附代码

文章目录

  • 智能优化算法:蝴蝶优化算法-附代码
  • 1.算法原理
  • 2.算法流程:
  • 3.算法结果
  • 4.参考文献:
  • 5.MATLAB代码
  • 6.Python代码

摘要:蝴蝶优化算法 (Butterfly optimization algorithm,BOA)是由 Arora于基于蝴蝶BOA觅食过程提出的自然启发式算法。该算法具有较高的收敛精度。

1.算法原理

蝴蝶利用自身的感知器定位食物的来源。该算法中,假设每只蝴蝶产生一定强度的香味,这些香味会传播并被区域内的其它蝴蝶感知。每只蝴蝶释放出的香味与它的适应度有关。这就意味着当一只蝴蝶移动了位置,它的适应度也将随之变化。当蝴蝶感觉到另一只蝴蝶在这个区域散发出更多的香味时,就会去靠近,这个阶段被称为全局搜索。另外一种情况,当蝴蝶不能感知大于它自己的香味时,它会随机移动,这个阶段称为局部搜索阶段。

香味是根据 刺 激 的 物 理 强 度 来 表 述 的。其 计 算 如 式(1)所示:
f=cIα(1)f=cI^\alpha\tag{1} f=cIα(1)
蝴蝶产生的香味涉及到 3 个参数,分别为感觉因子ccc,刺激强度III和幂指数 α\alphaα。刺激强度与蝴蝶 (解)的适应度相关。

该算法有两个关键步骤:全局搜索阶段和局部搜索阶段。在全局搜索阶段,蝴蝶将向最优解 g∗g^*g∗ 移动,可表示为:
xit+1=xit+(r2∗g∗−xit)∗fi(2)x_i^{t+1}=x_i^{t}+(r^2*g^*-x_i^t)*f_i\tag{2} xit+1​=xit​+(r2∗g∗−xit​)∗fi​(2)
其中,xitx_i^txit​表示第 iii个蝴蝶在第ttt次迭代中的解向量。这里g∗g^*g∗ 表示目 前 为 止 的 最 优 解。第iii只 蝴 蝶 的 香 味 用fif_ifi​来表示,r为0到1的随机数。

局部搜索可表示为
xit+1=xit+(r2∗xkt−xjt)∗fi(3)x_i^{t+1}=x_i^t+(r^2*x_k^t-x_j^t)*f_i\tag{3} xit+1​=xit​+(r2∗xkt​−xjt​)∗fi​(3)
其中r为0到1的随机数,xktx_k^txkt​和xjkx_j^kxjk​ 表示从解空间中随机选择的第kkk只和第 jjj只蝴蝶。在蝴蝶的觅食过程中,全局和局部搜索都会发生,为此,设定一个开关概率 ppp来转换普通的全局搜索和密集的局部搜索。每次迭代用式(4)随机产生一个数 rrr,与开关概率ppp进行比较来决定进行全局搜索还是局部搜索。
r=rand(0,1)(4)r=rand(0,1)\tag{4} r=rand(0,1)(4)

2.算法流程:

(1) 计算适应度函数f(x),x=(x1,...,xdim)f(x),x=(x1,...,xdim)f(x),x=(x1,...,xdim)
(2) 给每个蝴蝶生成nnn个初始解 xi=(i=1,2,...,n)x_i=(i=1,2,...,n)xi​=(i=1,2,...,n)
(3) 声明变量 c,α,g∗,pc,\alpha,g^*,pc,α,g∗,p
(4) while未到终止条件do
(5) for每一个蝴蝶do
(6) 采用式(1)计算其香味函数fff
(7) end for
(8) 找出最优的香味函数fff,并赋值给g∗g^*g∗
(9) for 每一个蝴蝶do
(10) 采用式(4)计算概率 r
(11) if r<p then
(12) 采用式(2)进行全局搜索
(13) else
(14) 采用式(3)进行局部随机搜索
(15) end if
(16) end for
(17) end while
(18) 输出最优解 .

3.算法结果

4.参考文献:

[1] Arora S, Singh S. Butterfly optimization algorithm: a novel approach for global optimization[C]. soft computing, 2019, 23(3): 715-734.

[2]李田来,刘方爱.带混沌映射的WSN蝴蝶优化定位算法[J].计算机工程与设计,2019,40(06):1729-1733.

[3]刘云涛.基于蝴蝶优化的粒子滤波算法[J].信息技术与网络安全,2018,37(07):37-41.

5.MATLAB代码

蝴蝶优化算法
改进算法matlab代码

名称 说明或者参考文献
全局优化的蝴蝶优化算法(SMSCABOA) [1]高文欣,刘升,肖子雅,于建芳.全局优化的蝴蝶优化算法[J].计算机应用研究,2020,37(10):2966-2970.
融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法(SIBOA) [1]王依柔,张达敏.融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法[J].模式识别与人工智能,2020,33(07):660-669.
柯西变异和自适应权重优化的蝴蝶算法(CWBOA) [1]高文欣,刘升,肖子雅,于建芳.柯西变异和自适应权重优化的蝴蝶算法[J].计算机工程与应用,2020,56(15):43-50.
收敛因子和黄金正弦指引机制的蝴蝶优化算法(AGSABOA) [1]高文欣,刘升,肖子雅,于建芳.收敛因子和黄金正弦指引机制的蝴蝶优化算法[J].计算机工程与设计,2020,41(12):3384-3389.
一种改进的蝴蝶优化算法(IBOA) [1]谢聪,封宇.一种改进的蝴蝶优化算法[J].数学的实践与认识,2020,50(13):105-115.
基于自适应扰动的疯狂蝴蝶算法(CIBOA) [1]王依柔,张达敏,徐航,宋婷婷,樊英.基于自适应扰动的疯狂蝴蝶算法[J].计算机应用研究,2020,37(11):3276-3280.
基于余弦相似度改进蝴蝶优化算法(MSBOA) [1]陈俊,何庆.基于余弦相似度改进蝴蝶优化算法[J/OL].计算机应用:1-10[2021-04-28].http://kns.cnki.net/kcms/detail/51.1307.TP.20210305.0941.002.html.
混合策略改进的蝴蝶优化算法(MSBOA) [1]宁杰琼,何庆.混合策略改进的蝴蝶优化算法[J/OL].计算机应用研究:1-7[2021-04-29].https://doi.org/10.19734/j.issn.1001-3695.2020.06.0171.
分段权重和变异反向学习的蝴蝶优化算法(PWMBOA) [1]李守玉,何庆,杜逆索.分段权重和变异反向学习的蝴蝶优化算法[J/OL].计算机工程与应用:1-11[2021-04-30].http://kns.cnki.net/kcms/detail/11.2127.TP.20210331.0944.004.html.
融合收敛因子和樽海鞘群的蝴蝶优化算法(CFSSBOA) [1]郑洪清,彭石燕,周永权.融合收敛因子和樽海鞘群的蝴蝶优化算法[J/OL].微电子学与计算机:1-7[2021-10-11].http://kns.cnki.net/kcms/detail/61.1123.tn.20210914.1523.009.html.
混沌反馈共享和群体协同效应的蝴蝶优化算法(CFSBOA) [1]李守玉,何庆,杜逆索.混沌反馈共享和群体协同效应的蝴蝶优化算法[J/OL].计算机科学与探索:1-12[2021-04-30].http://kns.cnki.net/kcms/detail/11.5602.TP.20210128.1109.014.html.
混合粒子群-蝴蝶算法(HPSBA) [1]张孟健,汪敏,王霄,覃涛,杨靖.混合粒子群-蝴蝶算法的WSN节点部署研究[J/OL].计算机工程与科学:1-9[2021-11-04].http://kns.cnki.net/kcms/detail/43.1258.TP.20210916.1048.002.html.

算法相关应用

名称 说明或者参考文献
基于蝴蝶算法的极限学习机(ELM)回归预测 https://blog.csdn.net/u011835903/article/details/111073635(原理一样,只是优化算法部分用蝴蝶算法)

6.Python代码

改进算法python代码

名称 说明或者参考文献
全局优化的蝴蝶优化算法(SMSCABOA) [1]高文欣,刘升,肖子雅,于建芳.全局优化的蝴蝶优化算法[J].计算机应用研究,2020,37(10):2966-2970.
融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法(SIBOA) [1]王依柔,张达敏.融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法[J].模式识别与人工智能,2020,33(07):660-669.
柯西变异和自适应权重优化的蝴蝶算法(CWBOA) [1]高文欣,刘升,肖子雅,于建芳.柯西变异和自适应权重优化的蝴蝶算法[J].计算机工程与应用,2020,56(15):43-50.
收敛因子和黄金正弦指引机制的蝴蝶优化算法(AGSABOA) [1]高文欣,刘升,肖子雅,于建芳.收敛因子和黄金正弦指引机制的蝴蝶优化算法[J].计算机工程与设计,2020,41(12):3384-3389.
一种改进的蝴蝶优化算法(IBOA) [1]谢聪,封宇.一种改进的蝴蝶优化算法[J].数学的实践与认识,2020,50(13):105-115.
基于自适应扰动的疯狂蝴蝶算法(CIBOA) [1]王依柔,张达敏,徐航,宋婷婷,樊英.基于自适应扰动的疯狂蝴蝶算法[J].计算机应用研究,2020,37(11):3276-3280.
基于余弦相似度改进蝴蝶优化算法(MSBOA) [1]陈俊,何庆.基于余弦相似度改进蝴蝶优化算法[J/OL].计算机应用:1-10[2021-04-28].http://kns.cnki.net/kcms/detail/51.1307.TP.20210305.0941.002.html.
混合策略改进的蝴蝶优化算法(MSBOA) [1]宁杰琼,何庆.混合策略改进的蝴蝶优化算法[J/OL].计算机应用研究:1-7[2021-04-29].https://doi.org/10.19734/j.issn.1001-3695.2020.06.0171.
分段权重和变异反向学习的蝴蝶优化算法(PWMBOA) [1]李守玉,何庆,杜逆索.分段权重和变异反向学习的蝴蝶优化算法[J/OL].计算机工程与应用:1-11[2021-04-30].http://kns.cnki.net/kcms/detail/11.2127.TP.20210331.0944.004.html.
融合收敛因子和樽海鞘群的蝴蝶优化算法(CFSSBOA) [1]郑洪清,彭石燕,周永权.融合收敛因子和樽海鞘群的蝴蝶优化算法[J/OL].微电子学与计算机:1-7[2021-10-11].http://kns.cnki.net/kcms/detail/61.1123.tn.20210914.1523.009.html.
混沌反馈共享和群体协同效应的蝴蝶优化算法(CFSBOA) [1]李守玉,何庆,杜逆索.混沌反馈共享和群体协同效应的蝴蝶优化算法[J/OL].计算机科学与探索:1-12[2021-04-30].http://kns.cnki.net/kcms/detail/11.5602.TP.20210128.1109.014.html.

智能优化算法:蝴蝶优化算法-附代码相关推荐

  1. 智能优化算法:闪电搜索算法-附代码

    智能优化算法:闪电搜索算法-附代码 文章目录 智能优化算法:闪电搜索算法-附代码 1.算法原理 1.1 过渡放电体 1.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...

  2. 智能优化算法:布谷鸟搜索算法-附代码

    智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...

  3. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

  4. 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码

    基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...

  5. 相位 unwrap 与 wrap 算法详解(附代码)

    相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...

  6. 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...

  7. 二分查找算法详解(附代码)

    二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...

  8. 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...

  9. 麻雀优化算法_多种智能优化算法应用案例分享-附代码

    1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客​blog.csdn.net 2.智能优化算法 ...

  10. 智能优化算法:麻雀搜索算法-附代码

    2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...

最新文章

  1. tsne pca 自编码器 绘图(CC2)——一定记得做无量纲化处理使用standardscaler,数据聚类更明显...
  2. Android改变字体方法——Typeface
  3. Confluence 6 企业环境或者网站托管的 Java 配置策略
  4. VS2008无法下断点调试的原因
  5. 如何用R来定制个性化PPT
  6. SQL从入门到不是怎么精通
  7. oracle分析函数over(Partition by...)及开窗函数详解
  8. win7+nfs文件服务器,win7如何挂载nfs服务器
  9. winrar压缩软件弹出广告解决办法
  10. 值得总结!推荐10款超实用的神级办公网站和软件,效率翻倍
  11. 服务器上打开PHP文件却出现下载界面或者502
  12. 大数据与人工智能系列文章
  13. python 之 for 循环
  14. 张口就是20几个亿,抖音、快手、百度真的撒币?
  15. vue使用WangEditor富文本编辑器(批量上传图片到服务器)
  16. mysql json_extract用法,【MySQL】json_extract解析json
  17. JeecgBoot duplicateCheck 表单字段重复校验通用JS详细记录
  18. 腾讯云直播业务实属坑爹,简直搞笑!劝大家谨慎考察后进行接入
  19. windows 应用商店分类
  20. VBox增强工具安装

热门文章

  1. zookeeper部署
  2. FISCO BCOS(三)——— 部署及调用HelloWorld合约
  3. everedit选择_【EverEdit怎么用】EverEdit好不好_使用技巧-ZOL软件百科
  4. (秒杀项目) 4.2 用户登录和注册
  5. mysql 冷备搭建_从MySQL冷备说起_MySQL
  6. python数字求和为什么得不出结果_WPS表格求和问题,只出公式不出结果数字
  7. Java编程:迪杰斯特拉算法(已知固定起点最短路径问题)
  8. 实战HTML:静态登录界面
  9. Javascript特效:输入框焦点判断
  10. JCTools简介-增强的并发工具