非均匀变异的互利自适应缎蓝园丁鸟优化算法
文章目录
摘要:针对缎蓝园丁鸟算法(SBO)求解精度不高和收敛速度慢等问题,提出一种改进的缎蓝园丁鸟算法(ISBO)。首先,引入非均匀变异算子,动态地调整每次迭代园丁鸟个体的搜索步长,使算法能快速高效地寻求全局最优值;其次,采用互利因子对算法的社会部分引入更多组合模式,使其不再单一围绕前一个园丁鸟附近搜索,以获取更好的最优解;最后,为了更好地平衡算法的局部与全局搜索能力,引入余弦变化的惯性权重因子来更新园丁鸟的位置公式。
1.缎蓝园丁鸟优化算法
基础缎蓝园丁鸟优化算法算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107857884
2.非均匀变异的互利自适应缎蓝园
2.1 非均匀变异
在 SBO 算法早期的迭代中,园丁鸟个体的求偶亭位置通常是远离最优解的,搜索半径太小会造成群体陷入局部最优。在算法后期,园丁鸟个体的求偶亭位置接近最优解,只需要一个非常小的范围作为解向量的微调。标准算法的个体变异寻优方式不利于快速高效地寻求全局最优值。本文引入非均匀变异算子,在前期寻优时,整个种群大范围地搜索,伴随着迭代次数的增加,逐步地缩小搜索范围,动态地调整每次迭代每个园丁鸟个体的求偶亭的搜索步长。假设对求偶亭位置
x
i
=
{
x
i
1
,
x
i
2
,
.
.
.
,
x
i
n
}
T
x_i=\{x_{i1},x_{i2},...,x_{in}\}^T
xi={xi1,xi2,...,xin}T的第
k
k
k个分量执行变异运算,而
x
i
k
x_{ik}
xik 的下界和上界分别记为
v
a
r
m
i
n
var_{min}
varmin 和
v
a
r
m
a
x
var_max
varmax ,则变异后的分量:
x
i
k
′
=
{
x
i
k
+
Δ
(
t
,
v
a
r
m
a
x
−
)
)
x
i
,
k
r
<
0
x
i
k
−
Δ
(
t
,
x
i
k
−
v
a
r
m
i
n
)
r
≥
0
x_{i k}^{\prime}=\left\{\begin{array}{ll} \left.x_{i k}+\Delta\left(t, var_{m a x}-\right)\right)x_{i, k} r<0 \\ x_{i k}-\Delta\left(t, x_{i k}-var_{min} )\right. & r\geq0 \end{array}\right.
xik′={xik+Δ(t,varmax−))xi,kr<0xik−Δ(t,xik−varmin)r≥0
式中,
t
t
t是当前迭代次数;
r
r
r是[0,1]间均匀产生的随机数;
∆
(
t
,
y
)
∆(t, y)
∆(t,y)由下式给出,它是一种自适应调节步长的变异算子,程序前半段它几乎能在整个定义域内大范围搜索,以期发现可能的潜在区域,随着算法的进行,搜索半径依概率减小,到算法临近结束时仅在当前解的狭小邻域内搜索,这样就能保证位置矢量陷入局部最优。
Δ
(
t
,
y
)
=
y
⋅
(
1
−
r
(
1
−
t
/
T
)
b
)
\Delta(t, y)=y \cdot\left(1-r^{(1-t / T)^{b}}\right)
Δ(t,y)=y⋅(1−r(1−t/T)b)
式中,t 是当前迭代次数;T 是最大迭代次数;r 是[0,1]间均匀产生的随机数;b 是决定变异运算非均匀度的系统参数,按文献取值为 5。
2.2 互利因子
标准 SBO 算法的求偶亭位置更新公式产生的新求偶亭直接替换原求偶亭,存在以下缺点:第 i个求偶亭位置会根据由轮盘赌方式选择的第 j 个求偶亭位置和当前种群最优求偶亭位置进行更新,对随机选择的第 j 个求偶亭个体依懒性较强,缺乏与其它个体学习的部分。为增加 SBO 算法的种群多样性。本文提出引入互利因子对园丁鸟的求偶亭位置进行更新,公式如下:
x
i
k
t
=
x
i
k
t
+
φ
×
(
x
b
e
s
t
−
C
×
R
)
x_{i k}^{t}=x_{i k}^{t}+\varphi \times\left(x_{\mathrm{b} \mathrm{e} \mathrm{st}}-C \times R\right)
xikt=xikt+φ×(xbest−C×R)
C = ( x h + x m ) / 2 \mathrm{C}=\left(x_{\mathrm{h}}+x_{m}\right) / 2 C=(xh+xm)/2
式中, φ φ φ是(0,1)之间的随机数; x b e s t , k x_{best,k} xbest,k 为整个种群当前的最优位置的第 k k k维分量; C C C即为互利因子,代表园丁鸟种群中第 h h h和 m m m个求偶亭的关系特征, R R R为受益参数,随机选取 1 或 2。由式新产生的位置矢量需判断适应度值是否优劣后再替换原有个体。
2.3自适应惯性权重
为了更好地平衡算法的局部与全局搜索能力,本文引入余弦变化的惯性权重因子来更新园丁鸟求偶亭的位置公式:
x
i
k
t
+
1
=
ω
(
t
)
×
x
i
k
t
+
λ
k
(
(
x
j
k
+
x
best
,
k
2
)
−
x
i
k
t
)
x_{i k}^{t+1}=\omega(t) \times x_{i k}^{t}+\lambda_{k}\left(\left(\frac{x_{j k}+x_{\text {best }, k}}{2}\right)-x_{i k}^{t}\right)
xikt+1=ω(t)×xikt+λk((2xjk+xbest ,k)−xikt)
ω ( t ) = ( ω min + ω max ) / 2 + ( ω max − ω min ) cos ( t π / T ) \omega(t)=\left(\omega_{\min }+\omega_{\max }\right) / 2+\left(\omega_{\max }-\omega_{\min }\right) \cos (\mathrm{t} \pi / \mathrm{T}) ω(t)=(ωmin+ωmax)/2+(ωmax−ωmin)cos(tπ/T)
其中, ω m a x ω_{max} ωmax 为初始惯性权重, ω m i n ω_{min} ωmin 为迭代结束时的惯性权重,t 为当前迭代次数,T 为最大迭代次数。惯性权重 ω m a x ω_{max} ωmax =0.95, ω m i n ω_{min} ωmin =0.4 时算法具有最佳性能。因此,随着迭代的进行,惯性权重从 0.95 非线性递减至 0.4,使得迭代初始阶段较大的惯性权重能让算法保持较好的搜索能力,而迭代后期较小的惯性权重则有助于提高算法的开发能力。
算法流程图如下:
3.实验结果
5.参考文献
[1]王依柔,张达敏,樊英.非均匀变异的互利自适应缎蓝园丁鸟优化算法[J/OL].计算机工程与科学:1-10[2020-11-23].http://kns.cnki.net/kcms/detail/43.1258.TP.20200803.1202.004.html.