文章目录
一、理论基础
1、基本阴阳平衡优化算法
在阴阳平衡优化(Yin-Yang-Pair Optimization,YYPO)算法中,在半径为1的超球体内使用两个点 P 1 P_1 P1和 P 2 P_2 P2分别进行局部开发和全局勘探。基于点 P 1 P_1 P1的搜索半径 δ 1 \delta_1 δ1会越来越小,有向内收缩的含义,与阴对应;而基于点 P 2 P_2 P2的搜索半径 δ 2 \delta_2 δ2会越来越大,有向外扩展的含义,与阳对应。在任何一种智能优化算法中,局部开发和全局勘探既互补又竞争,分别与阴阳互根和阴阳对立对应。在计算过程中,不断加强基于点 P 1 P_1 P1和 P 2 P_2 P2的局部搜索和全局搜索,与阴阳皆长对应。如果点 P 2 P_2 P2优于点 P 1 P_1 P1,那么这两点互换,与阴阳交感对应。算法反复进行基于点 P 1 P_1 P1和 P 2 P_2 P2的优化搜索,期望达到局部开发和全局搜索的平衡,与阴阳平衡对应。在具体实现时,阴阳平衡优化算法主要包括基于档案集的解更新和基于超球体的解更新两个阶段。以下分别给出这两个阶段的主要内容。
(1)基于档案集的解更新阶段
在每次迭代时,算法将
P
1
P_1
P1和
P
2
P_2
P2两个点保存到档案集中。每间隔
I
I
I次迭代,就利用档案集中的
2
I
2I
2I个点对当前的
P
1
P_1
P1和
P
2
P_2
P2进行更新。采用的更新方法如下:首先从档案集中找出最好的点,并将该点和
P
1
P_1
P1进行比较,如果前者优于后者,那么这两个点互换;然后再从档案集中找出最好的点,并将该点和
P
2
P_2
P2进行比较,如果前者优于后者,那么这两个点互换;最后将该档案集置为空集,并在上界
I
max
I_{\max}
Imax和下界
I
min
I_{\min}
Imin之间随机产生更新频率
I
I
I。
此外,还对搜索半径
δ
1
\delta_1
δ1和
δ
2
\delta_2
δ2进行更新,计算方法如下:
δ
1
=
δ
1
−
(
δ
1
/
α
)
(1)
\delta_1=\delta_1-(\delta_1/\alpha)\tag{1}
δ1=δ1−(δ1/α)(1)
δ
2
=
δ
2
+
(
δ
2
/
α
)
(2)
\delta_2=\delta_2+(\delta_2/\alpha)\tag{2}
δ2=δ2+(δ2/α)(2)其中,
α
\alpha
α表示缩放因子。
(2)基于超球体的解更新阶段
在该阶段,分别以
P
1
P_1
P1为中心,
δ
1
\delta_1
δ1为半径,
P
2
P_2
P2为中心,
δ
2
\delta_2
δ2为半径在超球体内进行局部搜索和全局搜索。根据算法设计,这两种搜索采用相同的解更新方程,为了表达方便,令
P
P
P和
δ
\delta
δ表示搜索中心和半径。在进行解更新前,首先生成
2
D
2D
2D个完全相同的点
P
P
P,分别用
N
P
1
,
N
P
2
,
⋯
,
N
P
2
D
NP_1,NP_2,\cdots,NP_{2D}
NP1,NP2,⋯,NP2D表示;然后对这
2
D
2D
2D个点进行更新操作。在算法中,可以对点的一个分量或者所有分量进行更新。对点的一个分量更新方程如下:
N
P
k
j
=
{
P
j
+
δ
×
r
2
,
k
=
1
,
2
,
⋯
,
D
P
j
−
δ
×
r
2
,
k
=
D
+
1
,
D
+
2
,
⋯
,
2
D
(3)
NP_k^j=\begin{dcases}P^j+\delta×\frac{r}{\sqrt 2},\quad\quad\quad\quad\,\,\,\, k=1,2,\cdots,D\\P^j-\delta×\frac{r}{\sqrt2},k=D+1,D+2,\cdots,2D\end{dcases}\tag{3}
NPkj=⎩⎪⎨⎪⎧Pj+δ×2r,k=1,2,⋯,DPj−δ×2r,k=D+1,D+2,⋯,2D(3)其中,
N
P
k
j
NP_k^j
NPkj代表点
N
P
k
NP_k
NPk的第
j
j
j个分量;
P
j
P^j
Pj代表点
P
P
P的第
j
j
j个分;
r
r
r代表0~1之间的随机数;
j
=
1
,
2
,
⋯
,
D
j=1,2,\cdots,D
j=1,2,⋯,D。
在对点的所有分量进行更新时,还要用到一个
2
D
×
D
2D×D
2D×D的二进制矩阵
B
B
B,并要求该矩阵每个二进制字符串都是唯一的。对点的所有分量更新方程如下:
N
P
k
j
=
{
P
j
+
δ
×
r
,
B
k
j
=
1
P
j
−
δ
×
r
,
B
k
j
=
0
(4)
NP_k^j=\begin{dcases}P^j+\delta×r,\quad B_k^j=1\\P^j-\delta×r,\quad B_k^j=0\end{dcases}\tag{4}
NPkj={Pj+δ×r,Bkj=1Pj−δ×r,Bkj=0(4)其中,
B
k
j
B_k^j
Bkj代表在第
k
k
k行、第
j
j
j列的矩阵元素。在算法中,以50%的概率选择上述两种更新方式的一种。此外,分别从
P
1
P_1
P1和
P
2
P_2
P2生成的新解种选择最好的解,无论其是否优于
P
1
P_1
P1和
P
2
P_2
P2,都用于替换
P
1
P_1
P1和
P
2
P_2
P2。需要指出的是,虽然
P
1
P_1
P1和
P
2
P_2
P2都采用这两种更新策略,但是实现的搜索效果是不同的。对
P
1
P_1
P1而言,搜索半径
δ
1
\delta_1
δ1越来越小,这里的更新策略等价于做局部搜索。对
P
2
P_2
P2而言,搜索半径
δ
2
\delta_2
δ2越来越大,这里的更新策略等价于做全局探索。
(3)阴阳平衡优化(YYPO)算法伪代码
2、基于小波精英解学习和多角度搜索的新型阴阳平衡优化算法
(1)小波精英解学习策略
本文采用小波函数对精英解进行微调,期望发现更好的解。小波(Wavelet),顾名思义就是小区域的波形,具有微调能力强等特征,将小波应用到对这些精英解的学习中。设
X
X
X为档案集中一个精英解,通过小波精英解学习后的新解为
X
∗
X^*
X∗,具体方法如下:
X
∗
=
γ
X
+
r
(
L
+
U
)
(5)
X^*=\gamma X+r(L+U)\tag{5}
X∗=γX+r(L+U)(5)其中,
γ
\gamma
γ是小波函数值;
r
r
r在0到1之间的随机数;
U
U
U和
L
L
L是变量
X
X
X的上下界。
由于Morlet小波具有优良的时频特性和动态特性,是小波函数动态变化空间的典型代表,本文在式(5)的计算中将采用Morlet小波,其计算方法如下:
γ
=
1
a
exp
(
−
(
ϕ
a
)
2
)
cos
(
5
(
ϕ
a
)
)
(6)
\gamma=\frac{1}{\sqrt{a}}\exp(-(\frac\phi a)^2)\cos(5(\frac\phi a))\tag{6}
γ=a1exp(−(aϕ)2)cos(5(aϕ))(6)其中,
ϕ
\phi
ϕ的可行域为
[
−
2.5
a
,
2.5
a
]
[−2.5a,2.5a]
[−2.5a,2.5a],而
a
a
a的计算方法如下:
a
=
exp
(
−
ln
g
×
(
1
−
t
T
)
ξ
)
+
ln
g
(7)
a=\exp(-\ln g×(1-\frac tT)^\xi)+\ln g\tag{7}
a=exp(−lng×(1−Tt)ξ)+lng(7)其中,
g
g
g表示
a
a
a的上界;
t
t
t表示算法当前的迭代次数;
T
T
T表示最大迭代次数;
ξ
\xi
ξ表示形状参数。
在算法中,对档案集中保留的精英解和采用小波精英解学习后的新解进行比较,取最好的两个解分别赋值给
P
1
P_1
P1和
P
2
P_2
P2。此外,如果这些精英解是局部最优解的话,也可以通过对这些解的学习,跳出局部极值点,避免算法的早熟收敛。
(2)多角度搜索策略
将搜索角度引入到基于超球体的解更新方程中,将式(3)和(4)的更新方程修改为:
N
P
k
j
=
P
j
+
δ
×
sin
θ
(8)
NP_k^j=P^j+\delta×\sin\theta\tag{8}
NPkj=Pj+δ×sinθ(8)其中,
N
P
k
j
NP_k^j
NPkj代表点
N
P
k
NP_k
NPk的第
j
j
j个分量;
P
j
P^j
Pj代表点
P
P
P的第
j
j
j个分量;
δ
\delta
δ表示搜索步长;
θ
\theta
θ表示搜索角度。
搜索角度
θ
\theta
θ可以在0和
2
π
2\pi
2π之间任意取值。这样,利用式(8)通过角度
θ
\theta
θ的变化就可以在超球体内对任意位置进行搜索,实现对算法搜索空间全方位的搜索,既可以提高算法的全局勘探能力又可以提高算法的局部开发能力。此外,式(3)和(4)的解更新方程中的随机数
r
r
r取值范围在0到1之间。从搜索角度来看,相当于
θ
\theta
θ的取值范围在0到
π
2
\frac\pi2
2π或者
π
2
\frac\pi2
2π到
π
\pi
π之间,不能覆盖到所有角度。
综上所述,基于小波精英解学习和多角度搜索的新型阴阳平衡优化算法描述如下:
二、数值实验与分析
以文献[1]的f1~f3、f9、f11为例,维度均为30。在实验中,固定每种算法的最大迭代次数1000,并且对每个函数,各个算法独立运行30次。新型阴阳平衡优化算法NYYPO的参数设置如下:
I
min
=
3
,
I
max
=
9
,
α
=
10
,
g
=
10000
,
ξ
=
5
I_{\min}=3,I_{\max}=9,\alpha=10,g=10000,\xi=5
Imin=3,Imax=9,α=10,g=10000,ξ=5,将其与原始YYPO算法进行对比。
结果显示如下:
函数:F1
YYPO:最优值: 1.5296e-06,最差值:1.0094e-05,平均值:4.7608e-06,标准差:2.1741e-06
NYYPO:最优值: 2.039e-320,最差值:1.979e-268,平均值:6.6264e-270,标准差:0
函数:F2
YYPO:最优值: 0,最差值:4,平均值:0.7,标准差:0.91539
NYYPO:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F3
YYPO:最优值: 5.3783e-07,最差值:1.4517,平均值:0.27384,标准差:0.48565
NYYPO:最优值: 8.8818e-16,最差值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F9
YYPO:最优值: 1.1248e-05,最差值:0.0002457,平均值:5.0256e-05,标准差:5.0708e-05
NYYPO:最优值: 0,最差值:1.7381e-251,平均值:6.0186e-253,标准差:0
函数:F11
YYPO:最优值: 3.3373e-06,最差值:2.8475,平均值:0.347,标准差:0.62772
NYYPO:最优值: 0,最差值:2.8521e-240,平均值:9.5069e-242,标准差:0
实验结果表明,NYYPO算法计算精度更好、优化速度更快。
三、参考文献
[1] Varun Punnathanam, Prakash Kotecha. Yin-Yang-pair Optimization: A novel lightweight optimization algorithm[J]. Engineering Applications of Artificial Intelligence, 2016, 54: 62-79.
[2] 许秋艳, 马良, 刘勇. 基于小波精英解学习和多角度搜索的新型阴阳平衡优化算法[J/OL]. 控制与决策: 1-10 [2021-07-17].