![](https://csdnimg.cn/release/download_crawler_static/87623577/bg1.jpg)
基本差分进化算法
1 基本差分进化算法的基本思想
DE 算法是一种基于实数编码的用于优化函数最小值的进化算法,是在求解
有关切比雪夫多项式的问题时提出来的,是基于群体差异的进化计算方法。它的
整体结构类似于遗传算法,一样都存在变异、交叉和选择操作,但是它又不同于
遗传算法。与基本遗传算法的主要区别在于变异操作上,如:
1、传统的遗传算法采用二进制编码,而差分进化算法采用实数编码。
2、在遗传算法中通过两个父代个体的交叉产生两个子个体,而在差分进化
算法中通过第两个或几个个体的差分矢量做扰动来产生新个体。
3、在传统的遗传算法中,子代个体以一定概率取代其父代个体,而在差分
进化中新产生的个体只有当它比种群中的个体优良时才替换种群中的个体。
变异是 DE 算法的主要操作,它是基于群体的差异向量来修正各个体的值,
其基本原理是通过把种群中两个个体的向量差加权后,按一定的规划与第三个个
体求和来产生新个体,然后将新个体与当代种群中某个预先决定的个体相比较,
如果新个体的目标值优于与之相比较的个体的目标值,则在下一代中就用新个体
取代,否则,旧个体仍保存下来。
差分进化算法其基本思想是:首先由父代个体间的变异操作构成变异个体;
接着按一定的概率,父代个体与变异个体之间进行交叉操作,生成一试验个体;
然后在父代个体与试验个体之间根据适应度的大小进行贪婪选择操作,保留较优
者,实现种群的进化。
2 差分进化算法的基本操作
设 当 前 进化 代 数为
t
, 群 体 规 模为
NP
, 空 间 维数 为
D
, 当 前 种 群 为
X (t)
x , x ,
t
1
t
2
, x
t
NP
,
x
x , x
t
i
t
i1
t
i2
, , x
t
T
iD
为种群中的第
i
个个体。在进化过程
中,对于每个个体 x
i
t
依次进行下面三种操作。
2.1 变异操作
对于每个个体
x
i
t
按下式产生变异个体
v
i
t
(v
i
t
1
, v
i
t
2
,
t T
, v
iD
)
,则
t
v
ij
x
r
t
1
j
F(x
r
t
2
j
x
r
t
3
j
) j 1,2, ,D
(1)
, x
r
t
3
D
)
T
是群
t t t
其中
x
r
(x , x ,
r r
1 1
1
1
2
t T t t t
,
, x
r
) x (x , x
r
2
r
2
1 r
2
2
,
1
D
, x
r
t
2
D
)
T
和
x
r
t
3
(x
r
t
3
1
, x
r
t
3
2
,
体中随机选择的三个个体,并且
r
1
r
2
r
3
i
;
x
r
t
1
j
,
x
r
t
2
j
和
x
r
t
3
j
分别为个体
r
1
,
r
2
和
r
3
的第
j
维分量;
F
为变异因子,一般取值于
[0,2]
。这样就得到了变异个体
v
i
t
。