蝴蝶利用自身的感知器定位食物的来源。该算法中,假设每只蝴蝶产生一定强度的香味,这些香味会传播并被区域内的其它蝴蝶感知。每只蝴蝶释放出的香味与它的适应度有关。这就意味着当一只蝴蝶移动了位置,它的适应度也将随之变化。当蝴蝶感觉到另一只蝴蝶在这个区域散发出更多的香味时,就会去靠近,这个阶段被称为全局搜索。另外一种情况,当蝴蝶不能感知大于它自己的香味时,它会随机移动,这个阶段称为局部搜索阶段。
香味是根据 刺 激 的 物 理 强 度 来 表 述 的。其 计 算 如 式(1)所示:
f
=
c
I
α
(1)
f=cI^\alpha ag{1}
f=cIα(1)
蝴蝶产生的香味涉及到 3 个参数,分别为感觉因子
c
c
c,刺激强度
I
I
I和幂指数
α
\alpha
α。刺激强度与蝴蝶 (解)的适应度相关。
该算法有两个关键步骤:全局搜索阶段和局部搜索阶段。在全局搜索阶段,蝴蝶将向最优解
g
?
g^*
g? 移动,可表示为:
x
i
t
+
1
=
x
i
t
+
(
r
2
?
g
?
?
x
i
t
)
?
f
i
(2)
x_i^{t+1}=x_i^{t}+(r^2*g^*-x_i^t)*f_i ag{2}
xit+1?=xit?+(r2?g??xit?)?fi?(2)
其中,
x
i
t
x_i^t
xit?表示第
i
i
i个蝴蝶在第
t
t
t次迭代中的解向量。这里
g
?
g^*
g? 表示目 前 为 止 的 最 优 解。第
i
i
i只 蝴 蝶 的 香 味 用
f
i
f_i
fi?来表示,r为0到1的随机数。
局部搜索可表示为
x
i
t
+
1
=
x
i
t
+
(
r
2
?
x
k
t
?
x
j
t
)
?
f
i
(3)
x_i^{t+1}=x_i^t+(r^2*x_k^t-x_j^t)*f_i ag{3}
xit+1?=xit?+(r2?xkt??xjt?)?fi?(3)
其中r为0到1的随机数,
x
k
t
x_k^t
xkt?和
x
j
k
x_j^k
xjk? 表示从解空间中随机选择的第
k
k
k只和第
j
j
j只蝴蝶。在蝴蝶的觅食过程中,全局和局部搜索都会发生,为此,设定一个开关概率
p
p
p来转换普通的全局搜索和密集的局部搜索。每次迭代用式(4)随机产生一个数
r
r
r,与开关概率
p
p
p进行比较来决定进行全局搜索还是局部搜索。
r
=
r
a
n
d
(
0
,
1
)
(4)
r=rand(0,1) ag{4}
r=rand(0,1)(4)
(1) 计算适应度函数
f
(
x
)
,
x
=
(
x
1
,
.
.
.
,
x
d
i
m
)
f(x),x=(x1,...,xdim)
f(x),x=(x1,...,xdim)
(2) 给每个蝴蝶生成
n
n
n个初始解
x
i
=
(
i
=
1
,
2
,
.
.
.
,
n
)
x_i=(i=1,2,...,n)
xi?=(i=1,2,...,n)
(3) 声明变量
c
,
α
,
g
?
,
p
c,\alpha,g^*,p
c,α,g?,p
(4) while未到终止条件do
(5) for每一个蝴蝶do
(6) 采用式(1)计算其香味函数
f
f
f
(7) end for
(8) 找出最优的香味函数
f
f
f,并赋值给
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) 输出最优解 .
[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.
蝴蝶优化算法
改进算法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(原理一样,只是优化算法部分用蝴蝶算法) |
改进算法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. |