参考文献:LSHADE-SPACMA
LSHADE部分
具体请参见LSHADE
CMA-ES部分
具体请参见CMA-ES
SPA:对F和CR的半参数自适应
SPA部分包括两个过程:前一半周期对CR的自适应和后一半周期对F和CR的自适应
SPA第一部分
个体F通过高斯分布产生:
F
i
=
0.45
+
0.1
?
r
a
n
d
F_i=0.45+0.1\cdot rand
Fi?=0.45+0.1?rand 个体CR通过高斯分布产生:
C
R
i
=
r
a
n
d
n
(
M
c
r
i
,
0.1
)
CR_i=randn(M_{cri},0.1)
CRi?=randn(Mcri?,0.1)
SPA第二部分
个体F通过柯西分布产生:
F
i
=
r
a
n
d
c
(
M
F
i
,
σ
)
,
σ
=
0.1
F_i=randc(MF_i,\sigma),\sigma=0.1
Fi?=randc(MFi?,σ),σ=0.1 个体CR通过高斯分布产生:
C
R
i
=
r
a
n
d
n
(
M
c
r
i
,
0.1
)
CR_i=randn(M_{cri},0.1)
CRi?=randn(Mcri?,0.1)
SPACMA:SPA与CMA-ES混合框架
首先引入几个新的参数:
- FCP:分割概率,决定个体产生子代的方式
-
M
F
C
P
M_{FCP}
MFCP?:存储FCP的记忆项
-
M
F
C
P
M_{FCP}
MFCP?的自适应:
M
F
C
P
,
g
+
1
=
(
1
?
c
)
M
F
C
P
,
g
+
c
?
△
a
l
g
1
M_{FCP,g+1}=(1-c)M_{FCP,g}+c\cdot\bigtriangleup_{alg1}
MFCP,g+1?=(1?c)MFCP,g?+c?△alg1?,c是学习速率,
△
a
l
g
1
\bigtriangleup_{alg1}
△alg1?是改进占比,它的计算方式如下:
-
△
a
l
g
1
=
m
i
n
(
0.8
,
m
a
x
(
0.2
,
ω
A
l
g
1
ω
A
l
g
1
+
ω
A
l
g
2
)
)
\bigtriangleup_{alg1}=min(0.8,max(0.2,\frac{\omega_{Alg1}}{\omega_{Alg1}+\omega_{Alg2}} ))
△alg1?=min(0.8,max(0.2,ωAlg1?+ωAlg2?ωAlg1??)),这里要求FCP的值必须在[0.2,0.8]这个范围内
-
ω
A
l
g
1
\omega_{Alg1}
ωAlg1?表示属于第一部分所有个体的适应度差值的累加:
ω
A
l
g
1
=
∑
f
(
x
)
?
f
(
u
)
\omega_{Alg1}=\sum f(x)-f(u)
ωAlg1?=∑f(x)?f(u)
SPACMA改变了LSHADE参数自适应的方式和产生子代的方式,在LSHADE-SPACMA中,每个个体根据自身的FCP值决定是通过原始LSHADE方法还是通过CMA-ES的取样方法产生变异向量,此后两个子代种群会合并,在迭代过程中,算法会自动分配FCP的比值,以朝着最优化的方向前进,而SPA第一部分对F的钳制使得算法不容易过早收敛,
参数设置
-
M
C
R
,
M
F
,
M
F
C
P
M_{CR},M_{F},M_{FCP}
MCR?,MF?,MFCP?初始化为0.5
- 记忆长度
H
=
5
H=5
H=5
- 初始种群大小:
N
i
n
i
t
=
18
?
D
i
m
N_{init}=18*Dim
Ninit?=18?Dim
- 外部集合大小:
1.4
?
N
1.4*N
1.4?N
算法流程
- 初始化参数
- while
- 从记忆项中随机选取一个值
r
i
f
r
o
m
[
1
,
H
]
r_{i}from[1,H]
ri?from[1,H]
- 产生个体的CR,FCP,F值
- 根据FCP值划分种群
[
P
L
S
H
A
D
E
,
P
C
M
A
]
[P_{LSHADE},P_{CMA}]
[PLSHADE?,PCMA?]
- 分别用LSHADE和CMA-ES产生突变向量
V
L
S
H
A
D
E
,
V
C
M
A
?
E
S
V_{LSHADE},V_{CMA-ES}
VLSHADE?,VCMA?ES?
- 交叉产生试验向量
U
G
U_G
UG?
- 选择操作
- 存储成功改进个体的CR,FCP,F值
- 更新外部存档A
- 更新记忆项
M
C
R
,
M
F
,
M
F
C
P
M_{CR},M_{F},M_{FCP}
MCR?,MF?,MFCP?
实验结果分析
- 低维度上SPACMA没有明显改善
- 中等维度上SPA发挥了作用
- 高维度上CMA发挥了作用
源代码
matlab code
|