基础樽海鞘群算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107767869
2.1.1 引入上一代樽海鞘领导者位置
在基本楢海鞘群算法中, 樽海鞘领导者从迭代 开始就奔向全局最优值, 导致全局搜索不充分, 容 易陷入局部极值区域,造成算法有时收敛精度较低。 本文在领导者位置更新公式中引入上一代樽海鞘领 导者位置, 使得领导者在位置更新阶段既受上一代 楢海鞘领导者位置的影响, 同时又受上一代全局最 优解的影响, 有效地避免了基本算法易陷入局部极 值的问题, 提高了算法的寻优精度。改进后的樽海 鞘领导者位置更新公式为:
X
j
i
(
t
)
=
X
j
i
(
t
−
1
)
+
(
FoodPosition
j
(
t
−
1
)
−
X
j
i
(
t
−
1
)
)
⋅
rand
(5)
X_j^i(t)=X_j^i(t-1)+\left(\text { FoodPosition }_j(t-1)-X_j^i(t-1)\right) \cdot \operatorname{rand} \tag{5}
Xji(t)=Xji(t−1)+( FoodPosition j(t−1)−Xji(t−1))⋅rand(5)
其中,
X
j
i
(
t
−
1
)
X_j^i(t-1)
Xji(t−1) 为上一代中第
i
i
i 个樽海鞘领导 者在第
j
j
j 维的位置, FoodPosition
(
t
−
1
)
(t-1)
(t−1) 为上一代 中第
j
j
j 维的全局最优解, 通过引入上一代的位置, 楢 海鞘领导者能够更有效地进行全局搜索, 增强算法 跳出局部极值的能力。
2.1.2 引入惯性权重
本文还在领导者位置更新公式中引入动态惯性权重,随迭代次数自适应递减的惯性权重 w 表示了樽海鞘领导者受全局最优解影响程度的变化。在迭代前期,领导者受全局最优解影响较大,有较大的全局搜索步幅,能够更快速地找到全局最优区域。而在迭代后期,大部分樽海鞘都已达到较优值,领导者受全局最优解影响变小, 领导者可以在最优解附 近深度挖掘, 提高了算法的收敛精度。本文中惯性 权重的计算公式为:
w
=
e
2
⋅
(
1
−
t
/
M
a
x
i
t
e
r
)
−
e
−
2
⋅
(
1
−
t
/
M
a
x
i
t
e
r
)
e
2
⋅
(
1
−
t
/
M
a
x
i
t
e
r
)
+
e
−
2
⋅
(
1
−
t
/
M
a
x
i
t
e
r
)
(6)
w=\frac{e^{2 \cdot(1-t / { Max_iter })}-e^{-2 \cdot(1-t / { Max_iter })}}{e^{2 \cdot(1-t / { Max_iter) }}+e^{-2 \cdot(1-t / { Max_iter })}} \tag{6}
w=e2⋅(1−t/Maxiter)+e−2⋅(1−t/Maxiter)e2⋅(1−t/Maxiter)−e−2⋅(1−t/Maxiter)(6)
结合公式 (5)、(6), 新的楢海鞘领导者位置更 新公式为:
X
j
i
(
t
)
=
X
j
i
(
t
−
1
)
+
(
w
⋅
FoodPosition
j
(
t
−
1
)
−
X
j
i
(
t
−
1
)
)
⋅
rand
(7)
Xij(t)=Xij(t−1)+(w⋅ FoodPosition j(t−1)−Xij(t−1))⋅ rand \tag{7}
Xji(t)=Xji(t−1)+(w⋅ FoodPosition j(t−1)−Xji(t−1))⋅ rand (7)
其中,惯性权重
w
w
w 为基于双曲正切函数的非线 性递减值, 其取值范围为
(
0
,
1
)
,
t
(0,1), t
(0,1),t 为当前迭代次数,
M
a
x
−
M a x_{-}
Max−iter 为最大迭代次数,
X
j
i
(
t
−
1
)
X_j^i(t-1)
Xji(t−1) 为上一代中第
i
\mathrm{i}
i 个楢海鞘领导者在第
j
\mathrm{j}
j 维的位置, FoodPosition
(
t
−
(t-
(t− 1) 为上一代中第
j
j
j 维的全局最优解。通过引入惯性 权重, 使得改进后的算法能够在全局和局部搜索之 间保持较好平衡, 樽海鞘领导者更好地发挥领导者 作用, 提高算法的寻优精度。
在基本 SSA 算法中,樽海鞘领导者和跟随者的数目始终是各占种群中个体数的一半,这就使得在迭代前期,执行全局搜索的领导者比例过低,跟随者比例过高,领导者无法有效地进行全局搜索,全局搜索不充分,容易陷入局部最优;而在迭代后期,执行局部搜索的跟随者比例过低,局部搜索不够充分,容易造成寻优精度不高。针对此问题,本文引领导者-跟随者自适应调整策略,樽海鞘领导者的数目随迭代次数的增加自适应减少,跟随者数目自适应增加,在算法前期能够保持很强的全局搜索能力,同时兼顾局部搜索,而在算法运行后期,局部搜索逐渐增强,同时也兼顾全局搜索,从整体上提高了算法的收敛精度。改进后的领导者-跟随者数量计算公式为:
每代中领导者数量等于
r
⋅
N
r \cdot N
r⋅N
跟随者数量等于
(
1
−
r
)
N
(1-r) N
(1−r)N
r
=
b
⋅
(
tan
(
−
π
t
4
⋅
M
a
x
i
t
e
r
+
π
4
)
−
k
⋅
rand
(
)
)
(8)
r=b \cdot\left(\tan \left(-\frac{\pi t}{4 \cdot { Max_iter }}+\frac{\pi}{4}\right)-k \cdot \operatorname{rand}()\right)\tag{8}
r=b⋅(tan(−4⋅Maxiterπt+4π)−k⋅rand())(8)
其中,
t
t
t 是当前迭代次数, Max_iter 是最大迭 代次数。
b
b
b 为控制领导者-跟随者数量的比例系数, 避 免迭代前期的樽海鞘领导者或迭代后期的樽海鞘跟 随者比例过高, 全局和局部搜索失衡降低寻优性能, 易陷入局部极值的现象, 经大量实验测试, 本文取 值为
0.75
0.75
0.75 。分析式 (8) 可知,
r
r
r 的值随着算法迭代次数的增加呈非线性递减趋势, 于是领导者数量逐 渐减少, 跟随者数量逐渐增加, 在迭代后期, 更多的 樽海鞘跟随者在全局最优值附近深度挖掘。
k
k
k 为扰 动偏离因子, 结合 rand 函数对递减的
r
r
r 值进行扰动, 经大量实验反复测试,
k
k
k 等于
0.2
0.2
0.2 时, 寻优效果最佳。
[1]刘景森,袁蒙蒙,左方.面向全局搜索的自适应领导者樽海鞘群算法[J/OL].控制与决策:1-10[2021-07-30].https://doi.org/10.13195/j.kzyjc.2020.0090.