基于混合策略改进的蝴蝶优化算法
文章目录
- 一、理论基础
- 1、蝴蝶优化算法
- 2、正弦余弦算法
- 3、MSBOA算法(混合策略改进的蝴蝶优化算法)
- (1)融合改进正弦余弦算法的局部搜索
- (2)自适应权重系数
- (3)逐维变异策略
- 二、MSBOA算法实现流程
- 三、仿真实验与结果分析
- 四、参考文献
一、理论基础
1、蝴蝶优化算法
蝴蝶优化算法[1]是模拟蝴蝶食物搜索和交配行为(蝴蝶利用嗅觉来确定花蜜或交配对象的位置)而衍生出的一种新型智能优化算法。
在BOA算法中,每只蝴蝶都会产生一定强度的香味,香味大小与刺激的物理强度有关。香味大小的具体计算公式如下:f=cIa(1)f=cI^a\tag{1}f=cIa(1)其中,fff为香味大小,即其他蝴蝶能够感知到的香味强度;ccc为感官模态,在[0,1][0,1][0,1]间取值;III为刺激强度;aaa为幂指数,在[0,1][0,1][0,1]间取值。
全局搜索阶段的位置更新公式如下: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、xit+1x_i^{t+1}xit+1分别表示第iii只蝴蝶在第ttt次迭代、第t+1t+1t+1次迭代中的位置向量;rrr是[0,1][0,1][0,1]之间的随机数;g∗g^*g∗为当前迭代中的最优解;fif_ifi为第iii只蝴蝶的香味。
局部搜索阶段的位置更新公式如下:xit+1=xit+(r2×(xjt−xkt))×fi(3)x_i^{t+1}=x_i^t+(r^2×(x_j^t-x_k^t))×f_i\tag{3}xit+1=xit+(r2×(xjt−xkt))×fi(3)其中,xjtx_j^txjt、xktx_k^txkt表示在第ttt次迭代中从种群内部随机选择的第jjj个、第kkk个个体的位置向量;rrr为[0,1][0,1][0,1]间的随机数。
2、正弦余弦算法
请参考这里。
3、MSBOA算法(混合策略改进的蝴蝶优化算法)
(1)融合改进正弦余弦算法的局部搜索
利用一个随迭代次数自适应变化、函数范围变化较小、前期变化较慢后期变化较快的切换概率来控制在局部搜索阶段使用哪种位置更新方式,在算法局部寻优的前期能够充分利用局部范围内的个体,在局部寻优的后期能够快速地收敛到最优个体,切换概率PsP_sPs的计算公式如下:Ps=0.01×(tN_iter)3+1(4)P_s=0.01×(\frac{t}{N\_iter})^3+1\tag{4}Ps=0.01×(N_itert)3+1(4)其中,t,N_itert,N\_itert,N_iter分别为当前迭代次数和最大迭代次数。当rand<Psrand<P_srand<Ps时,算法采用正弦余弦算法进行位置更新操作,反之,算法采用BOA算法原来的局部搜索位置更新公式,这里的rand∈[1,1.01]rand∈[1,1.01]rand∈[1,1.01]。
提出一种非线性单调递减的凸函数作为转换参数来更好地平衡全局搜索和局部开发。改进后的转换参数公式如下:R1=δ+bexp(4×(tN_iter)4)+1(5)R_1=\delta+\frac{b}{exp(4×\left(\frac{t}{N\_iter}\right)^4)+1}\tag{5}R1=δ+exp(4×(N_itert)4)+1b(5)其中,b=0.1b=0.1b=0.1为常数;δ\deltaδ为调节因子,经多次实验验证,δ=0.95\delta=0.95δ=0.95时实验结果为最优。算法迭代前期R1R_1R1下降缓慢,可以更好地利用BOA算法局部搜索阶段的蝴蝶个体;迭代后期R1R_1R1下降快速,可以指引蝴蝶个体尽快向目标值移动。改进后的正弦余弦算法位置更新公式如下:Xid(t+1)={Xid(t)+R1×sin(R2)×∣R3P∗d(t)−Xjd(t)∣,R4<0.5Xid(t)+R1×cos(R2)×∣R3P∗d(t)−Xjd(t)∣,R4≥0.5(6)X_i^d(t+1)=\begin{dcases}X_i^d(t)+R_1×sin(R_2)×|R_3P_*^d(t)-X_j^d(t)|,\quad R_4<0.5\\X_i^d(t)+R_1×cos(R_2)×|R_3P_*^d(t)-X_j^d(t)|,\quad R_4≥0.5\end{dcases}\tag{6}Xid(t+1)={Xid(t)+R1×sin(R2)×∣R3P∗d(t)−Xjd(t)∣,R4<0.5Xid(t)+R1×cos(R2)×∣R3P∗d(t)−Xjd(t)∣,R4≥0.5(6)其中,Xjd(t)X_j^d(t)Xjd(t)表示在第ttt次迭代中在种群内部随机选择的第jjj个个体在第ddd维的解。
(2)自适应权重系数
本文在BOA算法的全局搜索和局部搜索阶段共同引入一种随迭代次数变化的自适应权重w(t)w(t)w(t),使三种个体位置信息都能够得到充分地利用,同时控制当前蝴蝶个体的移动方向和移动距离,从而提高算法寻优精度和收敛速度。自适应权重w(t)w(t)w(t)的数学表达式如下:w(t)=α[cosh(2×(1−10tN_iter)4)−1](7)w(t)=\alpha[cosh(2×(1-\frac{10t}{N\_iter})^4)-1]\tag{7}w(t)=α[cosh(2×(1−N_iter10t)4)−1](7)其中,α∈[0,1]\alpha∈[0,1]α∈[0,1]。因此,BOA算法引入自适应权重系数后全局搜索阶段的位置更新公式为xit+1=w(t)×(xit+(r2×g∗−xit)×fi)(8)x_i^{t+1}=w(t)×(x_i^t+(r^2×g^*-x_i^t)×f_i)\tag{8}xit+1=w(t)×(xit+(r2×g∗−xit)×fi)(8)局部搜索阶段的位置更新公式为xit+1=w(t)×(xit+(r2×(xjt−xkt))×fi)(9)x_i^{t+1}=w(t)×(x_i^t+(r^2×(x_j^t-x_k^t))×f_i)\tag{9}xit+1=w(t)×(xit+(r2×(xjt−xkt))×fi)(9)
(3)逐维变异策略
引入了文献[2]中张超提出的t-分布变异算子对最优个体位置进行扰动,该t-分布变异算子的自由度参数会跟随迭代次数的变化而变化,逐维变异策略具体定义如下。
设搜索空间为ddd维,当前最优解gbest=(gbest1,gbest2,⋯,gbestd)g_{best}=(g_{best}^1,g_{best}^2,\cdots,g_{best}^d)gbest=(gbest1,gbest2,⋯,gbestd),那么当前最优解逐维变异得到的新解gnew=(gnew1,gnew2,⋯,gnewd)g_{new}=(g_{new}^1,g_{new}^2,\cdots,g_{new}^d)gnew=(gnew1,gnew2,⋯,gnewd)计算方式如下:gnewd=gbestd+TD(t)d×gbestd(10)g_{new}^d=g_{best}^d+TD(t)^d×g_{best}^d\tag{10}gnewd=gbestd+TD(t)d×gbestd(10)其中,ttt为当前迭代次数,TD(t)TD(t)TD(t)是自由度参数为ttt的t-分布,TD(t)dTD(t)^dTD(t)d为t-分布在第ddd维生成的随机数。
因为无法直接判断变异后得到的新位置是否优于原位置,所以本文利用了贪婪原则来判断是否接受新位置代替原最优位置。通过使用贪婪原则,引导种群更好地向最优个体位置进化,更好地提高算法的收敛速度。
二、MSBOA算法实现流程
图1 MSBOA算法流程图
三、仿真实验与结果分析
为验证本文改进算法的有效性, 将MSBOA与原始BOA、SCA、SSA 进行对比,实验过程中种群规模设为40,最大迭代次数为1000,维度为30。各种算法参数设置:MSBO算法参数:c=0.001,a=0.1,p=0.8,α=0.5c=0.001,a=0.1,p=0.8,\alpha=0.5c=0.001,a=0.1,p=0.8,α=0.5;其他算法的参数设置与提出论文一致。
结果表明,本文MSBOA算法的寻优能力有大幅度提高,与其他算法相比仍然具有明显的竞争优势。
四、参考文献
[1] Arora, S., Singh, S. Butterfly optimization algorithm: a novel approach for global optimization[J]. Soft Computing, 2019, 25: 715-734.
[2] 张超. 基于t-分布精英保留机制的花朵授粉算法[J]. 安徽理工大学学报(自然科学版), 2018, 38(3): 50-58.
[3] 宁杰琼, 何庆. 混合策略改进的蝴蝶优化算法[J]. 计算机应用研究, 2021, 38(6): 1718-1723+1738.
基于混合策略改进的蝴蝶优化算法相关推荐
- 基于混合策略改进的鲸鱼优化算法
文章目录 一.理论基础 1.基本鲸鱼优化算法 2.混合策略改进的鲸鱼优化算法 (1)Sobol序列初始化种群 (2)非线性时变因子和自适应权值 (3)随机性学习策略 (4)柯西变异策略 二.算法描述 ...
- 混合策略改进的蝴蝶优化算法-附代码
混合策略改进的蝴蝶优化算法 文章目录 混合策略改进的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 混沌映射初始化 2.2 融合改进正弦余弦算法的局部搜索 2.3 自适应权重系数 2. ...
- 基于混合策略改进的花朵授粉算法
文章目录 一.理论基础 1.花朵授粉算法(FPA) 2.基于混合策略改进的花朵授粉算法 (1)自适应转换概率策略 (2)动态全局搜索策略 (3)局部搜索增强策略 (4)花粉越界修正策略 (5)HSFP ...
- 混合策略改进的麻雀优化算法
文章目录 一.理论基础 1.麻雀优化算法 2.混合策略改进的麻雀优化算法 (1)佳点集的种群初始化 (2)黄金莱维飞行策略 (3)t-分布扰动策略 (4)动态分配侦察者策略 (5)MI-SSA算法实现 ...
- 【LEACH协议】基于matlab蝴蝶优化算法WSN安全分簇路由设计【含Matlab源码 2567期】
⛄一.蝴蝶优化算法(MBO)简介 1 介绍 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算法.该算法受 ...
- 基于余弦相似度的改进蝴蝶优化算法
文章目录 一.理论基础 1.蝴蝶优化算法 2.改进蝴蝶优化算法 (1)基于余弦相似度位置更新策略 (2)根据适应度动态调整转换概率策略 (3)自适应混合惯性权重 二.MSBOA算法步骤 三.仿真实验与 ...
- 混合粒子群的混沌蝴蝶优化算法
文章目录 一.理论基础 1.基本蝴蝶优化算法(BOA) 2.基本粒子群优化算法(PSO) 3.混合粒子群的混沌蝴蝶优化算法(HPSOBOA) (1)Cubic映射 (2)非线性参数控制策略 (3)混合 ...
- 【智能优化算法】基于分段权重和变异反向学习的蝴蝶优化算法求解单目标优化问题附matlab代码
1 简介 针对原始蝴蝶优化算法容易陷入局部最优解,收敛速度慢及寻优精度低等问题,提出分段权重和变异反向学习的蝴蝶优化算法.通过飞行引领策略来矫正邻域内蝴蝶的自身飞行,降低盲目飞行,增强算法跳出局部最优 ...
- 【优化求解】基于收敛因子和黄金正弦指引机制的蝴蝶优化算法求解单目标优化问题matlab代码(AGSABOA)
1 简介 针对蝴蝶优化算法(butterfly optimization algorithm,BOA)中存在的局部开采和全局探索能力不均衡,易陷入局部最优值,收敛精度低等缺陷,提出收敛因子和黄金正弦指 ...
最新文章
- Oracle的SQL语句
- RNNTLoss使用这个可以吗
- 2021夏季每日一题 【week5 完结】
- iOS 文字转化成图片
- 莫旗政务服务中心通过“互联网+智慧城市” 提升公共服务能力
- AVL Insertion(浙大pta)
- 平行空间怎么设置32位_每周推荐 | 空间占用减小32%,具有高级功能的16位逻辑封装...
- react 中组件隐藏显示_React组件开发中常见的陷阱及解决
- Linux脚本验证的常见方法,linux shell常用循环与判断语句(for,while,until,if)使用方法...
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_9_Stream流中的常用方法_concat...
- nohup java -jar
- Tinker的简单接入
- amd显卡测试帧数显示软件,AMD最新科技让帧数翻倍?FidelityFX超分辨率FSR帧数画面实测...
- 可以实现树形结构的设计模式(组合模式)
- Rayson API 框架分析系列之6: 客户端动态代理原理
- android 画图一
- 深度学习:维度灾难(Curse Of Dimensionality)
- 工作1-2年,月薪3000不可怕,可怕的是能力与之相匹配
- MongoDB 地理空间查询
- iOS 【消息处理 performSelector】