An Improved Differential Evolution Algorithm for Unconstrained Optimization Problems (用于无约束优化问题改进的差分进化算法 )
1.算法背景及策略:
传统差分演化(DE)算法具有过早收敛的倾向。 本算法提出了一种基于动态变异算子和反对学习策略的改进型DE。 这些机制可以扩大搜索范围,有助于平衡DE的探索和开发。
2.算法步骤:
(1)初始化随机生成种群,执行经典DE算法中的变异,交叉,选择操作
(2)动态变异算子:
高斯分布和柯西分布是随机变量的主要分布函数。当n趋于无穷大时,t分布趋于高斯分布。当n为1时,t分布变化为Cauchy分布。 T分布和柯西分布将平衡算法中的探索和利用。
构建以下变异算子:
kXij(t)=Xij(t)+1kρ,Xij(t)=Xij(t)+1kη,=2dj+∑NPi=1D(G(t)−Xi(t))NP
X
j
i
(
t
)
=
X
j
i
(
t
)
+
1
k
ρ
,
X
j
i
(
t
)
=
X
j
i
(
t
)
+
1
k
η
,
k
=
2
d
j
+
∑
i
=
1
N
P
D
(
G
(
t
)
−
X
i
(
t
)
)
N
P
其中 dj d j 是第j维间隔的长度, D(G(t)−Xi(t)) D ( G ( t ) − X i ( t ) ) 是全局最优位置和第i个个体位置的欧几里德距离。 ∑NPi=1D(G(t)−Xi(t)) ∑ i = 1 N P D ( G ( t ) − X i ( t ) ) 表示群体聚集水平,显然变异算子是动态的,随机选择三个个体适应性较差,经过变异算子更新,可以保持种群多样性,深入发展搜索区域,避免陷入局部最优。
(3)反向学习:
反向学习(OBL)经常被应用于许多最优算法。 OBL的主要思想是计算和评估可行解及其相反方向解。 选择更好的解决方案进入下一代。
让 XI=(xi1,xi2,⋯,xiND) X I = ( x 1 i , x 2 i , ⋯ , x N D i ) 是搜索区域中的一个可行解,其中 xj∈[aj,bj] x j ∈ [ a j , b j ] ,则反向点可以定义如下
x¯ij=aj+bj−xij.
x
¯
j
i
=
a
j
+
b
j
−
x
j
i
.
让 Xi=(xi1,xi2,⋯,xiND) X i = ( x 1 i , x 2 i , ⋯ , x N D i ) 是种群中的一个个体, Xi∗=(xi∗1,xi∗2,⋯,xi∗ND) X i ∗ = ( x 1 i ∗ , x 2 i ∗ , ⋯ , x N D i ∗ ) 是这个个体的优化值,反向解定义如下:
xi∗j=k(daj+dbj)−xi∗j,
x
j
i
∗
=
k
(
d
a
j
+
d
b
j
)
−
x
j
i
∗
,