一、介绍 差分进化算法是模拟自然界生物种群以“优胜劣汰,适者生存”为原则的进化发展规律而形成的一种随机启发式搜索算法。其保留了基于种群的全局搜索策略,采用实数编码,基于差分的简单变异操作和一对一的竞争生存策略,比遗传算法更简单。同时,差分进化算法独特的记忆能力使其可以动态的跟踪当前的搜索情况,及时调整搜索测量,因此具有较强的全局收敛能力。 目前为止,差分进化算法已经成为一种求解非线性,不可微,多极值和高维复杂函数的一种极其有效的方法。 在优化设计中,差分进化算法与传统的算法相比,具有以下特点: 1.差分进化算法从一个群体即多个点而不是从一个点开始搜索,这也是算法能够以较大的概率找到整体最优解的原因。 2.算法的进化准则是基于适应性信息的,不需要其他的辅助性信息,如要求函数可导,连续等。 3. 差分进化算法具有内在的并行性,适用于大规模并行分布处理,减小时间成本开销。 但缺点为: 1.算法后期个体之间的差异性减小,收敛速度慢,易陷入局部最优。 2.没有利用个体的先验知识,可能较多的迭代次数才能收敛到全局最优 算法框架: (1)群体初始化 在n维空间里随机产生满足约束条件的M个个体
x
i
j
(
0
)
=
x
i
j
m
i
n
+
(
x
i
j
m
a
x
−
x
i
j
m
i
n
)
∗
r
a
n
d
(
0
,
1
)
x_{ij}(0)=x_{ij_{min}}+(x_{ij_{max}}-x_{ij_{min}})*rand(0,1)
xij(0)=xijmin+(xijmax−xijmin)∗rand(0,1) 其中,
x
i
j
m
a
x
,
x
i
j
m
i
n
x_{ij_{max}},x_{ij_{min}}
xijmax,xijmin表示第
j
j
j个染色体的上下界。 (2) 变异 从群体中随机选择三个个体
x
p
1
,
x
p
2
,
x
p
3
x_{p1},x_{p2},x_{p3}
xp1,xp2,xp3且要求
i
≠
p
1
≠
p
2
≠
p
3
i\neq