文章目录

  • 一、理论基础
    • 1、蝴蝶优化算法
    • 2、改进蝴蝶优化算法
      • (1)基于余弦相似度位置更新策略
      • (2)根据适应度动态调整转换概率策略
      • (3)自适应混合惯性权重
  • 二、MSBOA算法步骤
  • 三、仿真实验与结果分析
    • 1、与原算法对比
    • 2、与已有文献算法对比
  • 四、参考文献

一、理论基础

1、蝴蝶优化算法

请参考这里。

2、改进蝴蝶优化算法

(1)基于余弦相似度位置更新策略

引入余弦相似度衡量最优蝴蝶位置与周围蝴蝶的分布情况,通过构造当前蝴蝶个体位置和最优个体之间的向量,余弦相似度为分布情况的指标,更新余弦相似度较高且适应度较差的蝴蝶个体位置,既加快算法收敛的速度,也保持了种群的多样性。策略具体细节如下:
首先构建a,b\boldsymbol{a,b}a,b向量:a=xit−g∗b=xjt−g∗(1)\begin{aligned}\boldsymbol a=\boldsymbol x_i^t-\boldsymbol g^*\\ \boldsymbol b=\boldsymbol x_j^t-\boldsymbol g^*\end{aligned}\tag{1}a=xit​−g∗b=xjt​−g∗​(1)其中,第ttt次迭代的当前蝴蝶位置,记为xit\boldsymbol x_i^txit​。xjt\boldsymbol x_j^txjt​表示第ttt次迭代其他蝴蝶位置中的一个,g∗\boldsymbol g^*g∗为第ttt代中最优蝴蝶的位置。
定义cos⁡j(a,b)\cos_j(\boldsymbol a, \boldsymbol b)cosj​(a,b)为两个向量之间的余弦相似度,取值范围为[−1,1][-1,1][−1,1],个体位置之间相似度计算公式为:cos⁡j(a,b)=a⋅b∣a∣∣b∣(2)\cos_j(\boldsymbol a, \boldsymbol b)=\frac{\boldsymbol{a\cdot b}}{|\boldsymbol a||\boldsymbol b|}\tag{2}cosj​(a,b)=∣a∣∣b∣a⋅b​(2)其中,分子为向量a,b\boldsymbol a,\boldsymbol ba,b的内积,分母为向量a,b\boldsymbol a, \boldsymbol ba,b的模之积。
位置更新公式如下:{xjt=g∗+α1n∣∣xjt∣∣2Rrg∗f(xjt)≥f(xit)xit=xit+δRexitotherwise(3)\begin{dcases}\boldsymbol x_j^t=\boldsymbol g^*+\alpha\frac{1}{n||\boldsymbol x_j^t||_2}\boldsymbol R_r\boldsymbol g^*\quad f(\boldsymbol x_j^t)≥f(\boldsymbol x_i^t)\\\boldsymbol x_i^t=\boldsymbol x_i^t+\delta\boldsymbol R_e\boldsymbol x_i^t\quad \quad \quad \quad \,\,\,\,otherwise\end{dcases}\tag{3}⎩⎨⎧​xjt​=g∗+αn∣∣xjt​∣∣2​1​Rr​g∗f(xjt​)≥f(xit​)xit​=xit​+δRe​xit​otherwise​(3)其中f(xit)f(\boldsymbol x_i^t)f(xit​)和f(xjt)f(\boldsymbol x_j^t)f(xjt​)分别为蝴蝶个体xit\boldsymbol x_i^txit​和xjt\boldsymbol x_j^txjt​的适应度值,α\alphaα为旋转因子;Rr∈Rn×n\boldsymbol R_r∈\boldsymbol R^{n×n}Rr​∈Rn×n是一个其元素取值在 [−1,1][-1,1][−1,1]之间均匀分布的随机矩阵,∣∣⋅∣∣||\boldsymbol\cdot||∣∣⋅∣∣为向量2-范数,理论上能将位置旋转到以半径为α\alphaα的任何位置。Re∈Rn×nR_e∈R^{n×n}Re​∈Rn×n是一个其非零元素取值服从高斯分布随机对角矩阵,从理论上看,能将位置伸缩到服从δ\deltaδ的范围内。

(2)根据适应度动态调整转换概率策略

本文采用文献[1]所提出的自适应机制来描述切换概率,并且做了改进。如公式(1)所示。Pit=Pmin+(log(∣fmint∣)+∣fmint∣log(∣fit∣)+∣fit∣)×(Pmax−Pmin)(4)P_i^t=P_{min}+\left(\frac{log(|f_{min}^t|)+|f_{min}^t|}{log(|f_i^t|)+|f_i^t|}\right)×(P_{max}-P_{min})\tag{4}Pit​=Pmin​+(log(∣fit​∣)+∣fit​∣log(∣fmint​∣)+∣fmint​∣​)×(Pmax​−Pmin​)(4)其中,PitP_i^tPit​是在第ttt次迭代中第iii只蝴蝶个体位置的切换概率,PminP_{min}Pmin​和PmaxP_{max}Pmax​分别是切换概率的最小值和最大值,fmintf_{min}^tfmint​表示第ttt次迭代的最好适应度,fitf_i^tfit​表示在第ttt次迭代第iii只蝴蝶的适应度。蝴蝶位置对应的适应度接近最优的适应度时,其切换的概率接近大值,更容易进入全局的引导;反之当前个体的适应度与最好的适应度相差较大时,其转换概率接近最小值,更容易进入局部的引导。这样有利于将好的个体引导全局,较差的个体得到更多的机会引导。

(3)自适应混合惯性权重

为了协调算法的全局和局部搜索能力引入了自适应惯性权重(5)。w=β×(1−exp⁡(∣fmint∣)+∣fmint∣exp⁡(∣fit∣)+∣fit∣)+K(5)w=\beta×\left(1-\frac{\exp(|f_{min}^t|)+|f_{min}^t|}{\exp(|f_i^t|)+|f_i^t|}\right)+K\tag{5}w=β×(1−exp(∣fit​∣)+∣fit​∣exp(∣fmint​∣)+∣fmint​∣​)+K(5)其中,KKK为调整过的sigmoidsigmoidsigmoid函数(6)。K=1−1/(1+exp⁡(−(−15t−7Max_iter)/Max_iter))(6)K=1-1/(1+\exp(-(-15t-7Max\_iter)/Max\_iter))\tag{6}K=1−1/(1+exp(−(−15t−7Max_iter)/Max_iter))(6)KKK值是调整过的sigmoidsigmoidsigmoid函数,该函数是神经网络中最常用的激活函数之一。该函数在线性和非线性之间展现出极好的平衡性,拥有平滑的上界域和下边界域。在迭代前期参数KKK能保持较大值,延长初期阶段的全局搜索能力和强度。伸缩的范围较大,保留个体的多样性。中期K值随着迭代次数的增加而减少,从而加快算法的收敛速度。在迭代后期的一段保持一个较小的权重,延长了迭代后期的局部搜索时间,更有利于进行局部搜索,更新后的全局阶段搜索过程用公式(7)表示。xit+1=wxit+(r2×g∗−xit)×f(7)\boldsymbol x_i^{t+1}=w\boldsymbol x_i^t+(\boldsymbol r^2×\boldsymbol g^*-\boldsymbol x_i^t)×f\tag{7}xit+1​=wxit​+(r2×g∗−xit​)×f(7)其中,参数β\betaβ为影响程度因子。蝴蝶个体适应度接近当前最好的适应度时,其权重接近最小值,较小的权重有利于进行局部开发;反之当前个体的适应度与最好的适应度相差较大时,其权重接近最大值,保留当前个体的更多信息,下一次迭代保持较强的全局搜索能力。

二、MSBOA算法步骤

多策略改进蝴蝶优化算法(MSBOA)的基本流程如下:
Step 1:初始化。初始化算法参数,随机生成种群位置,计算适应度并择优保存。
Step 2:蝴蝶位置更新阶段。根据式(1)构建向量,并根据式(2)计算蝴蝶个体位置的余弦相似度,设置阈值CCC将相似度高于阈值的蝴蝶位置通过式(3)进行位置更新。
Step 3: 计算当前个体适应度,并根据式(4)计算PPP值判断当前迭代当前个体是进行全局搜索还是局部搜索,并通过式(5)计算当前个体的自适应惯性权重,更新蝴蝶位置。
Step 4: 计算位置更新后每只蝴蝶所在位置适应度,并且更新最优位置。
Step 5: 重复Step 2、Step 3和Step 4的更新迭代过程,若达到设置收敛精度要求或规定的最大迭代次数,终止算法并输出最优解。

三、仿真实验与结果分析

1、与原算法对比

将MSBOA算法与基于余弦相似度位置更新策略的BOA1算法,结合动态调整概率策略的BOA2算法,增加自适应混合惯性权重的BOA3算法以及基本的BOA算法进行比较,验证不同改进策略的有效性。独立运行30次。以F1~F3为例。
下图为对函数F1的寻优对比曲线。
5种算法的最大值、最小值、平均值及标准差显示如下:

函数:F1
BOA:最大值: 1.4873e-11,最小值:1.1842e-11,平均值:1.3085e-11,标准差:7.8596e-13
BOA1:最大值: 1.2976e-12,最小值:4.8647e-14,平均值:2.5993e-13,标准差:2.4962e-13
BOA2:最大值: 1.4247e-11,最小值:1.1195e-11,平均值:1.2618e-11,标准差:8.3223e-13
BOA3:最大值: 5.7668e-131,最小值:0,平均值:1.9223e-132,标准差:1.0529e-131
MSBOA:最大值: 0,最小值:0,平均值:0,标准差:0

下图为对函数F2的寻优对比曲线。

5种算法的最大值、最小值、平均值及标准差显示如下:

函数:F2
BOA:最大值: 5.7262e-09,最小值:1.999e-09,平均值:4.5713e-09,标准差:1.2576e-09
BOA1:最大值: 1.2196e-09,最小值:1.0712e-10,平均值:3.6748e-10,标准差:2.2777e-10
BOA2:最大值: 8.7251e-09,最小值:5.2145e-09,平均值:6.5784e-09,标准差:8.9912e-10
BOA3:最大值: 8.1849e-282,最小值:0,平均值:2.7283e-283,标准差:0
MSBOA:最大值: 0,最小值:0,平均值:0,标准差:0

下图为对函数F3的寻优对比曲线。
5种算法的最大值、最小值、平均值及标准差显示如下:

函数:F3
BOA:最大值: 1.3987e-11,最小值:1.0692e-11,平均值:1.2555e-11,标准差:8.4149e-13
BOA1:最大值: 7.789e-12,最小值:2.1539e-12,平均值:5.4507e-12,标准差:1.8653e-12
BOA2:最大值: 1.3196e-11,最小值:8.5686e-12,平均值:1.0695e-11,标准差:1.1149e-12
BOA3:最大值: 1.6424e-56,最小值:0,平均值:5.4747e-58,标准差:2.9986e-57
MSBOA:最大值: 0,最小值:0,平均值0,标准差:0

2、与已有文献算法对比

将MSBOA算法与向量粒子群算法(Phasor Particle Swarm Optimization,PPSO)[2],改进的灰狼优化算法(An improved grey wolf optimization,IGWO)[3],对数惯性权重和高斯差分变异策略的鲸群算法(Whale Optimization Algorithm based on Logarithmic inertia weight and Gaussian difference mutation,IGWOA)[4]以 及 优 选 策 略 的 自 适 应 蚁 狮 优 化 算 法[5](Preferred Strategy Self-adaptive ALO,PSALO),基于折射反向学习与自适应控制因子的改进樽海鞘群算法(Modified SSA Based on Refracted Oppositional Learning and Adaptive Control Factor,RCSSA)[6]。独立运算30次进行比较,验证改进算法的优越性。以F1~F3为例。
下图为对函数F1的寻优对比曲线。
6种算法的最大值、最小值、平均值及标准差显示如下:

函数:F1
PPSO:最大值: 0.1012,最小值:0.00010734,平均值:0.022354,标准差:0.024799
IGWO:最大值: 5.7749e-315,最小值:5.8029e-316,平均值:2.8935e-315,标准差:0
IGWOA:最大值: 0,最小值:0,平均值:0,标准差:0
PSALO:最大值: 1.7605e-09,最小值:2.4675e-11,平均值:3.8461e-10,标准差:4.3313e-10
RCSSA:最大值: 0,最小值:0,平均值:0,标准差:0
MSBOA:最大值: 0,最小值:0,平均值:0,标准差:0

下图为对函数F2的寻优对比曲线。
6种算法的最大值、最小值、平均值及标准差显示如下:

函数:F2
PPSO:最大值: 2.3202,最小值:0.011792,平均值:0.66735,标准差:0.51065
IGWO:最大值: 3.5055e-158,最小值:9.976e-159,平均值:1.9556e-158,标准差:6.525e-159
IGWOA:最大值: 1.5589e-186,最小值:3.886e-198,平均值:6.6509e-188,标准差:0
PSALO:最大值: 2.4964e-05,最小值:2.4291e-06,平均值:7.7968e-06,标准差:5.0552e-06
RCSSA:最大值: 2.3135e-173,最小值:1.6686e-173,平均值:1.999e-173,标准差:0
MSBOA:最大值: 0,最小值:0,平均值:0,标准差:0

下图为对函数F3的寻优对比曲线。
6种算法的最大值、最小值、平均值及标准差显示如下:

函数:F3
PPSO:最大值: 1.2508,最小值:1.1228e-07,平均值:0.14186,标准差:0.26569
IGWO:最大值: 8.9925e-303,最小值:1.2995e-304,平均值:1.5428e-303,标准差:0
IGWOA:最大值: 0,最小值:0,平均值:0,标准差:0
PSALO:最大值: 3.3382e-08,最小值:3.3207e-09,平均值:1.4187e-08,标准差:8.2333e-09
RCSSA:最大值: 0,最小值:0,平均值:0,标准差:0
MSBOA:最大值: 0,最小值:0,平均值:0,标准差:0

综上可知,对于以上基本测试函数,MSBOA都有较优的稳定性以及寻优能力,有效的解决BOA算法求解精度不高的问题。

四、参考文献

[1] 宋钰, 石立宝. 参数动态调整的自适应布谷鸟算法[J]. 计算机工程与应用, 2020, 56(23): 61-67.
[2] Ghasemi, M., Akbari, E., Rahimnejad, A. et al. Phasor particle swarm optimization: a simple and efficient variant of PSO[J]. Soft Computing, 2019, 23: 9701-9718.
[3] 龙文, 伍铁斌. 协调探索和开发能力的改进灰狼优化算法[J]. 控制与决策, 2017, 32(10): 1749-1757.
[4] 陈雷, 尹钧圣. 高斯差分变异和对数惯性权重优化的鲸群算法[J]. 计算机工程与应用, 2021, 57(2): 77-90.
[5] 刘景森, 霍宇, 李煜. 优选策略的自适应蚁狮优化算法[J]. 模式识别与人工智能, 2020, 33(2): 121-132.
[6] 范千, 陈振健, 夏樟华. 一种基于折射反向学习机制与自适应控制因子的改进樽海鞘群算法[J]. 哈尔滨工业大学学报, 2020, 52(10): 183-191.
[7] 陈俊, 何庆. 基于余弦相似度的改进蝴蝶优化算法[J]. 计算机应用, 2021, 41(9): 2668-2677.

基于余弦相似度的改进蝴蝶优化算法相关推荐

  1. 融合差分变异策略和自适应调整权重的改进蝴蝶优化算法

    文章目录 一.理论基础 1.基本蝴蝶优化算法 2.DMABOA改进算法 (1)引入非线性惯性权重 (2)加入具有全局自适应特征的F分布随机变异 (3)融入差分定向变异策略的局部搜索 3.DMABOA算 ...

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

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

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

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

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

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

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

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

  6. 【LEACH协议】基于matlab蝴蝶优化算法WSN安全分簇路由设计【含Matlab源码 2567期】

    ⛄一.蝴蝶优化算法(MBO)简介 1 介绍 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算法.该算法受 ...

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

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

  8. 基于 Iterative 映射和单纯形法的改进灰狼优化算法-附代码

    基于 Iterative 映射和单纯形法的改进灰狼优化算法 文章目录 基于 Iterative 映射和单纯形法的改进灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法(SMIGWO) 2.1 混沌 ...

  9. 基于改进鲸鱼优化算法的WSN覆盖优化

    文章目录 一.理论基础 1.WSN节点覆盖模型 2.基本鲸鱼算法 3.改进鲸鱼优化算法 (1)量子位Bloch球面初始化 (2)改进搜索猎物过程 (3)莱维飞行扰动策略 二.算法流程 三.仿真实验与分 ...

最新文章

  1. 深度学习已至“瓶颈”?英特尔:数据处理是一剂良药
  2. UIActionSheet和UIProgressView的组合
  3. mysql max connects_mysql max_connections 总是 4190
  4. 使用 GMap.NET 实现添加标注、移动标注功能。(WPF版)
  5. 启明云端用一张表格带你了解sigmastar SSD20x系列的区别!帮助你快速完成选型!
  6. 将变量区分_【统计学】区分定类、定序、定距、定比变量!
  7. 软考高级 真题 2011年上半年 信息系统项目管理师 综合知识
  8. xbox360使用_从Xbox360浏览网页
  9. 电子密码锁程序C语言,基于51单片机的电子密码锁程序
  10. win7系统无法连接蓝牙的强推方案
  11. 快狗打车CTO沈剑:怕什么技术无穷尽?进一寸有一寸的欢喜
  12. 美式口语发音技巧:《发音总结》
  13. 【微信支付付款至零钱】
  14. 滤波算法一(C程序)
  15. App自动化测试之Java平台下使用Appium测试App(一)
  16. html 白色用rgba,javascript – 将RGB转换为RGBA白色
  17. Set集合下的奇葩,TreeSet有序而且类型相同
  18. iOS:app直播---原理篇
  19. 19个免费的ppt制作网站
  20. Python数据分析的bs4用法

热门文章

  1. 记一次SPA项目打包优化的过程
  2. widnows ,mongodb 复制代码,无法粘贴到cmd中
  3. 网页自动关机代码HTML,电脑如何自动关机
  4. 基于stm32f407的无线视屏传输项目
  5. 永不停歇(obama在亚利桑那州治大学毕业典礼上的演讲)
  6. [iOS]转让APP
  7. 学习编程过程中-->遇到的错误
  8. 台式计算机报废如何进行处置,设备报废处置请示.doc
  9. Google之Stopwatch 计时器
  10. 关于科傻软件的使用感受