一、理论基础
1、DE算法
请参考这里。
2、CABDE算法
(1)研究动机
为解决传统DE算法在策略适应性上存在的缺点,提出了一种将高斯变异策略DE/current-to-best/1变异策略融合的余弦适应性机制,以此平衡算法的勘探能力和开采能力,从而提高算法性能。
(2)变异策略的适应性机制
为了改进变异策略的搜索性能,CABDE算法结合高斯变异策略和DE/current-to-best/1变异策略实现变异策略的优势互补。具体的高斯变异策略为
V
i
,
G
1
=
N
(
X
b
e
s
t
,
G
+
X
i
,
G
2
,
∣
X
b
e
s
t
,
G
−
X
i
,
G
∣
)
(1)
\boldsymbol V_{i,G}^1=N\left(\frac{\boldsymbol X_{best,G}+\boldsymbol X_{i,G}}{2},|\boldsymbol X_{best,G}-\boldsymbol X_{i,G}|\right)\tag{1}
Vi,G1=N(2Xbest,G+Xi,G,∣Xbest,G−Xi,G∣)(1)其中,
X
b
e
s
t
,
G
\boldsymbol X_{best,G}
Xbest,G为当前最优个体,
X
i
,
G
\boldsymbol X_{i,G}
Xi,G为当前个体。高斯变异策略运用当前个体
X
i
,
G
\boldsymbol X_{i,G}
Xi,G和当前最优个体
X
b
e
s
t
,
G
\boldsymbol X_{best,G}
Xbest,G的加权平均、绝对差获得新的个体。在进化的前期,由于
X
i
,
G
\boldsymbol X_{i,G}
Xi,G和
X
b
e
s
t
,
G
\boldsymbol X_{best,G}
Xbest,G差异较大,高斯变异策略产生的新的变异个体大部分集中在
X
i
,
G
\boldsymbol X_{i,G}
Xi,G和
X
b
e
s
t
,
G
\boldsymbol X_{best,G}
Xbest,G的加权平均值附近,此时该策略具有较强的勘探能力。随着进化阶段的推进,
X
i
,
G
\boldsymbol X_{i,G}
Xi,G和
X
b
e
s
t
,
G
\boldsymbol X_{best,G}
Xbest,G的差异减小,该策略将逐渐转向开发,其局部搜索能力不断增强。
DE/current-to-best/1变异策略具体形式如下:
V
i
,
G
2
=
X
i
,
G
+
F
⋅
(
X
b
e
s
t
,
G
−
X
i
,
G
)
+
F
⋅
(
X
r
1
,
G
−
X
r
2
,
G
)
(2)
\boldsymbol V_{i,G}^2=\boldsymbol X_{i,G}+F\cdot(\boldsymbol X_{best,G}-\boldsymbol X_{i,G})+F\cdot(\boldsymbol X_{r_1,G}-\boldsymbol X_{r_2,G})\tag{2}
Vi,G2=Xi,G+F⋅(Xbest,G−Xi,G)+F⋅(Xr1,G−Xr2,G)(2)DE/current-to-best/1变异策略在对当前最好个体邻域进行局部搜索的同时,可维持种群多样性,在解决多峰优化问题时一定程度上能够降低陷入局部最优的可能性。
为了进一步让高斯变异策略和DE/current-to-best/1变异策略在不同进化阶段发挥各自优势,引入一个新的变异策略适应性机制,即余弦适应性机制。该机制利用余弦适应性因子 选择变异策略,即:
M
i
=
{
V
i
,
G
1
,
r
a
n
d
(
0
,
1
)
≤
C
H
V
i
,
G
2
,
o
t
h
e
r
w
i
s
e
(3)
M_i=\begin{dcases}\boldsymbol V_{i,G}^1,\quad rand(0,1)≤CH\\\boldsymbol V_{i,G}^2,\quad otherwise\end{dcases}\tag{3}
Mi={Vi,G1,rand(0,1)≤CHVi,G2,otherwise(3)CH具体公式如下:
C
H
=
c
1
2
2
c
o
s
(
2
π
⋅
ω
⋅
G
)
+
c
2
(4)
CH=\frac{c_1^2}{2}cos(2\pi\cdot\omega\cdot G)+c_2\tag{4}
CH=2c12cos(2π⋅ω⋅G)+c2(4)其中,
c
1
=
1
−
G
G
m
a
x
c_1=1-\frac G{G_{max}}
c1=1−GmaxG,
G
G
G为当前迭代次数,
G
m
a
x
G_{max}
Gmax为最大迭代次数,
ω
=
0.05
\omega=0.05
ω=0.05为余弦函数的波动频率。图1刻画了
c
2
=
c
1
c_2=c_1
c2=c1时CH值随迭代次数
G
G
G变化的规律,直观地反映了CH的变化规律。根据图1可知,过大或者过小将影响CH的变化范围。为避免
c
2
c_2
c2值出现极端情况,影响算法性能,对
c
2
c_2
c2进行如式(5)的约束。
c
2
=
{
0.7
,
c
1
>
0.7
0.3
,
c
1
<
0.3
c
1
,
o
t
h
e
r
w
i
s
e
(5)
c_2=\begin{dcases}0.7,\quad c_1>0.7\\0.3,\quad c_1<0.3\\c_1,\quad \,\,otherwise\end{dcases}\tag{5}
c2=⎩⎪⎨⎪⎧0.7,c1>0.70.3,c1<0.3c1,otherwise(5)
CH的变化规律使得本文提出的变异策略的适应性机制既能够对未知搜索区域进行勘探,又能够加快对已知优秀个体邻域的开采,进而提高算法的寻优能力。为保证在进化的每个阶段CABDE算法的两变异策略都能发挥作用,CH值被限定在0.1~0.9之间。
此外,杂交概率在一定程度上会影响算法性能。为提高杂交操作的适应性,本文采用文献[1]的方法控制杂交概率的设置,即
C
R
i
,
G
+
1
=
{
C
R
i
,
G
,
f
(
U
i
,
G
)
≤
f
(
X
i
,
G
)
N
(
0.5
,
0.1
)
,
f
(
U
i
,
G
)
>
f
(
X
i
,
G
)
CR_{i,G+1}=\begin{dcases}CR_{i,G},\quad\,\,\,\,\,\,\, f(\boldsymbol U_{i,G})≤f(\boldsymbol X_{i,G})\\N(0.5,0.1),\,f(\boldsymbol U_{i,G})>f(\boldsymbol X_{i,G})\end{dcases}
CRi,G+1={CRi,G,f(Ui,G)≤f(Xi,G)N(0.5,0.1),f(Ui,G)>f(Xi,G)
(3)算法描述
CABDE算法的伪代码如下,与基本DE算法比较,主要的差别在于:变异策略的选择(步骤6),对杂交概率的动态更新(步骤17),选择因子CH的计算(步骤20)。
二、仿真实验
种群规模设置为100,最大迭代次数为500,独立运算30次。分别与CABDE–1算法、CABDE–2算法、DE–best算法、DE–rand算法进行比较。其中:CABDE–1算法只执行高斯变异策略;CABDE–2算法只执行DE/current-to-best/1变异策略;DE–best算法和DE–rand算法是分别执行DE/best/1变异策略和DE/rand/1变异策略的基本DE算法,代表了两种最普遍的传统DE算法。以函数F1(单峰函数)、F10(多峰函数)为例。
下图为F1的寻优对比曲线。
最大值、最小值、平均值及标准差如下:
函数:F1
DE-rand:最大值: 0.00061614,最小值:0.00024239,平均值:0.00036732,标准差:8.7675e-05
DE-best:最大值: 5.9658e-13,最小值:4.3539e-14,平均值:1.7018e-13,标准差:1.1949e-13
CABDE-1:最大值: 2.2265e-05,最小值:1.2534e-06,平均值:7.9376e-06,标准差:1.0135e-14
CABDE-2:最大值: 5.5512e-14,最小值:4.9358e-27,平均值:1.8505e-15,标准差:1.0135e-14
CABDE:最大值: 5.9934e-12,最小值:2.5306e-13,平均值:1.5473e-12,标准差:1.2553e-12
下图为F10的寻优对比曲线。
最大值、最小值、平均值及标准差如下:
函数:F10
DE-rand:最大值: 0.006861,最小值:0.0040305,平均值:0.0054765,标准差:0.00077243
DE-best:最大值: 1.9257e-07,最小值:5.4814e-08,平均值:1.1382e-07,标准差:3.2519e-08
CABDE-1:最大值: 0.002308,最小值:0.00031488,平均值:0.00069679,标准差:0.30881
CABDE-2:最大值: 1.1551,最小值:3.6415e-14,平均值:0.10059,标准差:0.30881
CABDE:最大值: 6.3658e-07,最小值:1.7612e-07,平均值:3.709e-07,标准差:1.2581e-07
三、参考文献
[1] 彭虎, 吴志健, 周新宇, 等. 基于三角的骨架差分进化算法[J]. 计算机研究与发展, 2015, 52(12): 2776-2788.
[2] 熊小峰, 刘啸婵, 郭肇禄, 等. 余弦适应性骨架差分进化算法[J]. 工程科学与技术, 2020, 52(2): 180-191.