2021年ASOC SCI1区:自适应差分进化算EaDE,深度解析+性能实测
目录
- 1.摘要
- 2.改进策略
- 3.结果展示
- 4.参考文献
- 5.代码获取
1.摘要
现有的多策略自适应差分进化算法(DE)通常会试验多种策略,并将更多资源分配给表现更优的策略。然而,这种方法的实施可能会导致过度开发或过度探索的问题。为了优化性能,本文提出了显式自适应方案(Ea scheme),它将不同策略分开,并根据需求灵活运用。EaDE是将进化过程分为选择候选者与相似性选择(SCSS)代和自适应代。在SCSS代中,通过采用平衡策略来学习和满足开发与探索的需求;而在自适应代中,则根据这些需求自适应地采用开发性或探索性策略。
2.改进策略
在EaDE中,除了SCSS-L-SHADE_GD0.5(标记为S1)外,还包含了两种其他策略:SCSS-L-SHADE_GD0.1(标记为S2)和SCSS-L-CIPDE_GD0.9(标记为S3),这三种策略的主要区别在于变异和交叉算子。SCSS-L-SHADE采用current-to-pbest/1变异和经典的二项交叉,而SCSS-L-CIPDE则使用集体信息驱动(CIP)变异和混合交叉算子。
SCSS-L-CIPDE_GD0.9更加倾向于开发,而SCSS-L-SHADE_GD0.1则倾向于探索。将抽样种群的多样性定义为:
D
i
v
G
=
1
N
P
∑
i
=
1
N
P
∥
u
⃗
i
,
G
−
u
ˉ
G
∥
Div_G=\frac{1}{NP}\sum_{i=1}^{NP}\|\vec{u}_{i,G}-\bar{u}_G\|
DivG=NP1i=1∑NP∥ui,G−uˉG∥
整个进化过程被划分为若干个不重叠的区间,每个区间包含相等数量的世代。在每个区间内,分别设有SCSS世代和自适应世代,其中SCSS世代的大小为LEN,自适应世代的大小为K×LEN(K为整数)。在SCSS世代中,使用SCSS-L-SHADE_GD0.5策略,并分别计算优质部分和劣质部分的总适应度改进。这一结构旨在通过精确的世代划分和策略分配,优化进化过程中的性能表现。
l
M
P
_
S
=
∑
g
=
1
L
E
N
∑
r
a
n
k
(
i
)
=
1
⌊
N
P
/
2
⌋
Δ
f
i
lMP\_S=\sum_{g=1}^{LEN}\sum_{rank(i)=1}^{\lfloor NP/2\rfloor}\Delta f_i
lMP_S=g=1∑LENrank(i)=1∑⌊NP/2⌋Δfi
I
M
P
_
I
=
∑
g
=
1
L
E
N
∑
r
a
n
k
(
i
)
=
⌈
N
P
/
2
⌉
+
1
N
P
Δ
f
i
IMP\_I=\sum_{g=1}^{LEN}\sum_{rank(i)=\lceil NP/2\rceil+1}^{NP}\Delta f_i
IMP_I=g=1∑LENrank(i)=⌈NP/2⌉+1∑NPΔfi
伪代码
3.结果展示
4.参考文献
[1] Zhang S X, Chan W S, Tang K S, et al. Adaptive strategy in differential evolution via explicit exploitation and exploration controls[J]. Applied Soft Computing, 2021, 107: 107494.