为了进一步提高差分进化(DE)最具竞争力的变体之一L-SHADE的性能,研究中提出了一种新的自适应L-SHADE算法AL-SHADE。对L-SHADE进行了两个主要部分的修改。一部分,在突变过程中添加了一种新的突变策略,以提高开发能力,充分利用种群信息。另一部分,提出了一种带有突变策略自适应方案的选择策略,以调整开发和探索。

2. 相关工作

最近,DE 仍然被选为开发新型进化算法的基础,特别是在连续优化领域[26]、[28]、[29],尽管它在1995年被开发。L-SHADE [4] 被认为是过去几十年中DE最成功的变体之一,因为它是2014年IEEE进化计算竞赛(IEEE CEC 2014)的获胜者。在本节中,详细介绍了L-SHADE。

2.1. 初始化策略

种群中的初始个体(解向量)随机初始化,如公式(1)所示。

xi,j0=Lj+rand⋅(Uj−Lj),i=1,2,3⋯ ,NP;j=1,2,3⋯ ,D(1) x_{i,j}^0 = L_j + \text{rand} \cdot (U_j - L_j), \quad i = 1, 2, 3 \cdots, NP; \quad j = 1, 2, 3 \cdots, D \tag{1} xi,j0=Lj+rand(UjLj),i=1,2,3,NP;j=1,2,3,D(1)

其中 rand\text{rand}rand 是0到1之间的均匀分布随机数。LLLUUU 是定义搜索空间的问题特定上下界。NPNPNP 是种群大小。DDD 是问题特定的维度。

历史记忆 MCRM_{CR}MCRMFM_FMF 的值,其中包含交叉率 CRCRCR 和缩放因子 FFF 的条目,在初始化阶段初始化为0.5,如公式(2)所示。需要注意的是,CRCRCRFFF 的所有元素都是0到1之间的标量,HHH 是历史记忆的大小。此外,外部存档 AAA 初始化为空,因为没有先前的劣解。

{MCR,k=0.5MF,k=0.5,k=1,2,3⋯ ,H(2) \begin{cases} M_{CR,k} = 0.5 \\ M_{F,k} = 0.5 \end{cases}, \quad k = 1, 2, 3 \cdots, H \tag{2} {MCR,k=0.5MF,k=0.5,k=1,2,3,H(2)

2.2. 变异策略

在L-SHADE中,采用变异策略current-to-pbest/1。为个体 xix_ixi 生成的变异向量 viv_ivi 使用种群中的四个向量(个体)生成,如公式(3)所示。缩放因子 FiF_iFi 生成如公式(4)所示。

vi=xi+Fi⋅(xpbest−xi)+Fi⋅(xr1−xr2)(3) v_i = x_i + F_i \cdot (x_{\text{pbest}} - x_i) + F_i \cdot (x_{r1} - x_{r2}) \tag{3} vi=xi+Fi(xpbestxi)+Fi(xr1xr2)(3)
Fi=randc(MF,r3,0.1)(4) F_i = \text{randc}(M_{F,r3}, 0.1) \tag{4} Fi=randc(MF,r3,0.1)(4)

在公式(3)中,xpbestx_{\text{pbest}}xpbest 是当前种群中前 NP×pNP \times pNP×p 个个体中随机选择的主导个体,ppp 是贪婪控制参数,它在开发和探索(小 ppp 行为更贪婪)之间进行权衡。xr1x_{r1}xr1 是从当前种群中随机选择的,xr2x_{r2}xr2 是从当前种群和外部存档的联合中随机选择的,并且 xr1x_{r1}xr1xr2x_{r2}xr2 彼此不同以及与 xix_ixi 不同。在公式(4)中,FiF_iFi 是一个遵循均值 MF,r3M_{F,r3}MF,r3 和标准差值参数 0.1 的柯西分布的随机变量,MF,r3M_{F,r3}MF,r3 是从具有相同索引 r3r3r3 的记忆 MFM_FMF 中随机选择的值。如果 Fi>1F_i > 1Fi>1,则 FiF_iFi 将设置为 1,如果 Fi≤0F_i \leq 0Fi0,公式(4)将重复应用以生成有效值。此外,如果变异向量元素 vi,jv_{i,j}vi,j 超出搜索范围 [Lj,Uj][L_j, U_j][Lj,Uj],则采用修正策略,如公式(5)所示。

vi,j={(Lj+xi,j)/2,vi,j<Lj(Uj+xi,j)/2,vi,j>Uj(5) v_{i,j} = \begin{cases} (L_j + x_{i,j}) / 2, & v_{i,j} < L_j \\ (U_j + x_{i,j}) / 2, & v_{i,j} > U_j \end{cases} \tag{5} vi,j={(Lj+xi,j)/2,(Uj+xi,j)/2,vi,j<Ljvi,j>Uj(5)

2.3. 交叉策略

在将变异策略应用于生成的变异向量 viv_ivi 后,生成试验向量 uiu_iui,基于变异向量 viv_ivi 和原始向量 xix_ixi,使用二项式交叉策略,如公式(6)所示。

ui,j={vi,j,r<CRj 或 j=jrandxi,j,否则(6) u_{i,j} = \begin{cases} v_{i,j}, & r < CR_j \text{ 或 } j = j_{\text{rand}} \\ x_{i,j}, & \text{否则} \end{cases} \tag{6} ui,j={vi,j,xi,j,r<CRj  j=jrand否则(6)

在公式(6)中,r∈(0,1)r \in (0,1)r(0,1) 是均匀分布的随机数,jrand∈[1,D]j_{\text{rand}} \in [1, D]jrand[1,D] 是决策变量索引,它是随机生成的,并且可以确保至少从变异向量中取一个分量 uiu_iui。个体 xix_ixi 的交叉率值 CRjCR_jCRj 从高斯分布中给出,如公式(7)所示。如果公式(7)生成的 CRjCR_jCRj 超出 [0,1][0, 1][0,1],则用生成值的极限值 (0 或 1)(0 \text{ 或 } 1)(0  1) 替换。

CRj={0,MCR,r3=⊥randn(MCR,r3,0.1),否则(7) CR_j = \begin{cases} 0, & M_{CR,r3} = \bot \\ \text{randn}(M_{CR,r3}, 0.1), & \text{否则} \end{cases} \tag{7} CRj={0,randn(MCR,r3,0.1),MCR,r3=否则(7)

在公式(7)中,⊥\bot 表示终端值。MCR,r3M_{CR,r3}MCR,r3 是从具有相同索引 r3r3r3 的交叉率历史记忆 MCRM_{CR}MCR 中随机选择的均值参数,如缩放因子 FFF 的情况,0.1 是标准差值参数。

2.4. 选择策略

在当前代 ggg 生成所有试验向量 uuu 后,基于目标函数值的选择操作应用于确定下一代 g+1g+1g+1 的幸存者,如公式(8)所示。

xig+1={uig,f(uig)≤f(xig)xig,否则(8) x_i^{g+1} = \begin{cases} u_i^g, & f(u_i^g) \leq f(x_i^g) \\ x_i^g, & \text{否则} \end{cases} \tag{8} xig+1={uig,xig,f(uig)f(xig)否则(8)

在公式(8)中,fff 是问题特定的目标函数。

2.5. 外部存档和历史记忆更新策略

在L-SHADE中,采用外部存档 AAA 以增强种群的多样性并避免过早收敛。如果父向量 xigx_i^gxig 优于试验向量 uigu_i^guig,则将其保留到下一代,否则将其保留到外部存档 AAA 中。一旦存档的大小达到预定大小,随机选择一个元素被新插入的元素替换。FiF_iFiCRiCR_iCRi 值成功生成试验个体,优于历史个体,则被视为成功值。所有成功的值分别保留到 SCRS_{CR}SCRSFS_FSF 中,这些值用于在每一代结束时更新历史记忆 MCRM_{CR}MCRMFM_FMF,如公式(9)-(10)所示。一对 MCRM_{CR}MCRMFM_FMF 中的元素在一代中生成,索引 kkk 从 1 开始并在每一代后增加 1,kkk 将在超过内存大小 HHH 时重置为 1。需要注意的是,如果 SCRS_{CR}SCR=SFS_FSF=0,即在一代中没有试验向量优于原始向量,则 MCRM_{CR}MCRMFM_FMF 将不会被更新。更重要的是,本文提出的AL-SHADE中的记忆 MCRM_{CR}MCRMFM_FMF 的最后条目在优化过程中始终保留 0.9。换句话说,如果超过 H−1H-1H1,则更新单元的索引 kkk 将重置为 1。

MF,k={MF,k,SF=∅meanWL(SF),否则(9) M_{F,k} = \begin{cases} M_{F,k}, & S_F = \emptyset \\ \text{mean}_{WL}(S_F), & \text{否则} \end{cases} \tag{9} MF,k={MF,k,meanWL(SF),SF=否则(9)
MCR,k={⊥,SCR=∅meanWL(SCR),否则(10) M_{CR,k} = \begin{cases} \bot, & S_{CR} = \emptyset \\ \text{mean}_{WL}(S_{CR}), & \text{否则} \end{cases} \tag{10} MCR,k={,meanWL(SCR),SCR=否则(10)

在公式(9)-(10)中,meanWL(S)\text{mean}_{WL}(S)meanWL(S) 是加权勒梅尔平均值,计算如公式(11),(12)所示,其中 SSS 表示 SCRS_{CR}SCRSFS_FSF

meanWL(S)=∑n=1∣S∣ωn⋅Sn2∑n=1∣S∣ωn⋅Sn(11) \text{mean}_{WL}(S) = \frac{\sum_{n=1}^{|S|} \omega_n \cdot S_n^2}{\sum_{n=1}^{|S|} \omega_n \cdot S_n} \tag{11} meanWL(S)=n=1SωnSnn=1SωnSn2(11)
ωn=∣f(un)−f(xn)∣∑n=1∣S∣∣f(un)−f(xn)∣(12) \omega_n = \frac{|f(u_n) - f(x_n)|}{\sum_{n=1}^{|S|} |f(u_n) - f(x_n)|} \tag{12} ωn=n=1Sf(un)f(xn)f(un)f(xn)(12)

2.6. 线性种群规模缩减

在L-SHADE中,采用线性种群规模缩减(LPSR)动态调整种群规模,即种群规模在代 1 和 GGG(终止迭代次数)时连续减少以匹配线性函数,其中种群规模在代 1 和 GGG 时分别为 Nmin⁡N_{\min}NminNmax⁡N_{\max}Nmax。种群规模在代 g+1g+1g+1 更新如公式(13)所示。

NPg+1=round[FEsFEmax⁡(Nmin⁡−Ninit)+Ninit](13) NP_{g+1} = \text{round} \left[ \frac{FE_s}{FE_{\max}} (N_{\min} - N_{\text{init}}) + N_{\text{init}} \right] \tag{13} NPg+1=round[FEmaxFEs(NminNinit)+Ninit](13)

在公式(13)中,round()\text{round}()round() 返回最接近的整数。FEsFE_sFEs 是当前目标函数评估次数,FEmax⁡FE_{\max}FEmax 是目标函数评估的最大次数。在代 ggg 结束时,NPg−NPg+1NP_g - NP_{g+1}NPgNPg+1 最差个体将从当前种群中丢弃。
在这里插入图片描述

3. 提出的AL-SHADE算法

在本节中,描述了L-SHADE的新变体,命名为AL-SHADE。对L-SHADE的改进策略主要包括两个部分。一方面,在变异过程中添加了一种新的变异策略current-to-Amean/1。另一方面,采用了一种具有变异策略适应方案的选择策略。AL-SHADE在本节中详细描述。

3.1. 基于加权均值的变异策略

变异策略current-to-pbest/1已被证明是一种有效的变异策略,可以有效加速基于DE算法的收敛速度,并且与变异策略current-to-best/1相比,它也可以在一定程度上避免陷入局部最优。然而,随着种群的减少,当前种群中前 NP×pNP \times pNP×p 个个体的数量减少。在优化过程的后期,xpbestx_{\text{pbest}}xpbest 接近 xbestx_{\text{best}}xbest,甚至 xbestx_{\text{best}}xbestxbestx_{\text{best}}xbest,这将导致陷入局部最优。此外,这些在L-SHADE中代 ggg 被保留在 AAA 中的个体是主导个体,它们在代 ggg 中被消除。外部存档 AAA 中的少数个体被随机选为 xl2x_{l2}xl2 用于公式(3)中的变异,这并没有充分利用优化过程中的群体信息。为了解决上述缺点,本工作中提出了一种新的变异策略,命名为current-to-Amean/1,如公式(14)所示。

vi=xi+Fi(xAmean−xi)+Fi(xr1−xr2)(14) v_i = x_i + F_i(x_{\text{Amean}} - x_i) + F_i(x_{r1} - x_{r2}) \tag{14} vi=xi+Fi(xAmeanxi)+Fi(xr1xr2)(14)

在公式(14)中,xAmeanx_{\text{Amean}}xAmean 是基于外部存档 AAA 中有希望的个体估计的全局最优解,这将避免陷入局部最优。xAmeanx_{\text{Amean}}xAmean 是通过使用公式(15)计算的。

xAmean=∑i=1mwi⋅xi(15) x_{\text{Amean}} = \sum_{i=1}^{m} w_i \cdot x_i \tag{15} xAmean=i=1mwixi(15)
wi=ln⁡(m+1/2)−ln⁡(i)∑i=1m(ln⁡(m+1/2)−ln⁡(i))(16) w_i = \frac{\ln(m+1/2) - \ln(i)}{\sum_{i=1}^{m} (\ln(m+1/2) - \ln(i))} \tag{16} wi=i=1m(ln(m+1/2)ln(i))ln(m+1/2)ln(i)(16)
m=round(e⋅∣A∣)(17) m = \text{round}(e \cdot |A|) \tag{17} m=round(eA)(17)

在公式(15)-(17)中,从外部存档 AAA 中选择适应度更好的 mmm 个个体作为有希望的种群,用于计算加权均值 xAmeanx_{\text{Amean}}xAmeanwiw_iwi 是通过公式(16)计算的 xix_ixi 的权重,x1,x2,x3,…,xmx_1, x_2, x_3, \ldots, x_mx1,x2,x3,,xm 是目标函数值从高到低排列的 mmm 个有希望的个体,即 x1x_1x1 是最好的,xmx_mxmx1,x2,x3,…,xmx_1, x_2, x_3, \ldots, x_mx1,x2,x3,,xm 中最差的,∣A∣|A|A 是外部存档 AAA 中的个体数量,e(0,1)e(0,1)e(0,1) 是精英因子参数。

此外,AL-SHADE中外部存档 AAA 的更新机制进行了调整,以充分利用新生成的主导个体,而不是以前的主导个体,即优于父向量的试验向量将被保留到下一代和外部存档 AAA 中。由于 AAA 中的个体在第一代中使用,AAA 不再初始化为空集,而是保存初始化生成的最佳个体。

3.2. 具有适应方案的选择策略

注意到新的变异策略current-to-Amean/1被添加为变异策略之一,而不是直接替换变异策略current-to-pbest/1,因为公式(3)和公式(14)在优化的不同阶段扮演不同的角色。有效地整合两种变异策略以充分利用它们的优势至关重要。因此,本节提出了具有适应方案的选择策略,以有效地整合两种变异策略。采用自适应概率参数 PsP_sPs 来选择公式(3)或公式(14),每个个体在每一代中都有一定的概率。由于没有先验知识,PsP_sPs 初始化为0.5,并在搜索过程中根据公式(18)自适应调整。

Psg+1=Psg+0.05(1−Psg)(P1−P2)⋅FEsMax⋅FEs(18) P_s^{g+1} = P_s^g + \frac{0.05(1-P_s^g)(P_1 - P_2) \cdot FE_s}{\text{Max} \cdot FE_s} \tag{18} Psg+1=Psg+MaxFEs0.05(1Psg)(P1P2)FEs(18)
P1=M1,betterM1(19) P_1 = \frac{M_{1,\text{better}}}{M_1} \tag{19} P1=M1M1,better(19)
P2=M2,betterM2(20) P_2 = \frac{M_{2,\text{better}}}{M_2} \tag{20} P2=M2M2,better(20)

在公式(18)-(20)中,M1M_1M1M2M_2M2 分别是使用公式(3)和公式(14)作为变异策略的个体数量。M1,betterM_{1,\text{better}}M1,betterM2,betterM_{2,\text{better}}M2,better 是使用公式(3)和公式(14)作为变异策略生成的更好个体的数量。因此,P1P_1P1P2P_2P2 分别是使用公式(3)和公式(14)作为变异策略在第 ggg 代生成更好解的概率。此外,如果 Psg+1P_s^{g+1}Psg+1 超出 [0.1,0.9],则它将被替换为最接近生成值的极限值(0.1 或 0.9)。

3.3. AL-SHADE的框架

总之,所提算法的流程图如图2所示。AL-SHADE与LSHADE的主要区别包括新的变异策略、具有适应方案的选择策略以及外部存档 AAA 的更新机制。对于每个解,如果随机数 rand<Ps\text{rand} < P_srand<Ps,则选择公式(3)生成变异向量 vvv,反之则选择公式(14)。
在这里插入图片描述

参考文献

Yintong Li, Tong Han, Huan Zhou, Shangqin Tang, Hui Zhao, A novel adaptive L-SHADE algorithm and its application in UAV swarm resource configuration problem, Information Sciences. 606 (2022) 350–367. https://doi.org/10.1016/j.ins.2022.05.058

更多推荐