abstract
实际的优化问题往往涉及大量的变量,在合理的时间内求解成为一个挑战。竞争群优化算法(CSO)是粒子群优化算法(PSO)的一种有效变体,已被广泛应用于处理各种实际的大规模优化问题。本文结合一种新颖的多阶段协同进化技术,提出了一种新的三阶段协同进化方法(TPCSO),以增强CSO的收敛性和搜索能力。在改进的CSO中,种群被均匀地分解为两个子种群,然后根据进化过程中多样性和收敛性的要求调整每个子种群的更新策略。在第一阶段,为了探索更多的区域,多样性受到了更多的关注。在第二阶段,通过引入两个子种群的优秀粒子来开发两个子种群中的有前途的区域。第三阶段侧重于从全局最优解中学习收敛性。最后,通过选取CEC ’ 2010和CEC ’ 2013中的大规模基准函数对TPCSO的性能进行评估和证明。实验和统计结果表明,通过与几种算法的比较,TPCSO能够有效地解决这些大规模问题,快速获得精度更高的优化结果。
1. Introduction
近年来,进化计算(Evolutionary Computation,EC)算法作为一种强大而有前景的群体智能技术,已成功应用于处理大量复杂的科学和实际工程问题[1-5]。随着应用领域的不断扩展,进化计算(Evolutionary Computation,EC)算法的研究得到了迅速的发展,成为研究的热点[6-10]。具有代表性的进化计算(EC)算法主要有遗传算法(GA) [11]、蚁群优化(ACO) [12]、粒子群优化(PSO) [13]、差分进化(DE) [14-16]等。
值得注意的是,PSO是一种著名且有效的进化计算(EC)算法,其灵感来自于鸟类群居的模仿。虽然1995年提出的传统PSO算法[17]近年来发展迅速,在车间调度、参数选择、函数优化、神经网络训练和路径规划等研究领域表现出了良好的性能,但在处理复杂问题时仍然存在早熟收敛和局部最优的问题。
为了克服这些缺点,随着时间的推移,一些PSO变体被提出和讨论[18-22]。詹等人[23]提出了一种自适应PSO (APSO)和精英学习策略来避免局部最优。Dadvar等人[24]提出了一种改进的PSO算法,通过引入DE算法来防止种群停滞。曾庆云等,[25]提出了一种新的切换PSO机制,利用动态邻域来避免早熟问题。Lynn等人[26]通过将不同的PSO变体与自适应方案混合,开发了集成PSO (EPSO )来解决实际参数优化问题。Wang等人[27]利用机器学习技术设计了多个子种群协同进化机制来加强算法的寻优能力。Lu等人[28]提出了混合PSO-RVM算法,通过引入实值变异算子来增强算法的全局搜索能力。针对PSO的早熟收敛问题,柴塔尼亚等人[29]提出了记忆保持和多个子群来避免早熟收敛。Zhao等人[30]提出了一种改进的基于梯度的自适应PSO来缓解局部最优性问题。Yan等人[31]提出了一种新的学习策略来缓解PSO的早熟收敛。
PSO算法在解决低维问题上取得了较好的效果。然而,与大多数EC算法类似,已有的性能随着维度的增加而急剧下降的报道屡见不鲜,Cheng等[32]提出了一种新的PSO变体,命名为CSO,用于大规模优化。CSO的演化是由成对竞争机制驱动的。每次竞争结束后,只有那些 loser 粒子需要根据 winner 的位置进行更新,而竞争中的 winner 粒子将直接进入下一次迭代。在CSO优化过程中,设计自适应策略面临两个挑战。首先,CSO的学习策略更注重多样性,而收敛性在一定程度上被忽视。其次,loser 的单一更新策略在搜索方向上具有一定的盲目性,难以满足算法在整个进化过程的不同搜索阶段的多样性和收敛性。因此,为了进一步提高CSO算法的搜索效率,基于多相协同进化技术,设计了一种新的三阶段协同进化策略,开发了一种增强型CSO算法(即TPCSO),以增强CSO的多样性和全局搜索能力。
本文的主要贡献总结如下:
(1)通过引入三阶段协同进化策略(即. TPCSO)是为了增强处理大规模问题的探索和利用能力而开发的,其中种群被均匀地划分为两个子种群,每个子种群中的 loser 是协同进化的。
(2)设计三阶段协同进化策略,控制两个子种群在不同进化阶段的探索和利用能力。
(3)设计了一种新的更新策略,通过两个子种群之间的信息交换来探索更有前途的区域,可以有效地帮助种群提高进化过程的效率。
本文的其余部分组织如下。在第二章中,简要回顾了高维优化和一些PSO变体的研究工作。第三节介绍TPCSO的具体内容。第四部分介绍了TPCSO的具体步骤。在第五章中,我们利用一些大规模的优化函数来验证TPCSO的全局搜索能力。最后,结论在第6节中描述。
2. Related works
对于小规模优化问题,进化算法的性能优于非进化算法。然而,随着问题维数的增长,由于搜索空间巨大,传统EC算法的性能开始呈现急剧下降的趋势。许多实际优化问题已成为大规模优化问题(Large Scale Optimization Problem,LOP) (500多个维度),导致收敛速度慢和局部最优解呈指数增长。由于这两个重要挑战的存在,大多数进化算法往往存在当维度大幅增加时其性能急剧下降的问题。最近在解决高维问题方面取得的进展大致可以归纳为以下两类。
2.1. Decomposition-based ECs
Collaborative co-evolutionary (CC)机制是解决许多高维问题中维度问题的一种潜在方法,于1994年首次引入协同进化算法(CCECs) [33]。在CCECs中,采用分而治之的分解方法,将原始高维问题分解为若干个低维子问题,然后分别对每个子问题进行优化。由于分组策略,CCECs比进化算法保留了更高的多样性。近年来,许多进化计算的变体在这样复杂的环境中使用CC框架来提高搜索性能。Yang等[34]开发了一种分解方法(DECC-G)通过采用决策变量随机分组处理不可分问题。文献[ 35 ]提出了一种多级CC算法( MLCC )来代替子部件的固定编号。Li等人[ 36 ]提出了一种改进的PSO (CCPSO)算法,在PSO中使用了随机分组方案。在CCPSO的基础上,发展了新的自适应方案的CCPSO2,以解决更复杂的多峰问题[37]。对于分解策略的设计,文献[38]提出了差分分组策略(DECC-DG )来分解大量的决策变量。提出了一种差分分组算法的变体(DG2)来检测一个可靠的阈值来重用样本点[39]。为了提高问题分解的效率,Ma等[40]提出了一种基于子集-子集交互和二分搜索的合并差分分组(MDG)算法。Yang等人[41]提出了一种递归的差分分组方法,通过利用相互关系检验的历史信息来减少计算成本。Hasanzadeh等人[42]针对高维多峰问题提出了一种基于学习自动机的智能协作PSO算法。Zhao et al [43]发展了动态分组方法,根据适应度值对子群体进行重新组合。Ma等人[44]提出了一种新的基于局部控制变量分析的分解方法(LSMOEA / D),将参考向量的指导融入到决策变量分析中。
2.2. Non-decomposition-based ECs
与基于分解的进化计算不同,基于非分解的进化计算将所有变量作为一个整体,主要依赖于不同的有效进化方案来保持更高的多样性。为了节省空间,列举了一些PSO变体的代表性工作。文献[25]根据适应度比较结果,从较优粒子中学习,设计了一种基于历史信息的社会学习PSO (SL-PSO)。此外,文献[45]开发了基于水平学习的群优化器,取得了相当大的成功。CSO算法也是一种改进的PSO算法,通过引入粒子的竞争,随机选择一对粒子进行适应度值的比较,输掉比较的粒子通过向 winner 学习来驱动,而胜出比较的粒子则直接进入下一代。loser 被更新[35]为
![](https://i-blog.csdnimg.cn/blog_migrate/64eaf11c9eec357aa617878db0f75d0a.png)
其中 V L ( t ) V_L(t) VL(t)和 X L ( t ) X_L(t) XL(t)分别是第 t t t代 loser 的速度和位置。其次, X W ( t ) X_W(t) XW(t) 为 winner 的位置, r 1 ( t ) , r 2 ( t ) r_1(t),r_2(t) r1(t),r2(t) and r 3 ( t ) r_3(t) r3(t) 为 [0、1] 内的随机变量, X ‾ ( t ) \overline{X}(t) X(t) 为种群的平均位置, φ \varphi φ 为控制参数,表示对 X ‾ ( t ) \overline{X}(t) X(t)的影响
3. An enhanced CSO (TPCSO)
3.1. Motivation
为了避免早熟收敛,CSO通过引入竞争机制,在解的搜索中更多地关注多样性而较少关注收敛性。由于一个好的优化器在维度增加时需要调整探索能力和利用能力来遍历搜索空间,这意味着算法在整个搜索的不同阶段需要提供不同的收敛性和多样性。然而,CSO单一的更新策略使其无法满足进化过程中多样性和收敛性的要求。因此,在不同阶段需要采用不同的更新学习策略。通过这种方式,从不同的优势粒子中学习可以快速增强搜索能力。因此,本文充分利用多相协同进化技术的优势,设计了一种新颖的三阶段协同进化策略,开发了一种增强型CSO (即TPCSO)。下面详细介绍TPCSO算法。
3.2. Description of TPCSO
可行且适当的更新操作可以有效地促进求解过程快速收敛到高质量的解。方法的偏好性与更新策略有关。因此,在CSO的基础上,提出了一种新颖且高效的更新策略,通过交换两个子种群之间的信息来探索更有前途的区域。在所提出的TPCSO中,根据适应度的竞争情况,将种群平均地分解为两个子种群。两个子种群的 winner 用 W 1 W_1 W1和 W 2 W_2 W2表示,loser 用 L 1 L_1 L1和 L 2 L_2 L2表示。经过比较,具有较好适应度值的粒子,称为 winner ,可以直接进入下一次迭代,loser 基于三阶段学习机制进行更新。TPCSO的三个阶段的实现过程如图 1 所示。根据不同进化阶段对多样性和收敛性的要求,采用相应的进化策略引导算法进化。对于算法的早期阶段,更多的多样性有望实现整个空间的大范围搜索。在中期阶段既要注重收敛性,又要注重多样性。在这一阶段,每个 loser 由两个来自不同的子种群 winner 引导。然后在进化过程的后期,所有个体被期望尽可能快地收敛到最优解。
![](https://i-blog.csdnimg.cn/blog_migrate/d02029336723c5c2ad690179ad6b4899.png)
- 图1. 三阶段TPCSO的实现过程。
TPCSO的实现描述如下。
(1) Phase 1
在TPCSO的进化过程中,由于大规模问题的搜索空间巨大,在第一阶段的进化过程中需要隐式地考虑更多的多样性。探索是初始阶段的主要任务,以遍历整个空间并定位最优区域。更新策略是为了提供每个子种群中 loser 的进化方向而制定的。对于每个子种群,给出了每个 loser 的更新规则为。
![](https://i-blog.csdnimg.cn/blog_migrate/6c84fd458554df7f1893b327754e7275.png)
其中 X W S i ( t ) X_{WS_i}(t) XWSi(t) 表示 winner 在第 i i i个 ( i = 1 o r 2 ) (i=1\quad or\quad2) (i=1or2)子种群中的位置, X L S i ( t ) X_{LS_i}(t) XLSi(t) 表示 loser 第 i 个 ( i = 1 o r 2 ) (i=1\quad or\quad2) (i=1or2)子种群中的位置, i i i表示 the sub-population index, φ 1 \varphi_{1} φ1 是一个参数,用于控制 X ˉ S i ( t ) . r 1 ( t ) \bar{X}_{S_i}( t) .r_1( t) XˉSi(t).r1(t)的影响。 r 1 ( t ) r_1( t) r1(t)和 r 2 ( t ) r_2( t) r2(t)是介于0和1之间的随机数。
(2) phase 2
在进化过程的中期(即:第二阶段)阶段,为了加速寻优过程和搜索最优解,采用相互学习的方式来交换两个子种群之间的信息,以加快最优解的搜索。在这里,收敛速度和多样性可以进一步增强。在每次迭代中,来自每个子种群的一对粒子比较它们的适应值。两个子种群中的获胜者用于更新另一个子种群中的失败者。两个子种群信息共享产生的新的更新策略可以找到更精确的解,提高收敛性。两个子种群之间的信息交换可以避免陷入局部最优。
两个子种群中的每个 loser 通过并行化机制实现。对于 sub-component 1,各 loser 的速度和位置更新规则如下:
![](https://i-blog.csdnimg.cn/blog_migrate/870328e8868ca4bfbdd97900f5a76416.png)
其中, X W S 1 ( t ) X_{WS_1}( t) XWS1(t) 和 X W S 2 ( t ) X_{WS_2}( t) XWS2(t) 表示 winner 在两个子种群中的位置, X L S 1 ( t ) X_{LS_1}( t) XLS1(t) 和 X L S 2 ( t ) X_{LS_2}( t) XLS2(t) 表示 loser 在两个子种群中的位置, φ 2 \varphi_{2} φ2 是一个控制参数,代表了对 X W S 2 ( t ) X_{WS_2}( t) XWS2(t) 的影响, r 1 ( t ) , r 2 ( t ) r_1( t) , r_2( t) r1(t),r2(t) 和 r 3 ( t ) r_3( t) r3(t) 是 0 到 1 之间的随机数。
对于子分量 2,给出了每个 loser 的速度和位置更新规则如下。
![](https://i-blog.csdnimg.cn/blog_migrate/800e54f90af6b8d27fe50ab585b85990.png)
其中, X W S 1 ( t ) X_{WS_1}( t) XWS1(t) 和 X W S 2 ( t ) X_{WS_2}( t) XWS2(t) 表示 winner 在两个子种群中的位置, X L S 1 ( t ) X_{LS_1}( t) XLS1(t) 和 X L S 2 ( t ) X_{LS_2}( t) XLS2(t) 表示 loser 在两个子种群中的位置, φ 2 \varphi_{2} φ2 是一个控制参数,代表了对 X W S 2 ( t ) X_{WS_2}( t) XWS2(t) 的影响, r 1 ( t ) , r 2 ( t ) r_1( t) , r_2( t) r1(t),r2(t) 和 r 3 ( t ) r_3( t) r3(t) 是 0 到 1 之间的随机数。
(3) Phase 3
阶段 3 是演化过程的最后一个阶段。这种利用在搜索后期似乎需要更多的有效性和效率,其目的是在探索阶段提高找到的解的平等性。随着进化过程的不断迭代,种群中的个体应不断探索接近全局最优的区域。为进一步提高收敛速度和求解精度,算子在两个子种群中采用最优粒子,适度提高CSO的种群收敛性。
对于每个子种群,winner 的更新公式描述如下:
![](https://i-blog.csdnimg.cn/blog_migrate/8c293f999c57c41f32f33ec0fcee3ae1.png)
其中,gbest(t) 是迄今为止所有粒子找到的最优解, X W S i ( t ) X_{WS_i}( t) XWSi(t) 表示两个子种群中获胜者的位置。 X L S i ( t ) X_{LS_i}( t) XLSi(t) 是失败者在两个子总体中的位置。 φ 2 \varphi_{2} φ2 是一个控制参数,它代表了 gbest(t) 的影响。 r 1 ( t ) , r 2 ( t ) r_1( t) , r_2( t) r1(t),r2(t) 和 r 3 ( t ) r_3( t) r3(t) 是 0 到 1 之间的随机数。
通过对进化过程中多样性的分析,确定进化阶段的划分,从而选择合适的进化策略。
4. Model, steps and complexity of TPCSO
4.1. Model of TPCSO
根据三阶段协同进化策略,TPCSO算法如算法1所示。算法1展示了如何将三阶段协同进化策略融入到CSO算法中。TPCSO算法首先生成一个随机的初始种群,然后将整个种群随机分为两个子种群。从两个子种群中随机选择两个粒子,并比较它们的适合度。适应度值较大的粒子被认为是 loser,而适应度值较小的粒子被认为是 winner。winner 直接进入下一代。算法1的第6行和第19行展示了这一过程。为了提高进化过程的效率,在每个子种群中使用不同的优秀粒子来引导 loser,如算法1的第20行和第29行所示。具体来说,在第一阶段,采用 winner 粒子和每个子种群的平均位置来更新 loser 的位置。这与CSO算法相同。然后,在第二阶段,使用其他子种群中的 winner 粒子替换每个子种群的平均位置,以找到更好的解决方案。在第三阶段,选择整个群体中的全局最优粒子来优化每个子种群中的 loser,以增强算法的收敛能力。重复同样的过程,直到满足 terminal condition。
4.2. Steps of TPCSO
TPCSO的步骤如下所示。
Step 1: 随机初始化种群在位置 P i ( 0 ) = ( x i 1 , x i 2 , ⋯ , x i D ) P_i(0)=(x_{i1},x_{i2},\cdots,x_{iD}) Pi(0)=(xi1,xi2,⋯,xiD)
![](https://i-blog.csdnimg.cn/blog_migrate/cf9b1f74556f4c83dff6a6f212f3700e.png)
其中 i = 1 , 2 , 3 , . . . , n i = 1, 2, 3, ..., n i=1,2,3,...,n 和 j = 1 , 2 , . . . , D j = 1, 2, ..., D j=1,2,...,D 初始化种群规模(N)、最大适应度评价次数( MaxFEs )、最大迭代次数( Maxgen )、初始适应度评价次数FEs = 0、初始迭代次数(t = 0),3个阶段分别初始化 p 1 p_1 p1和 p 2 p_2 p2。
Step 2: 将种群随机均匀地分解为两个子种群,并计算每个粒子的适应度值。
Step 3: 将每个子种群随机分成 N / 4 N/4 N/4 对。
Step 4: 每对粒子参与适应度值的比较,根据竞争产生 winner 和 loser。
Step 5: 采用三阶段学习策略的TPCSO对每个子种群中的 loser 进行更新。
Step 6: 如果 0 ≤ t ≤ p 1 0 ≤ t ≤ p_1 0≤t≤p1,则采用阶段 1 的更新策略来优化每个子种群中 loser 的位置。如果 p 1 < t ≤ p 2 p_1 < t ≤ p_2 p1<t≤p2,则采用阶段 2 的更新策略来优化每个子种群中失败者的位置。若 p 2 < t ≤ M a x g e n p_2 < t ≤ Maxgen p2<t≤Maxgen,则采用阶段3的更新策略优化每个子种群中失败者的位置。
4.3. Time complexity
根据TPCSO的主要步骤,分析并计算了每次迭代的时间复杂度。对于D维问题,注意到每个子种群的失败者在每一代更新函数评价时间需要O(NP/4D)。因此,两个子种群的时间复杂度为O((NP/4D)2)。因此,TPCSO的时间复杂度可以表示为O(N/2D)。总之,TPCSO与CSO相比具有相同的时间复杂度。
5. Experimental study
5.1. Test functions
本部分评估了TPCSO的有效性和效率,其中基准测试函数选自CEC ’ 2010基准测试集[ 46 ]和CEC ’ 2013基准测试集[ 47 ]。CEC2010包括20个基准函数。与CEC ’ 2010相比,CEC ’ 2013由于引入了不平衡的子成分贡献和重叠的功能而更加复杂。CEC ’ 2013测试函数集包括15个大规模基准问题。采用TPCSO与CSO [ 32 ]、DECC - G [ 33 ]、MLCC [ 34 ]、CCPSO2 [ 37 ]、DECC - DG [ 38 ]、DMS - L - PSO [ 43 ]进行比较。
5.2. Experimental environment and parameter setting
5.3. Evaluation indexes
为了证明TPCSO的优势,选取了一些评价指标,如平均值 μ \mu μ,标准差 σ \sigma σ和 t值[48],计算如下:
![](https://i-blog.csdnimg.cn/blog_migrate/5b1878cc5b396fe75eb0348f1660218f.png)
式中:run为运行次数, x r x_r xr为第 r r r次运行时的最优解。
为了比较两种算法, t t t值可以通过下面的均值和标准差来获得:
![](https://i-blog.csdnimg.cn/blog_migrate/f92e8de2fbffc80cbeff7bf47bd6e20f.png)
其中 μ 1 \mu_1 μ1和 μ 2 \mu_2 μ2分别为两种算法的均值, σ 1 \sigma_1 σ1和 σ 2 \sigma_2 σ2分别为两种算法的标准差。
6. Conclusion
在本文中,为了满足进化过程不同阶段的多样性和收敛性要求,将多相协同进化技术融入到CSO中,设计了一种新颖的三阶段协同进化策略。TPCSO)。这种新的优化器允许不同的更新操作来调整算法的多样性和收敛性。因此,TPCSO相当于一个三阶段的优化器,第一阶段是关注种群的多样性,第二阶段是基于两个子种群的优势粒子提供新的优化策略,以进一步增强CSO的多样性和收敛性,第三阶段是促进算法的收敛。一些大规模的基准函数被用来证明TPCSO的优化能力。结果表明,与CSO相比,TPCSO能够获得相对均值和标准差。TPCSO在求解大规模问题时能够提供更好的优化性能以获得高质量的解,而三阶段搜索策略能够有效增强CSO的全局搜索能力。总体而言,TPCSO具有更高的收敛性,更好的寻优能力,更好的全局搜索能力,并且具有良好的精度和时间复杂度。
在未来的工作中,我们将更多地关注人口信息的动态反馈机制,通过实时检测人口信息实现快速的策略调整。TPCSO将进一步提升其全局搜索能力,并为其他电子商务企业提供帮助。
References
Huang C, Zhou X, Ran X, et al. Co-evolutionary competitive swarm optimizer with three-phase for large-scale complex optimization problem[J]. Information Sciences, 2023, 619: 2-18.
@article{huang2023co,
title={Co-evolutionary competitive swarm optimizer with three-phase for large-scale complex optimization problem},
author={Huang, Chen and Zhou, Xiangbing and Ran, Xiaojuan and Liu, Yi and Deng, Wuquan and Deng, Wu},
journal={Information Sciences},
volume={619},
pages={2--18},
year={2023},
publisher={Elsevier}
}
核心思路
![](https://i-blog.csdnimg.cn/blog_migrate/d02029336723c5c2ad690179ad6b4899.png)
将种群 S 分为两个子种群 S 1 S_1 S1 和 S 2 S_2 S2,从 S 1 S_1 S1 和 S 2 S_2 S2 中个选一个个体进行竞争,并根据迭代的进行,分为三个阶段对 loser 进行更新,而 winner 直接进入下一代中。更新公式见第 4 章