基于坠落机制的混沌麻雀算法(SSACD)
文章目录
摘要:首先,引入Sinusoidal混沌映射和变尺度混沌策略对种群进行初始化,提高种群多样性使算法具备跳出局部最优解的能力;其次,引入动态黄金正弦策略增强算法发现者位置更新方式;然后,提出一种坠落机制增强种群随机性;
1.麻雀优化算法
基础麻雀算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108830958
2. 改进麻雀算法
2.1 变尺度混沌策略
为了增强算法初始化种群的多样性, 本文引人 Sinusoidal 混沌映射完成麻雀种群初始化, 混沌映 射公式为
x
n
+
1
=
a
x
n
2
sin
(
π
x
n
)
(4)
x_{n+1}=a x_n^2 \sin \left(\pi x_n\right) \tag{4}
xn+1=axn2sin(πxn)(4)
其中:本文取
a
=
2.3
、
x
1
=
0.7
a=2.3 、 x_1=0.7
a=2.3、x1=0.7 。迭代次数为 1000 次 的混沌状态种群初始化如图 2 所示。由图 2 可知, 使用 Sinusoidal 混沌映射初始化的种群分布更加均 匀, 能够获得比随机初始化更加稳定分布的初始 化解。
在搜索空间减小的问题上, 混沌映射表现较好。 当搜索空间较大时, 混沌映射可能存在失效的情况,因此在混沌映射公式中加人尺度变换来增强其在较 大搜索空间上的表现性能。引人尺度变换的混沌映 射公式为
x
n
+
1
=
(
t
/
T
max
)
×
a
x
n
2
sin
(
π
x
n
)
(5)
x_{n+1}=\left(t / T_{\max }\right) \times a x_n^2 \sin \left(\pi x_n\right) \tag{5}
xn+1=(t/Tmax)×axn2sin(πxn)(5)
其中:
t
t
t 为当前迭代次数,
T
max
T_{\text {max }}
Tmax 为最大迭代次数。 当最优值在迭代 10 次还为发生变化时, 可以认定 为算法进人搜索停滞状态。此时需要将种群再次通 过混沌映射进行扰动, 增加种群的随机性, 使算法 跳出搜索停滞状态。
2.2 动态黄金正弦策略
发现者的搜索范围较小的问题导致 SSA 算法存 在易于陷人局部最优和搜索停滞的缺陷。式 (1) 中的
exp
(
−
i
/
(
α
T
max
)
)
\exp \left(-i /\left(\alpha T_{\text {max }}\right)\right)
exp(−i/(αTmax )) 起到决定发现者勘探能力的作用, 令
p
=
exp
(
−
i
/
(
α
T
max
)
)
p=\exp \left(-i /\left(\alpha T_{\text {max }}\right)\right)
p=exp(−i/(αTmax )), 则其变化曲线如图 3 所示。根 据
i
i
i 值的不同,
p
p
p 的值总是落在
[
0.9
,
1
]
[0.9,1]
[0.9,1], 从而导致 发现者的位置搜索范围较小, 并且在迭代过程中种 群不断的趋近于 0 , 由于发现者起着引领种群的特 点, 因此将导致整个种群在不断的趋向于非原点。 当
R
2
⩾
S
T
R_2 \geqslant S T
R2⩾ST 时, 发现者所使用的正态随机数的扰动策 略效果有效。为了增强麻雀搜索算法的全局搜索能 力, 本文通过引人动态调整的黄金正弦
[
8
]
{ }^{[8]}
[8] 策略来改 进发现者全局搜索公式, 增强发现者全局搜索能力 和全局寻优速度。改进后的发现者更新公式为
x
i
,
j
t
+
1
=
x
i
,
j
t
⋅
∣
sin
(
r
1
)
∣
−
r
2
⋅
sin
(
r
1
)
⋅
∣
c
1
x
P
t
−
c
2
x
i
,
j
t
∣
(6)
x_{i, j}^{t+1}=x_{i, j}^t \cdot\left|\sin \left(r_1\right)\right|-r_2 \cdot \sin \left(r_1\right) \cdot\left|c_1 x_P^t-c_2 x_{i, j}^t\right| \tag{6}
xi,jt+1=xi,jt⋅∣sin(r1)∣−r2⋅sin(r1)⋅
c1xPt−c2xi,jt
(6)
其中:
x
P
x_P
xP 为当前迭代中最优适应度个体位置,
r
l
r_l
rl 和
r
2
r_2
r2 分别为取值
[
0
,
2
π
]
[0,2 \pi]
[0,2π] 和
[
0
,
π
]
[0, \pi]
[0,π] 的随机数,
c
1
c_1
c1 和
c
2
c_2
c2 表示 黄金分割系数,
c
1
=
a
(
1
−
g
)
+
b
g
、
c
2
=
a
g
+
b
(
1
−
g
)
c_1=a(1-g)+b g 、 c_2=a g+b(1-g)
c1=a(1−g)+bg、c2=ag+b(1−g) 、黄金 分割率
g
=
0.618
,
c
l
g=0.618, c_l
g=0.618,cl 和
c
2
c_2
c2 缩小了搜索空间, 在迭代 过程当中可以引导麻雀个体向全局最优位置移动。
受引人惯性权重思想的启发, 为了 更好的平衡算法全局搜索和局部寻优能力, 改善算法在迭代后期陷人搜索停滞状态的问题, 在黄金正 弦更新公式中引人非线性自适应权重
w
w
w, 表达式为
w
=
0.7
[
cos
(
π
t
/
T
max
)
+
0.9
]
/
2
+
0.3
(7)
w=0.7\left[\cos \left(\pi t / T_{\max }\right)+0.9\right] / 2+0.3 \tag{7}
w=0.7[cos(πt/Tmax)+0.9]/2+0.3(7)
非线性惯性权重保证算法在迭代初期全局探索 范围更大且更快的递减速度有利于减少算法全局探 索的迭代次数。随着迭代次数的增多, 探索范围逐 渐收玫切收玫速度减缓, 更有利于算法进行局部挖 掘, 解决算法后期因为范围减小带来的搜索停滞问 题。加人非线性自适应权重的发现者位置更新公 式为
x
i
,
j
t
+
1
=
x
i
,
j
t
⋅
∣
sin
(
r
1
)
∣
−
w
⋅
r
2
⋅
sin
(
r
1
)
⋅
∣
c
1
x
P
t
−
c
2
x
i
,
j
t
∣
( 8)
x_{i, j}^{t+1}=x_{i, j}^t \cdot\left|\sin \left(r_1\right)\right|-w \cdot r_2 \cdot \sin \left(r_1\right) \cdot\left|c_1 x_P^t-c_2 x_{i, j}^t\right| \quad \text { ( 8) }
xi,jt+1=xi,jt⋅∣sin(r1)∣−w⋅r2⋅sin(r1)⋅
c1xPt−c2xi,jt
( 8)
2.3 坠落机制
在标准 SSA 算法中, 发现者位置更新的正态分 布随机数扰动的效果随着迭代的增加效果有限, 为 了增加 SSA 算法的随机性, 本文提出一种坠落机 制, 即麻雀在飞行和受食的过程中有一定概率发生 坠落或者被其他大型鸟类捕食的现象。为了确保经 过坠落后的种群数量不变, 我们通过麻雀的位置和麻 雀下降的步长来建立坠落机制模型, 其具体模型为
x
i
,
j
t
+
1
=
r
3
x
i
,
j
t
−
r
4
x
r
,
j
t
+
r
5
x
seep
x_{i, j}^{t+1}=r_3 x_{i, j}^t-r_4 x_{r, j}^t+r_5 x_{\text {seep }}
xi,jt+1=r3xi,jt−r4xr,jt+r5xseep
其中:
r
3
、
r
4
r_3 、 r_4
r3、r4 和
r
5
r_5
r5 为取值区间
(
0
,
1
)
(0,1)
(0,1) 的随机数,
x
step
x_{\text {step }}
xstep 为麻雀的坠落步长,其具体定义如下。
x
step
=
(
u
b
−
l
b
)
exp
(
−
C
2
t
/
T
max
)
C
2
=
2
W
f
×
n
W
f
=
0.1
−
0.05
t
/
T
max
\begin{gathered} x_{\text {step }}=(u b-l b) \exp \left(-C_2 t / T_{\max }\right) \\ C_2=2 W_f \times n \\ W_f=0.1-0.05 t / T_{\max } \end{gathered}
xstep =(ub−lb)exp(−C2t/Tmax)C2=2Wf×nWf=0.1−0.05t/Tmax
其中:
u
b
u b
ub 和
l
b
l b
lb 为第
i
i
i 维度的取值上界和下界,
n
n
n 为 问题的维度,
C
2
C_2
C2 为步长因子, 可以看出步长因子受 迭代次数和最大迭代次数的边界影响。麻雀坠落的 概率
W
f
W_f
Wf 从迭代前期的 0.1 逐渐减少到 0.05 , 表明在 优化过程当中, 随着麻雀靠近最优值解危险逐渐 降低。
3.实验结果
4.参考文献
[1]李一铭,王跟成.基于坠落机制的混沌麻雀算法AGV路径规划[J].制造技术与机床,2023,No.727(01):102-108.DOI:10.19287/j.mtmt.1005-2402.2023.01.016.