PAIDDE:一种置换存档信息定向差分进化算法

news/2024/12/25 10:43:46/

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(XpbesttXit)+Fi(Xr1tXr2t)(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(XpbesttXit)+Fi(Xr1tYit)(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(Xr1tXit)+G(α,β,ζ)Fi(XpbesttYit(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=1SFwkSF(k)k=1SFwkSF2(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=1SCrwkk=1SCrwkSCr(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=kf(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 1kH。最初,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


http://www.ppmy.cn/news/1557967.html

相关文章

scala中模式匹配的应用

package test34object test6 {case class Person(name:String)case class Student(name:String, className:String)// match case 能根据 类名和属性的信息&#xff0c;匹配到对应的类// 注意&#xff1a;// 1 匹配的时候&#xff0c;case class的属性个数要对上// 2 属性名不需…

Blazor项目中使用EF读写 SQLite 数据库

《信管通低代码信息管理系统应用平台》开发环境就是Blazor&#xff0c;其中的数据库访问就是使用SQLite数据库。SQLite 是一种轻量级的嵌入式数据库&#xff0c;具有以下优点&#xff1a; 1. 轻量级 小巧易用&#xff1a;SQLite 只需要一个动态库或单个文件&#xff0c;库的大…

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比 目录 VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比; 2.单变量时间序列预测 就是先vmd把变…

Golang框架实战-KisFlow流式计算框架(9)-Cache/Params 数据缓存与数据参数

Golang框架实战-KisFlow流式计算框架专栏 Golang框架实战-KisFlow流式计算框架(1)-概述 Golang框架实战-KisFlow流式计算框架(2)-项目构建/基础模块-(上) Golang框架实战-KisFlow流式计算框架(3)-项目构建/基础模块-(下) Golang框架实战-KisFlow流式计算框架(4)-数据流 Golang框…

高德地图自定义折线矢量图形

实现的功能&#xff1a;通过点标记连接生成线 实现折线适量图形 进一步实现功能&#xff1a;1.对指定点进行拖拽 2.从多个点中删除指定点 // 初始化地图map.value new AMap.Map(g-container, {resizeEnable: true,center: [longitude, latitude],layers: [// 卫星new AMap.T…

用套接字的UDP,TCP知道什么是HTTP吗?

文章目录 UDP和TCP七层网络架构Omnipeek抓包分析举例图片备注code参考code HTTP协议的构成 UDP和TCP UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09; 和 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09; 是…

springboot483基于springboot的校园失物招领系统(论文+源码)_kaic

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统校园失物招领系统信息管理难度大&#xff0c;容错率低&am…

MCU 功耗基准测试

电池供电设备的开发人员通常面临着提供高水平的功能和性能&#xff0c;同时限度地延长电池寿命的挑战。水流量计和燃气流量计、医疗监控设备和远程传感器等应用通常需要单块电池的电池寿命长达数月甚至数年。在某些情况下&#xff0c;开发人员还面临着开发完全没有电池的下一代…