文章目录

  • 一、理论基础
    • 1、基本蝴蝶优化算法(BOA)
    • 2、基本粒子群优化算法(PSO)
    • 3、混合粒子群的混沌蝴蝶优化算法(HPSOBOA)
      • (1)Cubic映射
      • (2)非线性参数控制策略
      • (3)混合PSO的BOA算法(HPSOBOA)
      • (4)HPSOBOA算法伪代码
  • 二、仿真实验与结果分析
  • 三、参考文献

一、理论基础

1、基本蝴蝶优化算法(BOA)

请参考这里。

2、基本粒子群优化算法(PSO)

请参考这里。

3、混合粒子群的混沌蝴蝶优化算法(HPSOBOA)

在这一部分中,提出了一种新的混合算法,引入了Cubic映射对BOA进行初始化,并采用了非线性参数控制策略。此外,将粒子群优化算法与BOA算法相结合,改进了基本的BOA算法,使其能够很好地进行全局优化。

(1)Cubic映射

混沌是非线性系统中比较常见的现象。基本Cubic映射可计算如下:zn+1=αzn3−βzn(1)z_{n+1}=\alpha z_{n}^3-\beta z_n\tag{1}zn+1​=αzn3​−βzn​(1)其中,α\alphaα和β\betaβ表示混沌因子,当β∈(2.3,3)\beta\in(2.3,3)β∈(2.3,3)时,Cubic映射是混沌的。当α=1\alpha=1α=1时,Cubic映射序列值在(−2,2)(-2,2)(−2,2)之间; 当α=2\alpha=2α=2时,序列值在(−1,1)(-1,1)(−1,1)之间。Cubic映射也可表示为:zn+1=ρzn(1−zn2)(2)z_{n+1}=\rho z_n(1-z_n^2)\tag{2}zn+1​=ρzn​(1−zn2​)(2)其中,ρ\rhoρ为控制参数。在式(2)中,Cubic映射序列值在(0,1)(0,1)(0,1)之间,并且当ρ=2.595\rho=2.595ρ=2.595时生成的混沌变量具有更好的遍历性。图1显示了1000次迭代下的Cubic映射序列分布情况。

(a)混沌分岔

(b)混沌映射 图1 Cubic映射序列值分布

在图1中可以看出,混沌映射可以在搜索阶段将蝴蝶种群分布到(0,1)(0,1)(0,1)内的随机值。
为了保证初始值在(0,1)(0,1)(0,1)内,该算法将Cubic映射的z(0)z(0)z(0)设置为0.315。

(2)非线性参数控制策略

在基本BOA中,a=0.1a=0.1a=0.1无法有效平衡算法全局和局部搜索能力。因此,提出了一种非线性参数控制策略:a(t)=afirst−(afirst−afinal)⋅sin⁡(πμ(tTmax⁡)2)(3)a(t)=a_{first}-(a_{first}-a_{final})\cdot\sin(\frac{\pi}{\mu}(\frac{t}{T_{\max}})^2)\tag{3}a(t)=afirst​−(afirst​−afinal​)⋅sin(μπ​(Tmax​t​)2)(3)其中,afirsta_{first}afirst​和afinala_{final}afinal​分别表示参数aaa的初始值和最终值,μ\muμ为调谐参数,Tmax⁡T_{\max}Tmax​表示最大迭代次数。在本文中,μ=2\mu=2μ=2,Tmax⁡=500T_{\max}=500Tmax​=500,afirst=0.1a_{first}=0.1afirst​=0.1,afinal=0.3a_{final}=0.3afinal​=0.3。
从图2可以看出,对于参数aaa,本文提出的基于正弦函数的非线性控制策略在早期阶段具有较大的斜率,这可以加快算法的全局探索能力;中期斜率减小,倾向于局部开发;后期坡度较缓,允许算法搜索最优解。因此,它可以有效地平衡算法的全局搜索和局部搜索能力。

图2 两种控制参数策略对比

(3)混合PSO的BOA算法(HPSOBOA)

为了结合这两种算法的优点,我们利用这两种算法的功能,而不是孤立地使用这两种算法。换句话说,由于生成两种算法的最终结果所涉及的方法不同,因此它是异构的。混合算法的数学模型如下:Vit+1=w⋅Vit+C1⋅r1×(pbest−Xit)+C2⋅r2×(gbest−Xit)(4)V_i^{t+1}=w\cdot V_i^t+C_1\cdot r_1\times(p_{best}-X_i^t)+C_2\cdot r_2\times(g_{best}-X_i^t)\tag{4}Vit+1​=w⋅Vit​+C1​⋅r1​×(pbest​−Xit​)+C2​⋅r2​×(gbest​−Xit​)(4)w=wmax⁡−(wmax⁡−wmin⁡)⋅TiTmax⁡(5)w=w^{\max}-\frac{(w^{\max}-w^{\min})\cdot T_i}{T_{\max}}\tag{5}w=wmax−Tmax​(wmax−wmin)⋅Ti​​(5)其中,C1=C2=0.5C_1=C_2=0.5C1​=C2​=0.5,wmax⁡=0.9w^{\max}=0.9wmax=0.9,wmin⁡=0.2w^{\min}=0.2wmin=0.2,r1r_1r1​和r2r_2r2​为(0,1)(0,1)(0,1)的随机数。Xit+1=Xit+Vit+1(6)X_i^{t+1}=X_i^t+V_i^{t+1}\tag{6}Xit+1​=Xit​+Vit+1​(6)HPSOBOA的全局搜索阶段可表述如下:Xit+1=w⋅Xit+(r2×gbest−w⋅Xit)×fi(7)X_i^{t+1}=w\cdot X_i^t+(r^2\times g_{best}-w\cdot X_i^t)\times f_i\tag{7}Xit+1​=w⋅Xit​+(r2×gbest​−w⋅Xit​)×fi​(7)HPSOBOA的局部搜索阶段可表述如下:Xit+1=w⋅Xit+(r2×Xkt−w⋅Xjt)×fi(8)X_i^{t+1}=w\cdot X_i^t+(r^2\times X_k^t-w\cdot X_j^t)\times f_i\tag{8}Xit+1​=w⋅Xit​+(r2×Xkt​−w⋅Xjt​)×fi​(8)其中,XktX_k^tXkt​和XjtX_j^tXjt​分别是从蝴蝶种群中随机选择的第kkk个和第jjj个个体。

(4)HPSOBOA算法伪代码

为了结合本文提出的三种改进策略的优点,本节提出了一种HPSOBOA算法,它是初始种群的Cubic映射、幂指数aaa的非线性参数控制策略、PSO算法和BOA的组合。HPSOBOA的伪代码如下图所示。

图3 HPSOBOA算法伪代码

二、仿真实验与结果分析

为了验证HPSOBOA的性能,将其与BOA、GWO、MPA和PSOBOA进行对比,设置种群规模为30,最大迭代次数为500,变量维数为100,每种算法独立运行30次,以文献[1]中F1、F3、F11、F19、F23、F25为例,结果显示如下:





函数:F1
BOA:最差值: 1.0478e-10, 最优值: 6.827e-11, 平均值: 8.5373e-11, 标准差: 9.1295e-12, 秩和检验: 3.0199e-11
GWO:最差值: 2.7543e-12, 最优值: 1.9774e-13, 平均值: 1.1477e-12, 标准差: 7.1768e-13, 秩和检验: 3.0199e-11
MPA:最差值: 7.9029e-19, 最优值: 2.4073e-21, 平均值: 1.5296e-19, 标准差: 1.6315e-19, 秩和检验: 3.0199e-11
PSOBOA:最差值: 6.9971e-150, 最优值: 1.5725e-150, 平均值: 4.1598e-150, 标准差: 1.5452e-150, 秩和检验: 3.0199e-11
HPSOBOA:最差值: 5.0657e-291, 最优值: 1.3586e-291, 平均值: 3.4665e-291, 标准差: 0, 秩和检验: 1
函数:F3
BOA:最差值: 8.5762e-11, 最优值: 5.071e-11, 平均值: 7.0891e-11, 标准差: 7.5767e-12, 秩和检验: 3.0199e-11
GWO:最差值: 5327.5486, 最优值: 16.674, 平均值: 831.3783, 标准差: 1123.4146, 秩和检验: 3.0199e-11
MPA:最差值: 62.0811, 最优值: 0.008634, 平均值: 7.4039, 标准差: 11.7316, 秩和检验: 3.0199e-11
PSOBOA:最差值: 3.291e-148, 最优值: 1.6576e-149, 平均值: 1.3776e-148, 标准差: 9.3966e-149, 秩和检验: 3.0199e-11
HPSOBOA:最差值: 9.0269e-291, 最优值: 2.9765e-293, 平均值: 2.3786e-291, 标准差: 0, 秩和检验: 1
函数:F11
BOA:最差值: 9.2633e-11, 最优值: 6.3128e-11, 平均值: 7.7696e-11, 标准差: 7.4387e-12, 秩和检验: 3.0199e-11
GWO:最差值: 6.1597e-12, 最优值: 3.2253e-13, 平均值: 2.0634e-12, 标准差: 1.3049e-12, 秩和检验: 3.0199e-11
MPA:最差值: 4.7577e-19, 最优值: 1.243e-20, 平均值: 1.0014e-19, 标准差: 1.0248e-19, 秩和检验: 3.0199e-11
PSOBOA:最差值: 3.1816e-148, 最优值: 6.8402e-150, 平均值: 8.0738e-149, 标准差: 6e-149, 秩和检验: 3.0199e-11
HPSOBOA:最差值: 1.726e-290, 最优值: 6.0496e-294, 平均值: 4.5759e-291, 标准差: 0, 秩和检验: 1
函数:F19
BOA:最差值: 6.0445e-09, 最优值: 2.7618e-10, 平均值: 1.7392e-09, 标准差: 1.4347e-09, 秩和检验: 3.0199e-11
GWO:最差值: 0.0094119, 最优值: 0.00054518, 平均值: 0.004253, 标准差: 0.0020408, 秩和检验: 3.0199e-11
MPA:最差值: 1.3555e-11, 最优值: 3.0428e-14, 平均值: 3.2039e-12, 标准差: 2.9902e-12, 秩和检验: 3.0199e-11
PSOBOA:最差值: 6.6447e-75, 最优值: 9.9565e-76, 平均值: 3.8125e-75, 标准差: 1.4796e-75, 秩和检验: 3.0199e-11
HPSOBOA:最差值: 7.93e-146, 最优值: 7.6783e-148, 平均值: 2.2684e-146, 标准差: 1.7789e-146, 秩和检验: 1
函数:F23
BOA:最差值: 74.2999, 最优值: 56.9055, 平均值: 66.0232, 标准差: 3.8495, 秩和检验: 3.0199e-11
GWO:最差值: 40.4395, 最优值: 21.3662, 平均值: 28.3439, 标准差: 4.3098, 秩和检验: 3.0199e-11
MPA:最差值: 14.9872, 最优值: 4.2534, 平均值: 9.679, 标准差: 2.6916, 秩和检验: 2.8716e-10
PSOBOA:最差值: 89.6292, 最优值: 59.0824, 平均值: 80.8961, 标准差: 6.8158, 秩和检验: 3.0199e-11
HPSOBOA:最差值: 11.3602, 最优值: 0.11664, 平均值: 2.0446, 标准差: 2.1448, 秩和检验: 1
函数:F25
BOA:最差值: 0.89556, 最优值: 0.39798, 平均值: 0.41637, 标准差: 0.090528, 秩和检验: 3.0199e-11
GWO:最差值: 1.5919, 最优值: 0.39798, 平均值: 0.89878, 标准差: 0.29035, 秩和检验: 3.0199e-11
MPA:最差值: 0.39798, 最优值: 0.099496, 平均值: 0.23879, 标准差: 0.15146, 秩和检验: 1.9724e-06
PSOBOA:最差值: 0.10062, 最优值: 5.5341e-140, 平均值: 0.049859, 标准差: 0.050711, 秩和检验: 0.00039881
HPSOBOA:最差值: 0.10306, 最优值: 4.4157e-291, 平均值: 0.0268, 标准差: 0.045206, 秩和检验: 1

实验结果表明:HPSOBOA算法可有效提升基本BOA的收敛速度和寻优精度。

三、参考文献

[1] Zhang, M., Long, D., Qin, T., et al. A Chaotic Hybrid Butterfly Optimization Algorithm with Particle Swarm Optimization for High-Dimensional Optimization Problems[J]. Symmetry, 2020, 12(11): 1800.

混合粒子群的混沌蝴蝶优化算法相关推荐

  1. 【MATLAB】混合粒子群算法原理、代码及详解

    目录 1.算法 1.1.原理 1.2.性能比较 1.3.步骤 2.代码 2.1.源码及注释 2.2.执行与效果 1.算法 1.1.原理 \qquad建议没接触过粒子群算法的朋友先看较为基础的全局粒子群 ...

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

    融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 文章目录 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 无限折叠迭代混沌映射的种群初始化 2.2 ...

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

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

  4. 粒子群算法(8)---混合粒子群算法的实现

    混合粒子群算法将全局粒子群算法与局部粒子群算法结合,其速度更新采用公式 其中G(k+1)是全局版本的速度更新公式,而L(k+1)是局部版本的速度更新公式,混合粒子群算法采用H(k+1)的公式. 位置更 ...

  5. 混沌反馈共享和群体协同效应的蝴蝶优化算法—附代码

    混沌反馈共享和群体协同效应的蝴蝶优化算法 文章目录 混沌反馈共享和群体协同效应的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 Hénon混沌映射 2.2 反馈共享机制 2.3 群体协 ...

  6. 融合收敛因子和樽海鞘群的蝴蝶优化算法

    文章目录 一.理论基础 1.蝴蝶优化算法 2.改进策略 (1)收敛因子 (2)融合樽海鞘群领导者策略 (3)CFSSBOA实施步骤 二.仿真实验与分析 三.参考文献 一.理论基础 1.蝴蝶优化算法 请 ...

  7. 融合收敛因子和樽海鞘群的蝴蝶优化算法-附代码

    融合收敛因子和樽海鞘群的蝴蝶优化算法 文章目录 融合收敛因子和樽海鞘群的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 收敛因子 2.2 融合樽海鞘群领导者策略 3.实验结果 4.参考 ...

  8. 基于混合策略改进的蝴蝶优化算法

    文章目录 一.理论基础 1.蝴蝶优化算法 2.正弦余弦算法 3.MSBOA算法(混合策略改进的蝴蝶优化算法) (1)融合改进正弦余弦算法的局部搜索 (2)自适应权重系数 (3)逐维变异策略 二.MSB ...

  9. 基于余弦相似度的改进蝴蝶优化算法

    文章目录 一.理论基础 1.蝴蝶优化算法 2.改进蝴蝶优化算法 (1)基于余弦相似度位置更新策略 (2)根据适应度动态调整转换概率策略 (3)自适应混合惯性权重 二.MSBOA算法步骤 三.仿真实验与 ...

最新文章

  1. oracle9i的全局变量,Oracle9i, 10g 如何抓取绑定变量的值
  2. Tomaso A.Poggio教授丨人工智能的下一个突破点在何处?
  3. git在提交的时候报错:Your branch is up to date with ‘origin/master‘
  4. stdthread(6)并发lockGuard
  5. 【Linux开发】linux设备驱动归纳总结(六):3.中断的上半部和下半部——tasklet...
  6. Java内存泄漏、性能优化、宕机死锁的N种姿势
  7. spring-boot 定时任务
  8. 图论专题考试2 爆零祭
  9. Java实现简单图书管理系统
  10. 笔记本电脑配置知识大全
  11. 天梯赛 - 一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字
  12. python词云生成与设计实现_python简单词云生成
  13. UltraEdit32常用快捷键
  14. 【MySql】简明笔记
  15. MacBook Pro电池维修记
  16. 网桥是什么(配图)mark
  17. serialport串口通信
  18. 结构建模设计——Solidworks软件之特征成型中异形孔向导和线性阵列功能实战总结
  19. android 货币格式化,Android 国际货币格式化的示例代码
  20. 使用DiskGenius进行硬盘数据迁移

热门文章

  1. 语音信箱流程分析 voice mail number
  2. 解释下原型继承的原理。
  3. MVC中使用PartialView方法
  4. 类似outlook日历_在Outlook 2007中重叠日历(就像Google日历一样)
  5. 案例分析 | 宜家以双钻设计模型探索线上零售新业务
  6. C语言scanf()详解
  7. android-----解决Bitmap内存溢出的一种方法(图片压缩技术)
  8. Linux系统快照一键备份恢复、不同机器恢复、增量备份恢复
  9. Windows Embedded CE 6.0 下载地址和序列号
  10. 如何排出清理体内毒素让身体轻松没污染 - 生活至上,美容至尚!