文章目录
一、理论基础
1、原子搜索优化算法(ASO)
请参考这里。
2、改进的原子搜索优化算法(IASO)
(1)初始原子种群的混沌优化
混沌序列具有的随机性和遍历性等特点使得生成的初始解在整个解空间中分布更加均匀,有利于求解最优问题的全局最优解,现已被广泛应用于元启发式优化算法的种群初始化中,故将混沌序列引入ASO算法用于初始化原子种群。使用Tent映射生成的混沌序列具有更好的均匀分布性,更符合元启发智能算法的初始种群生成,其序列生成函数为 x N + 1 = { 2 x N , x N ∈ ( 0 , 0.5 ] 2 ( 1 − x N ) , x N ∈ ( 0.5 , 1 ] (1) x_{N+1}=\begin{dcases}2x_N,\quad\quad\,\,\,\quad x_N\in(0,0.5]\\[2ex]2(1-x_N),\quad x_N\in(0.5,1]\end{dcases}\tag{1} xN+1=⎩ ⎨ ⎧2xN,xN∈(0,0.5]2(1−xN),xN∈(0.5,1](1)对式(1)进行伯努利位移变化后,得 x N + 1 = ( 2 x N ) mod 1 (2) x_{N+1}=(2x_N)\text{mod}\,\,1\tag{2} xN+1=(2xN)mod1(2)其中, N N N为原子个数,初始种群的大小由原子个数和搜索空间维度 D D D决定。利用式(2)生成初始种群用以代替ASO算法中随机生成的初始种群从而丰富初始种群的多样性,促使算法寻优结果更接近于全局最优解。
(2)振幅函数随机参数优化
为提高算法的全局探索能力,受简谐振动启发影响引入振幅函数对算法参数
η
(
t
)
\eta(t)
η(t)与
λ
(
t
)
\lambda(t)
λ(t)进行修正,利用振幅函数波动跳跃的性质增强算法跳出局部最优的可能。引入的振幅函数
s
(
t
)
s(t)
s(t)定义为
s
(
t
)
=
rand
(
∣
cos
(
d
t
+
N
)
∣
)
(3)
s(t)=\text{rand}(|\cos(dt+N)|)\tag{3}
s(t)=rand(∣cos(dt+N)∣)(3)其中,
N
N
N为原子个数;
t
t
t为迭代次数;
d
d
d为原子搜索空间维度;
rand
\text{rand}
rand为随机函数,表示在振幅函数生成的数中随机选择一个作为最终作用于参数
η
(
t
)
\eta(t)
η(t)与
λ
(
t
)
\lambda(t)
λ(t)的波动因子。
由于引入的振幅因子属于
[
0
,
1
]
[0,1]
[0,1],导致搜索步长仅在原有解邻域内进行探索开发,对整个全局解空间的探索性不够强,故对式(3)进行修正,得到修正后振幅函数
s
(
t
)
=
rand
(
∣
cos
(
d
t
+
N
)
∣
)
+
1
(4)
s(t)=\text{rand}(|\cos(dt+N)|)+1\tag{4}
s(t)=rand(∣cos(dt+N)∣)+1(4)式(4)是由式(3)经过平移后得到的,其不仅保留了振幅函数本身波动性质促使算法跳出局部最优,而且还加大了算法对解空间的搜索半径,增强了算法对全局的寻优能力。
经过振幅函数作用后的深度函数
η
(
t
)
\eta(t)
η(t)与拉格朗日乘子
λ
(
t
)
\lambda(t)
λ(t)可重新定义为
η
(
t
)
=
α
(
1
−
t
−
1
T
)
3
e
−
20
t
s
T
(5)
\eta(t)=\alpha\left(1-\frac{t-1}{T}\right)^3e^{-\frac{20ts}{T}}\tag{5}
η(t)=α(1−Tt−1)3e−T20ts(5)
λ
(
t
)
=
β
e
−
20
t
s
T
(6)
\lambda(t)=\beta e^{-\frac{20ts}{T}}\tag{6}
λ(t)=βe−T20ts(6)其中
s
s
s称为振幅因子,由式(4)计算得出。故第
i
i
i个原子在
t
t
t时刻加速度可被重新定义为
a
i
d
(
t
)
=
−
α
(
1
−
t
−
1
T
)
3
e
−
20
t
s
T
(
x
i
d
(
t
)
−
x
j
d
(
t
)
)
∣
∣
x
i
(
t
)
,
x
j
(
t
)
∣
∣
2
η
(
t
)
=
β
e
−
20
t
s
T
(
x
best
d
(
t
)
−
x
i
d
(
t
)
)
m
i
d
(
t
)
+
α
(
1
−
t
−
1
T
)
3
×
e
−
20
t
s
T
∑
j
∈
K
best
rand
j
[
2
(
h
i
j
(
t
)
)
13
−
(
h
i
j
(
t
)
)
7
]
m
i
d
(
t
)
(7)
a_i^d(t)=-\alpha\left(1-\frac{t-1}{T}\right)^3e^{-\frac{20ts}{T}}\frac{(x_i^d(t)-x_j^d(t))}{||x_i(t),x_j(t)||_2}\eta(t)=\\[2ex] \beta e^{-\frac{20ts}{T}}\frac{(x_{\text{best}}^d(t)-x_i^d(t))}{m_i^d(t)}+\alpha\left(1-\frac{t-1}{T}\right)^3\times\\[2ex]e^{-\frac{20ts}{T}}\sum_{j\in K_{\text{best}}}\frac{\text{rand}_j[2(h_{ij}(t))^{13}-(h_{ij}(t))^7]}{m_i^d(t)}\tag{7}
aid(t)=−α(1−Tt−1)3e−T20ts∣∣xi(t),xj(t)∣∣2(xid(t)−xjd(t))η(t)=βe−T20tsmid(t)(xbestd(t)−xid(t))+α(1−Tt−1)3×e−T20tsj∈Kbest∑mid(t)randj[2(hij(t))13−(hij(t))7](7)
(3)步长演变搜索机制
为解决ASO算法收敛速度慢的问题,从原子位置更新过程出发,引入步长演变因子
ω
(
t
)
\omega(t)
ω(t)对原子位置更新公式进行修正,使原子位置更新过程随算法迭代次数增加而逐渐变慢直至不再变化。 定义为
ω
(
t
)
=
e
−
d
×
t
T
(8)
\omega(t)=e^{-\frac{d\times t}{T}}\tag{8}
ω(t)=e−Td×t(8)其中,
t
t
t为迭代次数;
d
d
d为原子搜索空间维度;
T
T
T为最大迭代次数。由式(8)可知,
ω
(
t
)
∈
[
0
,
1
]
\omega(t)\in[0,1]
ω(t)∈[0,1]且是一个随着解空间维度和算法迭代次数增加而快速演变的因子。
因此,得出新原子位置更新策略为
x
i
d
(
t
+
1
)
=
(
x
i
d
(
t
)
+
v
i
d
(
t
+
1
)
)
ω
(
t
)
(9)
x_i^d(t+1)=\left(x_i^d(t)+v_i^d(t+1)\right)\omega(t)\tag{9}
xid(t+1)=(xid(t)+vid(t+1))ω(t)(9)其中,
x
i
d
(
t
)
x_i^d(t)
xid(t)为第
i
i
i个原子第
t
t
t次迭代时位置;
v
i
d
(
t
+
1
)
v_i^d(t+1)
vid(t+1)为第
i
i
i个原子第
t
+
1
t+1
t+1次迭代时的速度;
ω
(
t
)
\omega(t)
ω(t)为模拟原子位置更新过程的步长演变因子。
由于
ω
(
t
)
∈
[
0
,
1
]
\omega(t)\in[0,1]
ω(t)∈[0,1],故式(9)的含义为:随着原子个体不断运动逐渐接近于原子最优个体时,其位置动态更新过程随着算法寻优过程逐渐变慢直至其位置与最优原子个体重合,此时得到的原子个体的位置分布即为原子群的最优解。
(4)IASO算法的实现
综上所述,IASO算法求解最优化问题的寻优过程如图1所示。
二、仿真实验与结果分析
将IASO与BOA、MFO、MVO、SSA和ASO进行对比,以文献[1]中表1的F1、F2、F3、F6、F7、F8(30维)为例,实验设置种群规模为50,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:
函数:F1
BOA:最差值: 1.8688e-14, 最优值: 1.4027e-14, 平均值: 1.689e-14, 标准差: 1.0856e-15, 秩和检验: 3.0199e-11
MFO:最差值: 10000.0001, 最优值: 5.514e-06, 平均值: 2000, 标准差: 4068.381, 秩和检验: 3.0199e-11
MVO:最差值: 0.26453, 最优值: 0.095472, 平均值: 0.18267, 标准差: 0.04771, 秩和检验: 3.0199e-11
SSA:最差值: 1.1982e-08, 最优值: 5.1509e-09, 平均值: 8.6466e-09, 标准差: 1.899e-09, 秩和检验: 3.0199e-11
ASO:最差值: 1.349e-20, 最优值: 2.5348e-22, 平均值: 2.9352e-21, 标准差: 3.1822e-21, 秩和检验: 3.0199e-11
IASO:最差值: 7.1263e-193, 最优值: 6.7312e-197, 平均值: 5.8675e-194, 标准差: 0, 秩和检验: 1
函数:F2
BOA:最差值: 1.1352e-11, 最优值: 4.9879e-13, 平均值: 9.4157e-12, 标准差: 2.5471e-12, 秩和检验: 3.0199e-11
MFO:最差值: 70, 最优值: 0.0001011, 平均值: 29.002, 标准差: 17.0912, 秩和检验: 3.0199e-11
MVO:最差值: 0.40149, 最优值: 0.15021, 平均值: 0.27578, 标准差: 0.06647, 秩和检验: 3.0199e-11
SSA:最差值: 2.0636, 最优值: 0.00077882, 平均值: 0.64359, 标准差: 0.63389, 秩和检验: 3.0199e-11
ASO:最差值: 1.5339e-09, 最优值: 1.4117e-10, 平均值: 4.4661e-10, 标准差: 2.8889e-10, 秩和检验: 3.0199e-11
IASO:最差值: 4.714e-97, 最优值: 3.316e-100, 平均值: 6.124e-98, 标准差: 9.6993e-98, 秩和检验: 1
函数:F3
BOA:最差值: 1.9106e-14, 最优值: 1.4373e-14, 平均值: 1.6825e-14, 标准差: 1.1803e-15, 秩和检验: 3.0199e-11
MFO:最差值: 48687.7895, 最优值: 253.7468, 平均值: 17031.8514, 标准差: 12767.1835, 秩和检验: 3.0199e-11
MVO:最差值: 39.2598, 最优值: 12.1405, 平均值: 21.4204, 标准差: 7.2571, 秩和检验: 3.0199e-11
SSA:最差值: 153.6563, 最优值: 10.7688, 平均值: 40.1843, 标准差: 29.7752, 秩和检验: 3.0199e-11
ASO:最差值: 394.4463, 最优值: 61.8113, 平均值: 200.5536, 标准差: 98.2847, 秩和检验: 3.0199e-11
IASO:最差值: 3.3874e-187, 最优值: 3.7305e-193, 平均值: 1.5492e-188, 标准差: 0, 秩和检验: 1
函数:F6
BOA:最差值: 201.5523, 最优值: 0, 平均值: 25.4079, 标准差: 65.9302, 秩和检验: 0.021577
MFO:最差值: 206.2397, 最优值: 59.6974, 平均值: 138.7085, 标准差: 36.7501, 秩和检验: 1.2118e-12
MVO:最差值: 173.2921, 最优值: 48.831, 平均值: 103.8335, 标准差: 26.1058, 秩和检验: 1.2118e-12
SSA:最差值: 82.5814, 最优值: 20.8941, 平均值: 44.1429, 标准差: 15.5406, 秩和检验: 1.2118e-12
ASO:最差值: 46.763, 最优值: 15.9193, 平均值: 26.3001, 标准差: 7.8024, 秩和检验: 1.2098e-12
IASO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F7
BOA:最差值: 1.3739e-11, 最优值: 5.2447e-12, 平均值: 1.0484e-11, 标准差: 2.5455e-12, 秩和检验: 1.0149e-11
MFO:最差值: 19.9632, 最优值: 0.0010781, 平均值: 13.2368, 标准差: 8.2985, 秩和检验: 1.0149e-11
MVO:最差值: 2.7793, 最优值: 0.10722, 平均值: 0.64989, 标准差: 0.7122, 秩和检验: 1.0149e-11
SSA:最差值: 3.2839, 最优值: 2.2962e-05, 平均值: 1.7946, 标准差: 0.78737, 秩和检验: 1.0149e-11
ASO:最差值: 9.1643e-11, 最优值: 9.5293e-12, 平均值: 3.1487e-11, 标准差: 2.1176e-11, 秩和检验: 1.0149e-11
IASO:最差值: 4.4409e-15, 最优值: 8.8818e-16, 平均值: 1.954e-15, 标准差: 1.6559e-15, 秩和检验: 1
函数:F8
BOA:最差值: 5.107e-15, 最优值: 0, 平均值: 9.3999e-16, 标准差: 1.3058e-15, 秩和检验: 1.9091e-09
MFO:最差值: 180.5201, 最优值: 6.3319e-06, 平均值: 18.043, 标准差: 43.6752, 秩和检验: 1.2118e-12
MVO:最差值: 0.59067, 最优值: 0.20723, 平均值: 0.44195, 标准差: 0.090428, 秩和检验: 1.2118e-12
SSA:最差值: 0.039299, 最优值: 1.7104e-08, 平均值: 0.010911, 标准差: 0.011743, 秩和检验: 1.2118e-12
ASO:最差值: 0.0098573, 最优值: 0, 平均值: 0.00032858, 标准差: 0.0017997, 秩和检验: 0.33371
IASO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
实验结果表明:IASO相较于5种对比算法在求解精度、收敛速度、局部极值逃逸能力和算法稳定性方面均有显著性提高。
三、参考文献
[1] 刘威, 郭直清, 刘光伟, 等. 融合振幅随机补偿与步长演变机制的改进原子搜索优化算法[J]. 智能系统学报, 2022, 17(3): 602-616.