文章目录
一、理论基础
1、基本原子搜索优化算法
原子搜索优化(Atom search optimization, ASO)算法是根据原子的运动规律,通过种群中各个原子之间的相互作用力来指导群体进行智能优化搜索。算法结构简单,参数较少。根据牛顿第二定律,如果 F i F_i Fi是作用在第 i i i个原子上的相互作用力,而 G i G_i Gi是作用在第 i i i个原子上的约束力,该原子的质量为 m i m_i mi,那么第 i i i个原子的加速度公式如式(1)所示: a i = F i + G i m i (1) a_i=\frac{F_i+G_i}{m_i}\tag{1} ai=miFi+Gi(1)下面对 F i F_i Fi、 G i G_i Gi、 m i m_i mi三个值的求解进行阐述。
(1)相互作用力 F i d \boldsymbol{F_i^d} Fid
相互作用力
F
i
d
F_i^d
Fid表示周围原子对当前原子
i
i
i的作用力之和,其求解公式如式(2)所示:
F
i
d
(
t
)
=
∑
j
∈
K
b
e
s
t
r
a
n
d
j
F
i
j
d
(
t
)
(2)
F_i^d(t)=\sum_{j\in K_{best}}rand_jF_{ij}^d(t)\tag{2}
Fid(t)=j∈Kbest∑randjFijd(t)(2)其中,
t
t
t是当前迭代次数;
r
a
n
d
j
rand_j
randj是
[
0
,
1
]
[0,1]
[0,1]上的随机数;
d
d
d表示原子所在的维数;
K
b
e
s
t
K_{best}
Kbest是对原子
i
i
i产生作用力的原子的集合;
F
i
j
d
(
t
)
F_{ij}^d(t)
Fijd(t)表示第
t
t
t次迭代中第
j
j
j个原子对原子
i
i
i的伦纳德·琼斯(L-J)势作用力。
K
b
e
s
t
K_{best}
Kbest的定义如式(3)所示:
K
b
e
s
t
(
t
)
=
N
−
(
N
−
2
)
×
t
T
(3)
K_{best}(t)=N-(N-2)\times\sqrt{\frac tT}\tag{3}
Kbest(t)=N−(N−2)×Tt(3)其中,
N
N
N表示原子总个数;
T
T
T表示总迭代次数。
F
i
j
d
(
t
)
F_{ij}^d(t)
Fijd(t)定义如式(4)所示:
F
i
j
d
(
t
)
=
−
η
(
t
)
[
2
(
h
i
j
(
t
)
)
13
−
(
h
i
j
(
t
)
)
7
]
(4)
F_{ij}^d(t)=-\eta(t)\left[2(h_{ij}(t))^{13}-(h_{ij}(t))^7\right]\tag{4}
Fijd(t)=−η(t)[2(hij(t))13−(hij(t))7](4)其中,
η
(
t
)
\eta(t)
η(t)是用于调整排斥区域或吸引区域的深度函数,它的定义如式(5)所示:
η
(
t
)
=
−
α
(
1
−
t
−
1
T
)
3
e
−
20
t
T
(5)
\eta(t)=-\alpha\left(1-\frac{t-1}{T}\right)^3e^{-\frac{20t}{T}}\tag{5}
η(t)=−α(1−Tt−1)3e−T20t(5)其中,
α
\alpha
α是深度权重。
h
i
j
h_{ij}
hij的标准定义如式(6)所示:
h
i
j
=
r
i
j
(
t
)
σ
(
t
)
(6)
h_{ij}=\frac{r_{ij}(t)}{\sigma(t)}\tag{6}
hij=σ(t)rij(t)(6)其中,
σ
\sigma
σ是长度尺度,它表示碰撞直径,
r
r
r是两个原子之间的欧几里得距离。
r
i
j
(
t
)
r_{ij}(t)
rij(t)和
σ
(
t
)
\sigma(t)
σ(t)的定义如式(7)所示:
r
i
j
(
t
)
=
∣
∣
x
i
(
t
)
,
x
j
(
t
)
∣
∣
2
r_{ij}(t)=||x_i(t),x_j(t)||_2
rij(t)=∣∣xi(t),xj(t)∣∣2
σ
(
t
)
=
∣
∣
x
i
(
t
)
,
∑
j
∈
K
b
e
s
t
(
t
)
x
j
(
t
)
K
b
e
s
t
(
t
)
∣
∣
2
(7)
\sigma(t)=\left|\left|x_i(t),\frac{\sum_{j\in K_{best}(t)}x_j(t)}{K_{best}(t)}\right|\right|_2\tag{7}
σ(t)=∣∣∣∣∣∣∣∣∣∣xi(t),Kbest(t)∑j∈Kbest(t)xj(t)∣∣∣∣∣∣∣∣∣∣2(7)其中,
x
i
x_i
xi和
x
j
x_j
xj分别表示原子
i
i
i和原子
j
j
j的位置。
实际上
h
i
j
h_{ij}
hij的值是在一定的范围内取值,为了改善勘探范围,将表现为斥力的
h
h
h的下限设置为
h
min
=
1.1
h_{\min}=1.1
hmin=1.1,上限设置为
h
max
=
2.4
h_{\max}=2.4
hmax=2.4,并且在
h
min
h_{\min}
hmin的基础上增加了一个正弦扰动函数
g
(
t
)
g(t)
g(t),具体定义如式(8)所示:
h
i
j
(
t
)
=
{
h
min
+
g
(
t
)
r
i
j
(
t
)
σ
(
t
)
<
h
min
r
i
j
(
t
)
σ
(
t
)
h
min
≤
r
i
j
(
t
)
σ
(
t
)
≤
h
max
h
max
r
i
j
(
t
)
σ
(
t
)
>
h
max
(8)
h_{ij}(t)=\begin{dcases}h_{\min}+g(t)\quad \frac{r_{ij}(t)}{\sigma(t)}<h_{\min}\\\frac{r_{ij}(t)}{\sigma(t)}\quad\quad\quad\,\, h_{\min}≤\frac{r_{ij}(t)}{\sigma(t)}≤h_{\max}\\h_{\max}\quad\quad\quad\,\,\,\,\, \frac{r_{ij}(t)}{\sigma(t)}>h_{\max}\end{dcases}\tag{8}
hij(t)=⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧hmin+g(t)σ(t)rij(t)<hminσ(t)rij(t)hmin≤σ(t)rij(t)≤hmaxhmaxσ(t)rij(t)>hmax(8)其中,
g
(
t
)
g(t)
g(t)的定义如式(9)所示:
g
(
t
)
=
0.1
×
sin
(
π
2
×
t
T
)
(9)
g(t)=0.1\times\sin\left(\frac\pi2\times\frac tT\right)\tag{9}
g(t)=0.1×sin(2π×Tt)(9)
(2)共价键约束力 G i d \boldsymbol{G_i^d} Gid
在分子动力学中的几何约束在原子运动中也起着重要作用。 在ASO中,为了突出种群最佳原子的引导作用,假设每个原子与种群最佳原子具有一个共价键,因此每个原子都要受到最佳原子的约束力作用,其求解公式如式(10)所示: G i d = β e − 20 t T ( x b e s t d ( t ) − x i d ( t ) ) (10) G_i^d=\beta e^{-\frac{20t}T}(x_{best}^d(t)-x_i^d(t))\tag{10} Gid=βe−T20t(xbestd(t)−xid(t))(10)其中, β \beta β是系数因子, x b e s t d ( t ) x_{best}^d(t) xbestd(t)是第 t t t次迭代中种群最佳原子位置; x i d ( t ) x_i^d(t) xid(t)是原子第 t t t次迭代的当前位置。
(3)原子加速度 a i d \boldsymbol{a_i^d} aid
结合相互作用力和几何约束力,在第 t t t次迭代的第 i i i个原子在第 d d d维上的加速度如式(11)所示: a i d = F i d + G i d m i ( t ) = − α ( 1 − t − 1 T ) 3 e − 20 t T ∑ j ∈ K b e s t r a n d j [ 2 ( h i j ( t ) ) 13 − ( h i j ( t ) ) 7 ] m i ( t ) + β e − − 20 t T ( x b e s t d ( t ) − x i d ( t ) ) m i (11) a_i^d=\frac{F_i^d+G_i^d}{m_i(t)}\newline=-\alpha\left(1-\frac{t-1}T\right)^3e^{-\frac{20t}{T}}\sum_{j\in K_{best}}\frac{rand_j\left[2(h_{ij}(t))^{13}-(h_{ij}(t))^7\right]}{m_i(t)}\newline+\beta e^{-\frac{-20t}{T}}\frac{(x_{best}^d(t)-x_i^d(t))}{m_i}\tag{11} aid=mi(t)Fid+Gid=−α(1−Tt−1)3e−T20tj∈Kbest∑mi(t)randj[2(hij(t))13−(hij(t))7]+βe−T−20tmi(xbestd(t)−xid(t))(11)第 t t t次迭代中第 i i i个原子的质量 m i ( t ) m_i(t) mi(t)由当前种群个体的适应度值大小决定,其定义如式(12)所示: M i ( t ) = e − f i ( t ) − f min ( t ) f max ( t ) − f min ( t ) M_i(t)=e^{-\frac{f_i(t)-f_{\min}(t)}{f_{\max}(t)-f_{\min}(t)}} Mi(t)=e−fmax(t)−fmin(t)fi(t)−fmin(t) m i ( t ) = M i ( t ) ∑ i = 1 N M i ( t ) (12) m_i(t)=\frac{M_i(t)}{\displaystyle\sum_{i=1}^NM_i(t)}\tag{12} mi(t)=i=1∑NMi(t)Mi(t)(12)其中 f i ( t ) f_i(t) fi(t)表示第 i i i个原子的适应度值, f max ( t ) f_{\max}(t) fmax(t)和 f min ( t ) f_{\min}(t) fmin(t)分别表示原子种群中最大适应度值和最小适应度值。
(4)位置 x i d \boldsymbol{x_i^d} xid更新
在每一次迭代过程中,根据得到的加速度更新物原子i的速度和位置,更新公式为如式(13)所示:
v
i
d
(
t
+
1
)
=
r
a
n
d
i
d
v
i
d
(
t
)
+
a
i
d
(
t
)
v_i^d(t+1)=rand_i^dv_i^d(t)+a_i^d(t)
vid(t+1)=randidvid(t)+aid(t)
x
i
d
(
t
+
1
)
=
x
i
d
(
t
)
+
v
i
d
(
t
+
1
)
(13)
x_i^d(t+1)=x_i^d(t)+v_i^d(t+1)\tag{13}
xid(t+1)=xid(t)+vid(t+1)(13)其中,
v
i
d
v_i^d
vid是原子的速度;
x
i
d
x_i^d
xid是原子位置;
r
a
n
d
i
d
rand_i^d
randid是
[
0
,
1
]
[0,1]
[0,1]之间的随机数。
ASO算法流程图如图1所示:
2、黄金正弦原子搜索优化算法(GSASO)
本文将黄金正弦作为局部优化算法融入基本ASO中,即在算法的每一次迭代的后期对整个原子个体进行黄金正弦操作。黄金正弦操作的引人可以促进信息在种群中的迅速传播,使一般原子个体与最优个体进行信息交流,充分吸收与最优个体位置差信息,优化算法的寻优方式。基本ASO算法前期倾向于全局搜索,黄金正弦算法的引入可以弥补收敛速度慢的缺陷,ASO算法后期集中于局部开发通过对个体进行黄金正弦的操作可以增加种群的多样性,使个体跳出局部最优,减少算法陷入局部最优的可能性。
GSASO的算法流程如图2所示:
二、实验仿真及结果分析
本文选取了基本原子搜索优化算法(ASO)、黄金正弦原子搜索优化算法(GSASO)、粒子群优化算法(PSO)进行对比,为了保证实验的客观性和公平性,本文将所有算法的种群规模统一设为50,最大迭代次数设为200,所有算法共有参数保持一致,各测试算法的参数设置如文献[3]中表1所示,以文献[3]中表2的6个测试函数为例。为了避免偶然性带来的结果偏差,算法在每个函数上独立运行30次,结果显示如下:
函数:F1
PSO:最差值: 18430.5268,最优值: 3381.9258,平均值: 8949.13,标准差: 3126.6687,秩和检验: 3.0199e-11
ASO:最差值: 27883.4878,最优值: 9027.602,平均值: 15685.7135,标准差: 4092.8891,秩和检验: 3.0199e-11
GSASO:最差值: 9.5225e-59,最优值: 3.5697e-109,平均值: 3.2981e-60,标准差: 1.7369e-59,秩和检验: 1
函数:F2
PSO:最差值: 1059,最优值: 206,平均值: 499.0667,标准差: 197.0472,秩和检验: 1.2118e-12
ASO:最差值: 9,最优值: 0,平均值: 1.2333,标准差: 1.9061,秩和检验: 2.8125e-07
GSASO:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
函数:F3
PSO:最差值: 118.0827,最优值: 53.2737,平均值: 83.2024,标准差: 16.5066,秩和检验: 1.2118e-12
ASO:最差值: 47.758,最优值: 15.9193,平均值: 32.8784,标准差: 8.2605,秩和检验: 1.2118e-12
GSASO:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
函数:F4
PSO:最差值: 10.0432,最优值: 2.2611,平均值: 5.1689,标准差: 1.743,秩和检验: 1.2118e-12
ASO:最差值: 0.30087,最优值: 1.2212e-15,平均值: 0.020159,标准差: 0.057657,秩和检验: 1.2118e-12
GSASO:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
函数:F5
PSO:最差值: 10.5879,最优值: 4.6619,平均值: 7.035,标准差: 1.2704,秩和检验: 1.2118e-12
ASO:最差值: 0.93148,最优值: 1.391e-07,平均值: 0.098401,标准差: 0.23145,秩和检验: 1.2118e-12
GSASO:最差值: 8.8818e-16,最优值: 8.8818e-16,平均值: 8.8818e-16,标准差: 0,秩和检验: NaN
函数:F6
PSO:最差值: -2.6305,最优值: -10.1532,平均值: -5.808,标准差: 3.4725,秩和检验: 0.076441
ASO:最差值: -2.6305,最优值: -10.1532,平均值: -7.0137,标准差: 3.4001,秩和检验: 0.84054
GSASO:最差值: -5.9251,最优值: -9.7845,平均值: -8.0436,标准差: 1.1261,秩和检验: 1
通过对6个标准测试函数的仿真实验表明,本文所提出的黄金正弦原子优化算法比基本原子优化算法具有更优秀的寻优性能。
三、参考文献
[1] Weiguo Zhao, Liying Wang, Zhenxing Zhang. Atom search optimization and its application to solve a hydrogeologic parameter estimation problem[J]. Knowledge-Based Systems, 2019, 163: 283-304.
[2] 李建锋, 卢迪, 李贺香. 一种改进的原子搜索算法[J]. 系统仿真学报, 2022, 34(3): 490-502.
[3] 肖子雅, 刘升. 黄金正弦混合原子优化算法[J]. 微电子学与计算机, 2019, 36(6): 21-25.