self-adaptive differential evolution with neighborhood search
Differential Evolution (DE)
假设有一问题,D维,种群大小为NP,即一NPxD的矩阵
经典DE流程:
1.Mutation(变异):
\(v_i=x_{i1}+F*(x_{i2}-x_{i3})\),其中\(i_1,i_2,i_3是属于[1,NP]的随机,互不相同的整数\),尺度因子F>0是一实数,通常设为0.5
2.Crossover(交叉):
\(f(x)=\begin{cases}v_i(j) & if U_j(0,1)<=CR or j=j_{rand}\\x_{i}(j)&otherwise \end{cases}\)
其中\(U_j(0,1)\)是0-1均匀分布,CR是交叉比例,通常设置为0.9
3.Selection(选择):
$x_i'=\begin{cases} u_i & if \quad f(u_i)<=f(x_i) \ x_{i}&otherwise \end{cases} $
基于不同的变异策略,有几种DE方案
vi = xi1 + F · (xi2 − xi3) (1)
vi = xbest + F · (xi1 − xi2) (2)
vi = xi + F · (xbest − xi) + F · (xi1 − xi2) (3)
vi = xbest + F · (xi1 − xi2) + F · (xi3 − xi4) (4)
vi = xi1 + F · (xi2 − xi3) + F · (xi4 − xi5) (5)
Differential Evolution with Neighborhood Search(NSDE)
NSDE [1]是最近的DE变体,它利用了进化规划(EP)中的临近搜索(NS)策略
NSDE与上述描述的经典DE相同,除了比例因子F由以下等式代替:
\(F_i=\begin{cases} N_i(0.5,0.5) & if U_j(0,1)<=fp \\ \delta_i &otherwise \end{cases}\)
\(N_i(0.5,0.5)\)表示均值为0.5,标准差为0.5的高斯随机数,\(\delta_i\)表示柯西随机变量,参数fp通常设置为0.5
SaDE
$v_i=\begin{cases} x_{i1}+F(x_{i2}-x_{i3}) & if\quad U_j(0,1)<=p \ x_{i}+F(x_{best}-x_i)+F(x_{i1}-x_{i2}) &otherwise \end{cases} $
这里,p初始设置为0.5
p =ns1 · (ns2 + nf2) / (ns2 · (ns1 + nf1) + ns1 · (ns2 + nf2) )
其中ns1是分段函数上段出现的次数,ns2是分段函数下段出现的次数
尺度因子F设置为:
\(F_i=N_i(0.5,0.3)\)
交叉因子CR设置为:
\(CR_i=N_i(CRm,0.1)\)
CRm初始设置为0.5,(每5代更新一次CRm)
更新规则为:
\(CRm=\frac{1}{|CR_{rec}|}\sum_{k=1}^{|CR_{rec}|}CR_{rec}(k)\)
其中\(CR_{rec}\)是一数组,数组元素表示某一代个体成功交叉的比例,\(|CR_{rec}|\)是数组长度,这里长度为25
SaDE和NSDE具有不同的侧重点:前者特别关注不同变异策略之间的自适应,以及交叉率CR的自适应,而后者打算混合不同NS的搜索偏差。
SaNSDE:
变异策略:SaNSDE使用与SaDE相同的变异策略
尺度因子F:\(F_i = \begin{cases}N_i(0.5,0.3) & if U_j(0,1)<=fp \\ \delta_i&otherwise \end{cases}\)
其中\(fp\)会与SaNS中p的更新公式一致
CCDE 伪代码
1: G = {G1, . . . , Gn} ← grouping(n)
2: pop ← initialise(pop1, . . . , popn)
3: while termination criteria false do
4: for each subcomponent i do
5: select parents from popi
6: produce children from selected parents
7: select collaborators from (pop − popi)
8: evaluate children interacting with collaborators
9: assign fitness to children and collaborators
10: select survivors for new popi
11: end for
12: end while
13: return best solution

浙公网安备 33010602011771号