基础蝴蝶优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107855860
为进一步增强 BOA 算法的探索能力和提高收玫精度, 受到鲸鱼优化算法的启发, 将鲸鱼优化算法中非线性收玫 因子
a
a
a 引入基本蝴蝶优化算法的全局位置更新处, 希望迭 代前期
a
a
a 值较大以增强全局勘探能力且递减速度较快, 而 迭代后期
a
a
a 值收玫到较小值且递减速度变缓慢, 以实现前 期快速收玫, 提高算法后期的收玫精度。
a
a
a 随着迭代次数的 增加由 2 减小到 0 。公式如下
a
=
2
−
t
/
t
max
(4)
a=2-t / t_{\max } \tag{4}
a=2−t/tmax(4)
式中:
t
t
t 是当前迭代次数,
t
max
t_{\max }
tmax 是最大迭代次数。
改进后全局位置更新公式如下
x
i
t
+
1
=
a
x
i
t
+
(
r
2
×
g
∗
−
x
i
t
)
×
f
i
(5)
x_{i}^{t+1}=a x_{i}^{t}+\left(r^{2} \times g^{*}-x_{i}^{t}\right) \times f_{i} \tag{5}
xit+1=axit+(r2×g∗−xit)×fi(5)
黄金正弦算法 (golden sine algorithm, Golden-SA)
[
8
]
{ }^{[8]}
[8]
是 Tanyildizi 提出的新型元启发式算法。根据正弦函数定义 中与单位圆的关系, 遍历单位圆上所有正弦值的行为与优 化算法中搜索代理在搜索空间中进行寻优的原理是一致的, 受此启发产生了黄金正弦算法。在该算法中, 创建随机个 体的数量与每个具有均匀分布的搜索代理的数量相同。与 其它元启发式方法相比, Gold-SA 具有更少的依赖于算法 的参数和运算符, Gold-SA 算法通过使当前解空间更接近 目标值的方式来搜索以在每次迭代中得到更好的搜索空间, 搜索空间被黄金比例系数缩小以便获得更小的解空间而不 是整个解空间, 从而有效提升寻优速度。黄金正弦算法的 具体定义及推导过程请参考文献
[
8
,
11
,
12
]
[8,11,12]
[8,11,12] 。
Gold-SA 算法的主要过程是其解的更新过程, 首先随 机产生
n
n
n 个个体的位置, 假设优化问题的每个解对应搜索 空间中对应个体的位置, 并用
x
i
t
x_{i}^{t}
xit 表示
D
D
D 维个体空间中第
i
i
i 个个体的解向量,
x
i
s
=
(
x
i
,
1
,
x
i
,
2
,
⋯
,
x
i
,
D
)
(
i
=
1
,
2
,
⋯
,
n
;
t
=
x_{i}^{s}=\left(x_{i, 1}, x_{i, 2}, \cdots, x_{i, D}\right)(i=1,2, \cdots, n ; t=
xis=(xi,1,xi,2,⋯,xi,D)(i=1,2,⋯,n;t=
1
,
2
,
⋯
,
t
max
)
,
t
max
\left.1,2, \cdots, t_{\max }\right), t_{\max }
1,2,⋯,tmax),tmax 是最大迭代次数,
g
∗
g^{*}
g∗ 是第
t
t
t 次迭代中的最 优位置, 第
i
i
i 个个体位置更新公式如式 (6) 所示
x
i
t
+
1
=
x
i
t
∗
∣
sin
(
r
1
)
∣
+
r
2
∗
sin
(
r
1
)
∗
∣
θ
1
∗
g
∗
−
θ
2
∗
x
i
t
∣
(6)
x_{i}^{t+1}=x_{i}^{t} *\left|\sin \left(r_{1}\right)\right|+r_{2} * \sin \left(r_{1}\right) *\left|\theta_{1} * g^{*}-\theta_{2} * x_{i}^{t}\right|\tag{6}
xit+1=xit∗∣sin(r1)∣+r2∗sin(r1)∗∣
∣θ1∗g∗−θ2∗xit∣
∣(6)
式中:
r
1
r_{1}
r1 和
r
2
r_{2}
r2 是随机数,
r
1
r_{1}
r1 决定算法在下一次迭代中个体的 移动距离,
r
1
∈
[
0
,
2
π
]
,
r
2
r_{1} \in[0,2 \pi], r_{2}
r1∈[0,2π],r2 控制下一次迭代中第
i
i
i 个个体的 位置更新方向,
r
2
∈
[
0
,
π
]
;
θ
1
r_{2} \in[0, \pi] ; \theta_{1}
r2∈[0,π];θ1 和
θ
2
\theta_{2}
θ2 是引人黄金比例系数获得 的系数, 它们缩小了搜索空间, 并且指引个体逐步向最优值 靠近, 提高了算法的收玫速度, 黄金分比例系数
τ
\tau
τ 是一个无
理数
τ
=
(
5
−
1
)
/
2
≈
0.618033
,
⋯
,
θ
1
=
a
∗
τ
+
b
∗
(
1
−
τ
)
\tau =(\sqrt{5}-1) / 2 \approx 0.618033, \cdots, \theta_{1}=a * \tau+b *(1-\tau)
τ=(5−1)/2≈0.618033,⋯,θ1=a∗τ+b∗(1−τ),
a
a
a 和
b
b
b 的初始值取
−
π
-\pi
−π 和
π
\pi
π, 在迭代过程中,
a
a
a 和
b
b
b 的值会随着目标函数值的变化而变化,
θ
1
\theta_{1}
θ1 和
θ
2
\theta_{2}
θ2 的值也随之更新。
本文将黄金正弦算法作为局部算子融人基本
B
O
A
\mathrm{BOA}
BOA 中, 在迭代后期对整个 BOA算法进行黄金正弦优化, 能够弥补 算法在迭代后期的收玫速度慢, 收玫精度不高的缺陷, 基 本的
B
O
A
\mathrm{BOA}
BOA 算法在局部搜索阶段采用随机游走的方式, 搜索 空间比较广泛; 然而元启发式算法的主要目标是探索被认 为是最佳搜索空间的区域, 并确保尽可能完整地扫描这些 区域, 搜索空间的广泛性是解决问题的主要问题。在解决 问题时缩小搜索空间的效果会显著影响寻优效果, 而在 Gold-SA 算法中的参数
r
1
r_{1}
r1 和
r
2
r_{2}
r2 能够有效控制位置更新距离 和方向, 逐步缩小搜索空间, 指引蝴蝶个体迅速向最优个 体靠近, 加快种群中信息交流, 降低算法陷人局部最优值 的可能性, 从而提高算法的收玫速度和寻优精度。本文提 出的融合非线性收玫因子和黄金正弦指引机制的蝴蝶优化 算法(AGSABOA)的具体步骤如下。
[1]高文欣,刘升,肖子雅,于建芳.收敛因子和黄金正弦指引机制的蝴蝶优化算法[J].计算机工程与设计,2020,41(12):3384-3389.