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))NPXji(t)=Xji(t)+1kρ,Xji(t)=Xji(t)+1kη,k=2dj+∑i=1NPD(G(t)?Xi(t))NP
其中djdj是第j维间隔的长度,D(G(t)?Xi(t))D(G(t)?Xi(t))是全局最优位置和第i个个体位置的欧几里德距离。 ∑NPi=1D(G(t)?Xi(t))∑i=1NPD(G(t)?Xi(t))表示群体聚集水平,显然变异算子是动态的,随机选择三个个体适应性较差,经过变异算子更新,可以保持种群多样性,深入发展搜索区域,避免陷入局部最优。
(3)反向学习:
反向学习(OBL)经常被应用于许多最优算法。 OBL的主要思想是计算和评估可行解及其相反方向解。 选择更好的解决方案进入下一代。
让XI=(xi1,xi2,?,xiND)XI=(x1i,x2i,?,xNDi)是搜索区域中的一个可行解,其中xj∈[aj,bj]xj∈[aj,bj],则反向点可以定义如下
x?ij=aj+bj?xij.x?ji=aj+bj?xji.
让Xi=(xi1,xi2,?,xiND)Xi=(x1i,x2i,?,xNDi)是种群中的一个个体,Xi?=(xi?1,xi?2,?,xi?ND)Xi?=(x1i?,x2i?,?,xNDi?)是这个个体的优化值,反向解定义如下:
xi?j=k(daj+dbj)?xi?j,xji?=k(daj+dbj)?xji?,