首先先介绍传统的差分进化(DE)算法的变异操作
其中
x
b
!
=
x
r
1
!
=
x
r
2
x_b != x_{r1} != x_{r2}
xb!=xr1!=xr2,这三个变量均为种群中的任意一个个体。
IDE(Individual-dependent Differential Evolution) details
- IDE提出了一种新的便以机制:fitness排名高的个体会配置更低的缩放因子F的来exploit他附近的promising区域,fitness排名低的个体则配置更高的缩放因子F来explore距离他更远的区域来寻找更好的solution
- IDE提出一种基于排名的机制,在变异和交叉前首先对所有个体进行排序,更新公式为
- IDE在每次迭代前将个体分为两个集合S(superior)和I(inferior)(S中的fitness比I的小),IDE的变异公式为
在算法的前期 o = i o=i o=i,在算法的后期 o o o随机选取(在算法前期为了加强种群多样性,在算法后期为了加快收敛)。 b e t t e r better better从S中随机抽取。当o属于I的时候,可以用S的个体来引导个体去探索。怎么来定义算法前期和后期呢,使用一个阈值 g t g_t gt来划分。连续T代,后代成功进入下一代的比例SR都小于SRT时,改变变异策略。从为了加大种群多样性到为了加快收敛速度。 - 根据第一个公式中交叉率进行交叉