
2.3 差分进化算法优化策略及其对算法的影响
2.2.1节中所介绍的DE变异、交叉方式只是DE算法的一种基本形式,Rainer Storn和Kenneth Price还提出了多种DE算法的变化形式,即不同的优化策略,为了区别这些优化策略,一般用DE/x/y/z的形式来描述[1, 2]。
x表示变异算子中的基向量的选择方式,主要分为3种:随机选取,简记为rand;选择当代种群中的最优解个体,简记为 best;选择当前目标个体,简记为current。式(2-3)中基向量Xr3(t)为随机选取,因此对应其优化策略中x应表示为rand。
y表示差分矢量的数目,通常取值为1或2。式(2-3)中只有一个差分矢量Dr1,2=Xr1(t)−Xr2(t),因此对应优化策略中y取值为1。
z表示交叉方式,分为指数交叉,简记为exp和二项式交叉,简记为bin两种,式(2-3)所描述的交叉方式为二项式交叉。
按照上述规定,2.2.1节中所描述的标准DE算法所采用的优化策略可表示为DE/rand/1/bin,即基向量随机选取、差分矢量数目为1、二项式交叉方式,该优化策略是DE算法最基本的优化策略,在实际中应用也最为广泛。
2.3.1 变异策略及其对算法的影响
DE算法本质上是通过种群个体之间的差异信息来修正各个体的值,以生成性能更为优良的个体,促使种群进化。算法中的变异操作决定了如何有效地利用群体差异信息引导种群个体的进化方向,因此对算法的求解精度和速度都有较大影响,是DE算法中最为重要的环节。变异操作的性能优劣主要由变异策略控制,变异策略规定了种群子代个体的生成方法,也即DE算法在可行解空间中的搜索方法,好的变异策略能有效提高种群中优质子代个体的数量,进而保证搜索到全局最优解,且有助于加快搜索速度。
变异策略形式变化多样且对算法整体性能影响重大,其形式变化主要体现在基向量和差分矢量的选择方式和数目上。对于基向量而言,选择方式有rand、best和current,式(2-3)所示的标准DE算法采用的变异策略为DE/rand/1,其中基向量选择采用的是rand方式。若采用种群中的最优解个体作为基向量,则构成另一种典型变异策略DE/best/1,如式(2-6)所示。
对于差分矢量而言,其数目至少为1但没有规定上限,实验研究表明,若差分矢量数目增至大于等于3时,继续增加对算法性能的影响将不再有明显变化[3,4]。换言之,差分矢量数目过大不仅不能改善算法性能,而且增大计算量,因此一般情况下差分矢量的数目小于3。式(2-3)中差分矢量的数目为1,若将其增至为2,则构成新的变异策略DE/rand/2,其对应的变异策略如式(2-7)所示。
其中,Xr4(t)−Xr5(t)为新增的差分矢量,且r1、r2、r3、r4和r5为[1,NP]范围内互不相同的随机整数,表示个体在种群中的索引号。F和λ均为缩放因子,其取值可以相同也可以不同,但多数情况下为减少算法的控制参数数目通常将其设为相同值。
以上所述为差分矢量数目的变化,另一重要变化在于差分矢量中个体选择方式的变化,典型代表如DE算法的创始人Price和Storn提出的变异策略DE/current-to-best/1,如式(2-8)所示。
将种群最优个体矢量Xbest(t)与目标个体矢量Xi(t)的差值作为差分矢量。
随着对DE算法研究的不断发展和完善,众多变异策略相继提出,目前使用广泛且较为成功的变异策略[3-17]主要包括以下几种。
(1)DE/rand/1
(2)DE/best/1
(3)DE/rand/2
(4)DE/best/2
(5)DE/current-to-rand/1
(6)DE/current-to-best/1
不同的变异策略特性迥异,对算法性能的影响也不尽相同。策略DE/rand/1和DE/rand/2代表的是无约束的自由搜索模式,所有组成个体均随机选择不受任何制约,因此搜索范围更广,种群多样性得到最大限度的保持,搜索到全局最优的概率增大。然而也正因为其搜索范围大,不利于保持优化方向,使得进化初期算法的收敛速度相对缓慢。变异策略DE/best/1、DE/best/2和DE/current-to-best/1中均引入了最优解个体引导搜索方向,变异个体的生成受到最优解个体的制约,搜索范围将围绕最优解展开,因而使得算法的收敛速度大大增加,趋向最优解的能力提高,然而若当前最优解个体为局部极值点,则会因为种群多样性的降低而增大陷入局部最优解的可能性[3-17]。
2.3.2 交叉策略及其对算法的影响
交叉操作实质上是变异操作的进一步延续和调控,其按照一定比例用变异个体中的各维分量更替父代目标个体相应分量值,既保留了变异的部分又保持了种群进化的连贯性。交叉操作通过交叉策略实现,交叉策略规定了父代目标个体中哪些分量以何种顺序被替代,控制了试验个体中来自变异个体的更新成分所占比例的大小,对算法的求解精度和速度有较强影响。
DE算法中的交叉策略主要有两种类型,即二项型交叉(简记为bin)和指数型交叉(简记为exp),二项型交叉表示交叉操作的概率分布满足二项式形式,指数型交叉表示交叉操作的概率分布满足指数形式。2.2.1节中的标准DE算法采用的是二项式交叉方式,在此方式下,当 rand(j)≤CR时,试验个体Ui(t+1)的相应分量来自于变异个体Vi(t+1);当rand(j)>CR时,试验个体Ui(t+1)的相应分量来自于目标个体Xi(t)。而在指数交叉方式下,当rand(j)≤CR时,试验个体Ui(t+1)的相应分量同样来自于变异个体Vi(t+1)。但是,当第一次出现rand(j)>CR时,试验个体Ui(t+1)中第j维之后的所有维分量均由目标个体Xi(t)贡献。实验研究表明,二项式交叉方式通常比指数型交叉方式具有更优的求解性能,因此其应用更为广泛。
由式(2-4)可知,不论哪种交叉方式,若CR取值越大,则Ui(t+1)中有越多维分量来自Vi(t+1),当CR=1时,Ui(t+1)=Vi(t+1),因此使得个体的更新速度加快,有助于加快收敛速度和局部搜索能力的加强;若CR取值越小,则Ui(t+1)中有越多维分量来自Xi(t),当CR=0时,Ui(t+1)=Xi(t),因此使得个体的更新速度减慢,有助于维持种群的多样性和全局搜索能力的加强[3-17]。