A. 动机
在进化计算领域,反馈信息的利用对搜索算法的性能有重要影响[59]-[62]。基于差分进化(DE)的发展过程,人们普遍认为,信息的使用越广泛和全面,DE变体的性能就越优越[25],[28]。例如,变异算子current-to-pbest/1,在JADE[50],SHADE[49]和LSHADE[48]中广泛使用,与原始DE中应用的DE/rand/1相比,它增加了关于种群中最佳个体的信息,从而大大提高了算法的搜索效率。
变异策略current-to-pbest/1可以公式化为:
V i t = X i t + F i ( X p b e s t t − X i t ) + F i ( X r 1 t − X r 2 t ) ( 7 ) V_i^t = X_i^t + F_i(X_{pbest}^t - X_i^t) + F_i(X_{r1}^t - X_{r2}^t) \quad (7) Vit=Xit+Fi(Xpbestt−Xit)+Fi(Xr1t−Xr2t)(7)
其中,个体 X p b e s t t X_{pbest}^t Xpbestt是从前NP×p个个体中随机挑选的,这些个体在第t次迭代中根据计算出的适应度排名。在之前的研究中, p = 0.11 [ 49 ] , [ 50 ] p = 0.11[49], [50] p=0.11[49],[50]。r1和r2是从集合 { 1 , 2 , … , N P } \{1, 2, \ldots, NP\} {1,2,…,NP}中随机选择的两个值,且r1, r2和i不相等。 F i F_i Fi是一个比例参数,用于控制种群的搜索范围。因此,在本研究中,我们尝试重用信息反馈来提高算法运行期间的搜索性能。信息的利用主要有两种方式:1)利用种群的整体信息,2)利用差分向量的方向。
B. 复用种群的整体信息
根据方程(7),由种群中随机选择的两个个体产生的差分向量 V i t V_i^t Vit可以向目标向量提供灵活的移动。然而,由于一部分种群可能不会被选中,因此随机选择操作无法完全利用种群的信息。这导致算法倾向于过早收敛到局部最优解。为了解决这个问题,我们提出了一种新颖的整体信息利用策略,可以如下实现:
V i t = X i t + F i ( X p b e s t t − X i t ) + F i ( X r 1 t − Y i t ) ( 8 ) V_i^t = X_i^t + F_i(X_{pbest}^t - X_i^t) + F_i(X_{r1}^t - Y_i^t) \quad (8) Vit=Xit+Fi(Xpbestt−Xit)+Fi(Xr1t−Yit)(8)
其中 Y i t Y_i^t Yit 来自外部存档,用于保持种群的多样性, X i t , X p b e s t t X_i^t, X_{pbest}^t Xit,Xpbestt和 X r 1 t X_{r1}^t Xr1t 来自主要进化种群。值得注意的是,外部存档最初也是随机初始化的。以下是变异和交叉操作。存档通过以下方式更新:
Y i t + 1 = { U i t , if f ( U i t ) < f ( Y i t ) Y i t , otherwise ( 9 ) Y_i^{t+1} = \begin{cases} U_i^t, & \text{if } f(U_i^t) < f(Y_i^t) \\ Y_i^t, & \text{otherwise} \end{cases} \quad (9) Yit+1={Uit,Yit,if f(Uit)<f(Yit)otherwise(9)
其中 r i r_i ri 是从集合 { 1 , 2 , … , N P } \{1, 2, \ldots, NP\} {1,2,…,NP}随机选择的。
备注1:由于外部存档中的所有 r i ( i = 1 , 2 , … , N P r_i( i = 1, 2, \ldots, NP ri(i=1,2,…,NP是随机排列而不是随机整数,种群中的所有个体都有机会参与迭代。因此,可以利用种群的整体信息。
备注2:由于所有的 r i r_i ri都是随机排列,尾向量 U i t U_i^t Uit 不能保证与其对应的目标向量 Y i t Y_i^t Yit进行比较。相反,它与种群范围的目标向量进行比较。这样可以保持人口统计多样性。
C. 重用差分向量的方向
由于早期的DE变体很少探索差分向量的方向信息,这对其搜索性能至关重要[63],本研究提供了一种简单而有效的方向信息利用策略,如方程(10)所述:
V i t = X i t + F i ( X r 1 t − X i t ) + G ( α , β , ζ ) F i ( X p b e s t t − Y i t ( 10 ) V_i^t = X_i^t + F_i(X_{r1}^t - X_i^t) + G(\alpha, \beta, \zeta)F_i(X_{pbest}^t - Y_i^t\quad (10) Vit=Xit+Fi(Xr1t−Xit)+G(α,β,ζ)Fi(Xpbestt−Yit(10)
G ( α , β , ζ ) = g ( f ( X r 1 t ) , f ( X p b e s t t ) , f ( Y i t ) ) ( 11 ) G(\alpha, \beta, \zeta) = g(f(X_{r1}^t), f(X_{pbest}^t), f(Y_i^t)) \quad (11) G(α,β,ζ)=g(f(Xr1t),f(Xpbestt),f(Yit))(11)
方向控制函数 G ( α , β , ζ ) G(\alpha, \beta, \zeta) G(α,β,ζ)由其变量之间的关系定义,如下所示:
G ( ) = { 1 , if α ≤ β ≤ ζ or β ≤ α ≤ ζ 1 , if rand ( 0 , 1 ) ≥ Q and { α ≤ ζ ≤ β or ζ ≤ α ≤ β or ζ ≤ β ≤ α } − 1 , if rand ( 0 , 1 ) < Q and { α ≤ ζ ≤ β or ζ ≤ α ≤ β or ζ ≤ β ≤ α } − 1 , if rand ( 0 , 1 ) ≥ Q and β ≤ ζ ≤ α 1 , if rand ( 0 , 1 ) < Q and β ≤ ζ ≤ α ( 12 ) G() = \begin{cases} 1, & \text{if } \alpha \leq \beta \leq \zeta \text{ or } \beta \leq \alpha \leq \zeta \\ 1, & \text{if } \text{rand}(0,1) \geq Q \text{ and } \{\alpha \leq \zeta \leq \beta \text{ or } \zeta \leq \alpha \leq \beta \text{ or } \zeta \leq \beta \leq \alpha\} \\ -1, & \text{if } \text{rand}(0,1) < Q \text{ and } \{\alpha \leq \zeta \leq \beta \text{ or } \zeta \leq \alpha \leq \beta \text{ or } \zeta \leq \beta \leq \alpha\} \\ -1, & \text{if } \text{rand}(0,1) \geq Q \text{ and } \beta \leq \zeta \leq \alpha \\ 1, & \text{if } \text{rand}(0,1) < Q \text{ and } \beta \leq \zeta \leq \alpha \end{cases} \quad (12) G()=⎩ ⎨ ⎧1,1,−1,−1,1,if α≤β≤ζ or β≤α≤ζif rand(0,1)≥Q and {α≤ζ≤β or ζ≤α≤β or ζ≤β≤α}if rand(0,1)<Q and {α≤ζ≤β or ζ≤α≤β or ζ≤β≤α}if rand(0,1)≥Q and β≤ζ≤αif rand(0,1)<Q and β≤ζ≤α(12)
其中 T max T_{\text{max}} Tmax表示最大函数评估次数, Q = 6 × T T max Q = \frac{6 \times T}{T_{\text{max}}} Q=Tmax6×T是一个阈值。
D. PAIDDE的剩余方面
在PAIDDE中, V i t = ( v i 1 t , v i 2 t , … , v i j t , … , v i D t ) V_i^t = (v_{i1}^t, v_{i2}^t, \ldots, v_{ij}^t, \ldots, v_{iD}^t) Vit=(vi1t,vi2t,…,vijt,…,viDt)是通过方程(10)生成的。然后, U i t = ( u i 1 t , u i 2 t , … , u i j t , … , u i D t ) U_i^t = (u_{i1}^t, u_{i2}^t, \ldots, u_{ij}^t, \ldots, u_{iD}^t) Uit=(ui1t,ui2t,…,uijt,…,uiDt)是使用交叉操作生成的:
u i j t = { v i j t , if rand ( 0 , 1 ) ≤ C r i or j = j rand x i j t , otherwise ( 13 ) u_{ij}^t = \begin{cases} v_{ij}^t, & \text{if } \text{rand}(0,1) \leq C_{ri} \text{ or } j = j_{\text{rand}} \\ x_{ij}^t, & \text{otherwise} \end{cases} \quad (13) uijt={vijt,xijt,if rand(0,1)≤Cri or j=jrandotherwise(13)
其中 X i t X_i^t Xit 与交叉率参数 C r i ∈ [ 0 , 1 ] C_{ri} \in [0,1] Cri∈[0,1] 相连。然后,使用方程(6)中指示的选择操作创建一个进化的个体 X i t + 1 X_i^{t+1} Xit+1。
备注3:在PAIDDE中,每个个体 X i t X_i^t Xit都有自己的比例参数 F i F_i Fi和交叉率参数 C r i C_{ri} Cri,这可以通过一种方法论方式进行调整。
首先,生成两个矩阵 M F = { M F ( 1 ) , M F ( 2 ) , … , M F ( H ) } M_F = \{M_F(1), M_F(2), \ldots, M_F(H)\} MF={MF(1),MF(2),…,MF(H)} 和 M C r = { M C r ( 1 ) , M C r ( 2 ) , … , M C r ( H ) } M_{Cr} = \{M_{Cr}(1), M_{Cr}(2), \ldots, M_{Cr}(H)\} MCr={MCr(1),MCr(2),…,MCr(H)},其中H是历史记忆条目的数量(先前的研究表明H = 5 是最有效的。 M F M_F MF和 M C r M_{Cr} MCr中的所有条目都初始化为0.5。在第 k次迭代中,当个体 X i t + 1 X_i^{t+1} Xit+1根据方程(6)中的适应度被其尾向量替换时,该个体使用的 F i F_i Fi 和 C r i C_{ri} Cri值分别记录在两个离散集合 S F S_F SF和 S C r S_{Cr} SCr中。然后,这些条目根据以下方式更新:
在图中,描述了更新记忆矩阵 ( M_F ) 和 ( M_{Cr} ) 的方法,以及如何基于这些矩阵生成参数 ( C_{ri} ) 和 ( F_i )。以下是图中内容的完整提取:
M F t + 1 ( k ) = { ∑ k = 1 ∣ S F ∣ w k S F 2 ( k ) ∑ k = 1 ∣ S F ∣ w k S F ( k ) , if S F ≠ ∅ M F t ( k ) , otherwise ( 14 ) M_F^{t+1}(k) = \begin{cases} \frac{\sum_{k=1}^{|S_F|} w_k S_F^2(k)}{\sum_{k=1}^{|S_F|} w_k S_F(k)}, & \text{if } S_F \neq \emptyset \\ M_F^t(k), & \text{otherwise} \end{cases} \quad (14) MFt+1(k)=⎩ ⎨ ⎧∑k=1∣SF∣wkSF(k)∑k=1∣SF∣wkSF2(k),MFt(k),if SF=∅otherwise(14)
M C r t + 1 ( k ) = { ∑ k = 1 ∣ S C r ∣ w k S C r ( k ) ∑ k = 1 ∣ S C r ∣ w k , if S C r ≠ ∅ M C r t ( k ) , otherwise ( 15 ) M_{Cr}^{t+1}(k) = \begin{cases} \frac{\sum_{k=1}^{|S_{Cr}|} w_{k} S_{Cr}(k)}{\sum_{k=1}^{|S_{Cr}|} w_k}, & \text{if } S_{Cr} \neq \emptyset \\ M_{Cr}^t(k), & \text{otherwise} \end{cases} \quad (15) MCrt+1(k)=⎩ ⎨ ⎧∑k=1∣SCr∣wk∑k=1∣SCr∣wkSCr(k),MCrt(k),if SCr=∅otherwise(15)
w k = ∣ f ( U k t ) − f ( X k t ) ∣ ∑ k ∣ f ( U k t ) − f ( X k t ) ∣ ( 16 ) w_k = \frac{|f(U_k^t) - f(X_k^t)|}{\sum_k |f(U_k^t) - f(X_k^t)|} \quad (16) wk=∑k∣f(Ukt)−f(Xkt)∣∣f(Ukt)−f(Xkt)∣(16)
其中,索引值k记录了要更新的条目在记忆 M F M_F MF 和 M C r M_{Cr} MCr中的位置,且 1 ≤ k ≤ H 1 \leq k \leq H 1≤k≤H。最初,k被设置为1,之后每当插入新的记忆条目时递增。
基于 M F M_F MF和 M C r M_{Cr} MCr,参数 C r i C_{ri} Cri和 F i F_i Fi生成如下:
C r i = randn i ( M C r ( r i ) , 0.1 ) ( 17 ) C_{ri} = \text{randn}_i(M_{Cr}(r_i), 0.1) \quad (17) Cri=randni(MCr(ri),0.1)(17)
F i = randc i ( M F ( r i ) , 0.1 ) ( 18 ) F_i = \text{randc}_i(M_F(r_i), 0.1) \quad (18) Fi=randci(MF(ri),0.1)(18)
其中,种群的初始大小 N P init NP_{\text{init}} NPinit)设置为18D ,种群的最小数量 N P min = 4 NP_{\text{min}} = 4 NPmin=4。
算法1描述了PAIDDE的实现结构,包括以下步骤:
Xiaosi Li, Kaiyu Wang, Haichuan Yang, Sichen Tao, Shuai Feng, and Shangce Gao*, “PAIDDE: A Permutation-Archive Information Directed Differential Evolution Algorithm,” IEEE Access, vol. 10, pp. 50384-50402, May 2022. DOI: 10.1109/ACCESS.2022.3173622