差分进化算法主要由变异、交叉、选择三个算子构成.变异算子是差分进化算法的重要组成部分, 不同的变异算子迭代效果不同.因此, 在算法迭代过程中, 需要选择合适的变异算子.针对此问题, 学者们提出多种不同的变异算子及其选择策略.常见的变异算子选择策略都是基于概率模型提出的.Qin等[7]提出SaDE(Self-Adaptive DE), 根据各变异算子的前期迭代效果计算后验概率, 并依据概率值选择合适的变异算子.Liu等[8]提出HHDE(Historical and Heuristic DE), 基于个体历史成功经验和其当前状态信息动态选择变异算子和控制参数.Pan等[9]提出SspDE(DE Algorithm with Self-Adaptive Trial Vector Generation Strategy and Control Parameters), 设计变异算子列表, 存放上一代变异成功的变异算子, 并据此计算选择概率.
上述种群状态评估算法取得良好的效果, 表明根据种群个体的分布信息和目标函数值评估种群状态, 再选择合适变异算子, 有助于提升差分进化算法的性能.然而, 部分种群状态评估算法只是单纯使用最优个体或中位数个体以评估种群状态, 导致种群状态评估不准确.还有部分种群状态评估算法即使利用种群分布信息和目标函数值, 也仅仅以最优个体作为参照评估种群状态, 容易导致评估结果不稳定.还有部分种群状态评估算法利用种群中所有个体, 导致算法的计算复杂度较高.
为了有效评估种群状态, 本文提出基于耦合协调种群状态评估的差分进化算法(DE Algorithm Based on Coupling and Coordination Population State Evaluation, CCPDE), 计算四个不同等级目标函数值和个体间距离的耦合协调度, 评估种群在迭代过程中所处的进化状态.根据评估结果将种群状态分为搜索、平衡、收敛三种进化状态, 并针对不同的进化状态构造相应的变异算子池.此外, 通过自适应Powell方法[19], 提升算法的收敛速度.最后, 在CEC2017测试函数集上的数值实验验证本文算法的有效性.
1 差分进化算法差分进化算法是一种新兴的进化计算技术, 最初用于解决切比雪夫多项式问题, 后来逐渐发展成为解决复杂优化问题的有效技术.差分进化算法是一种基于群体智能的全局随机搜索算法, 具有控制参数较少、容易实现、优化效果稳健等优点.在算法迭代过程中, 差分进化算法特有的记忆能力有助于算法动态跟踪当前搜索情况, 调整搜索策略.
与其它进化算法类似, 差分进化算法的迭代过程中不需要借助问题的特征信息, 适应于求解各种类型的复杂优化问题.算法主要通过种群内个体间的差异产生下一代种群.
相比其它进化算法, 差分进化算法基于种群的全局搜索策略、差分变异操作和“ 一对一” 的竞争选择策略.算法主要由变异、交叉和选择这三个基本操作组成.
变异算子是差分进化算法的重要组成部分, 根据向量之间的差异提升种群的多样性.不同的变异算子具有不同的性能.下面列出7种常见的变异算子.
1)DE/rand/1:
= +F· ( - ).
2)DE/best/1:
= +F· ( - ).
3)DE/best/2:
= +F· ( - )+F· ( - ).
4)DE/current-to-rand/1:
= +F· ( - )+F· ( - ).
5)DE/current-to-best/1:
= +F· ( - )+F· ( - ).
6)DE/current-to-pbest/1[20]:
= +F· ( - )+F· ( - ).
7)DE/current-to-ci_mbest/1[21]:
$\begin{array}{l} \boldsymbol{v}_{i}^{g}=\boldsymbol{x}_{i}^{g}+F \cdot\left(\boldsymbol{x}_{\text {ci_mbest }}^{g}-\boldsymbol{x}_{i}^{g}\right)+F \cdot\left(\boldsymbol{x}_{r_{1}}^{g}-\boldsymbol{x}_{r_{2}}^{g}\right), \\ \boldsymbol{x}_{c i \_m b e s t}^{g}{ }^{g}=\sum_{k=1}^{m} w_{k} \boldsymbol{x}_{k}^{g}, \\ w_{k}=\frac{m-k+1}{1+2+\cdots+m}, k=1, 2, \cdots, m . \end{array}$
其中: 表示第g代的第i个变异向量; F∈ [0, 1]表示缩放因子; r1、r2、r3、r4、r5表示在{1, 2, …, NP}中随机选择且互不相等的整数, NP表示种群规模; 表示最优个体; 表示从NP× p个较优个体中随机选择的个体, p为[0, 1]区间内均匀分布随机数; 表示种群中目标函数值排名前m个个体的线性组合向量, m表示从[1, i]区间内随机选择的一个整数; wk表示组合向量的权重.
交叉算子按一定概率将变异个体 与父代个体 进行重组, 生成实验向量:
$\begin{array}{l} \boldsymbol{u}_{i}^{g}=\left(u_{i, 1}^{g}, u_{i, 2}^{g}, \cdots, u_{i, D}^{g}\right), \\ u_{i, j}^{g}=\left\{\begin{array}{ll} v_{i, j}^{g}, & \operatorname{rand}_{j}(0, 1)< C R \text { 或 } j=j_{\text {rand }} \\ x_{i, j}^{g}, & \text { 其它 } \end{array}\right. \end{array}$
其中, D表示函数维数, jrand表示{1, 2, …, D}中的一个随机整数, CR表示交叉概率.
选择算子采用一对一的“ 贪婪” 选择方式, 将实验向量 和父代个体 两两对比, 选择目标函数值较优的个体进入下一代, 即
=
其中, 表示第g+1代的第i个个体, f(· )表示个体的目标函数值.
2 基于耦合协调种群状态评估的差分进化算法差分进化算法是一种群体智能进化算法, 其“ 贪婪” 的选择算子有助于算法在迭代过程中不断进行优胜劣汰.在迭代过程中, 差分进化算法通常利用某些个体或某些群体, 如最优个体、最优子种群等信息引导种群朝着更好的方向进化.然而, 这些进化方式由于种群状态的不同而呈现多样化.
根据解的近似最优性原理可知, 优良解之间具有相似结构[22].此原理广泛应用于提升进化算法的性能, 特别是具有较大山谷结构的优化问题.连续优化问题的搜索空间可以大致分为三类:单峰函数、有大山谷结构的多模态函数和无大山谷结构的多模态函数[18].这3种不同类型函数的极值点分布如图1所示.
由图1可知, 第一个函数只有一个驻点, 即单峰函数的极值点.因此, 采用最优个体作为基向量, 有助于提高最优解的精度和算法的收敛速度.第二个函数为有大山谷结构的多模态函数, 解空间包含多个结构明显的局部极值点, 但总体上看呈现大山谷结构.在这种情况下, 虽然最优个体仍然能较好地指导种群进化, 但为了避免种群陷入局部最优解, 应选择特定的最优群体作为基向量较为合适.第三个函数为无大山谷结构的多模态函数, 解空间具有多个局部极值点且分布结构不明显, 这种情况使用全局搜索性能更强的变异算子搜索更有希望的区域, 避免算法陷入局部最优解.
基于上述分析可知, 差分进化算法的进化过程中种群状态会动态变化.本文将上述三种情况分别记为收敛状态、平衡状态和搜索状态.根据“ 没有免费午餐” 定理[23], 每个变异算子都有自己特定的适用范围.因此, 如何针对不同种群状态选择合适的变异算子是一个极具挑战的任务.
因此, 本文首先利用耦合协调度模型度量种群的分布情况, 将种群进化状态分为搜索、平衡、收敛三种情况, 再根据不同的进化状态, 分别设计不同的变异算子池.
2.1 基于耦合协调度模型的种群进化状态识别耦合协调度模型常用于分析事物的协调发展水平, 由耦合度和协调度两部分构成.耦合度的概念源于物理学领域[24], 一般用于刻画多个指标之间相互影响的程度, 已广泛应用于社会科学领域[25, 26].协调度指耦合相互作用关系中良性耦合程度的大小, 可体现协调状况的好坏.
本文使用耦合协调度模型评估目标函数值与个体距离两个指标之间的关系, 从而多角度度量当前种群进化状态, 减少种群进化状态的误判.根据统计学中四分位数概念, 本文以上四分位数、中位数、下四分位数3个分割点, 将排序后种群分为4个等级的子种群, 再通过耦合协调度模型计算种群的进化状态.具体步骤如下.
1)将种群中所有个体按目标函数值的优劣排序, 并根据排序结果将种群均分成4个不同等级的子种群, 分别记为POP1、POP2、POP3、POP4.
2)从4个子种群POP1、POP2、POP3、POP4中分别随机抽取4个个体 、 、 、 , 它们的目标函数值分别记为 、 、 、 , 计算个体两两之间目标函数值的差:
$\begin{array}{l} \Delta f_{k, j}=\left|f_{k, i_{k}}-f_{j, i_{j}}\right|, \\ k=1, 2, 3, 4, j=1, 2, 3, 4 . \end{array}$ (1)
Δ fk, j标准化后得
=1- , k=1, 2, 3, 4, j=1, 2, 3, 4, (2)
其中, (Δ fk, j)表示个体间目标函数值差值Δ fk, j的最大值.
3)计算4个个体 、 、 、 两两之间的欧氏距离:
dk, j= , k=1, 2, 3, 4, j=1, 2, 3, 4.(3)
同样, dk, j标准化后得
=1- , k=1, 2, 3, 4, j=1, 2, 3, 4, (4)
其中 (dk, j)表示个体间欧氏距离dk, j的最大值.
4)计算4个个体 、 、 、 两两之间的耦合协调度:
$\begin{array}{l} C C D_{k, j}=\sqrt{C_{k, j} T_{k, j}}, \\ C_{k, j}=2\left[\frac{U_{1_{k, j}} U_{2_{k, j}}}{\left(U_{1_{k, j}}+U_{2_{k, j}}\right)^{2}}\right]^{\frac{1}{2}}, \\ T_{k, j}=\beta_{1} U_{1_{k, j}}+\beta_{2} U_{2_{k, j}}, \end{array} $ (5)
k=1, 2, 3, 4, j=1, 2, 3, 4.
其中:Ck, j表示第k个个体与第j个个体的耦合度; Tk, j表示第k个个体与第j个个体的协调度; 本文令
β 1=β 2= .
5)计算每个个体之间的耦合协调度平均值, 即种群状态评估值:
$\theta=\frac{1}{16} \sum_{k=1}^{4}\left(\sum_{j=1}^{4} C C D_{k, j}\right) . $ (6)
并依据θ 将进化种群划分成如下3种状态.
(1)当θ ≤ 1-μ 时, 说明4个不同等级个体之间的总体耦合协调度值较低, 即4个个体分布较分散, 此时种群处于搜索状态.
(2)当1-μ < θ < μ 时, 说明4个不同等级个体之间分布有聚合有分散, 此时种群处于平衡状态.
(3)当θ ≥ μ 时, 说明四个不同等级的个体处于聚合情况, 即目标函数值和距离均较接近, 此时种群处于收敛状态.
μ 为给定的阈值, 范围在[0.5, 1)内.
2.2 变异算子池在完成种群状态的评估之后, 需要根据不同进化状态设计合适的变异算子池, 具体设计方式如下.
1)搜索状态变异算子池
{DE/rand/1, DE/best/2, DE/current-to-rand/1}.在搜索状态下, 需要增强算法的全局搜索能力, 故应选择搜索性能较优的变异算子.在所有的变异算子中, DE/rand/1为较常用的一种.相比DE/rand/1, DE/best/2包含2个不同的差分向量, 具有更好的全局探索能力.DE/current-to-rand/1在解决旋转问题时具有较好表现.因此本文选择DE/rand/1、DE/best/2、DE/current-to-rand/1这3个变异算子组成搜索状态的变异算子池.
2)平衡状态变异算子池
{DE/current-to-pbest/1, DE/current-to-ci_mbest/1}.在平衡状态下, 种群个体聚集和分散情况不明显, 此时应同时关注算法的搜索性能和收敛性能.DE/current-to-pbest/1利用表现较优的个体作为目标向量, 引导种群向优秀个体进化, 能有效平衡算法搜索和收敛性能.DE/current-to-ci_mbest/1集成多个优秀个体的信息, 以此作为目标向量, 引导种群向有前途的方向进化, 是近年来表现较优的一种变异算子.因此, 本文选择DE/current-to-pbest/1和DE/current-to-ci_mbest/1两个算子组成平衡状态的变异算子池.
3)收敛状态变异算子池
{DE/best/1, DE/current-to-best/1}.在收敛状态下, 种群已聚集在某一局部区域, 此时应该提升算法的收敛速度和解的精度.故本文选择DE/best/1和DE/current-to-best/1两个算子组成收敛状态的变异算子池.
2.3 自适应Powell方法Powell共轭梯度下降法[27]是一种直接优化方法.从一个初始点出发, 轮流对每个方向进行双向搜索, 直到满足最优性条件.
考虑到差分进化算法的局部搜索能力较弱, 本文引入自适应Powell方法[19], 每隔固定代数G执行一次此方法, 进行局部搜索, 提升CCPDE搜索效率.自适应Powell方法自适应调节Powell方法的容忍度ε 和步长δ .第j维的步长为:
δ j= , (7)
其中, NP· 10%表示计算步长解的数目, xi表示第i个个体, xbest表示种群的最优解.
自适应Powell方法基于迭代次数自适应调整Powell方法的搜索过程, 并通过混合外推技术结合逆黄金分割法与抛物线插值方法, 从而优化种群中个体.
自适应Powell方法伪代码如算法1所示.
算法1 自适应Powell方法[19]
给定初始点x0, D维的单位矩阵E, 容忍度ε ,
搜索步长δ =(δ 1, δ 2, …, δ D)
WHILE |f(x0)-f(xD+1)|< ε 未满足
δ = , x0=xD+1
FOR k=1∶ D
令g(λ )=f(xk-1+λ Ek)
结合逆黄金分割法和逆抛物线插值法, 构造混合外推法
以δ k为初始步长, 寻找包含λ 2的区间[λ 1, λ 3], 使得g(λ 2)< g(λ 1), g(λ 2)< g(λ 3)用Brent's搜索方法寻找函数g(λ )在区间[λ 1, λ 3]上的最优值λ
令xk=xk-1+λ Ek
FOR j=1 to D-1
Ej=Ej+1
END FOR
ED=xD-x0, g(λ )=f(xD+λ ED)
同样构造λ 的区间[λ 1, λ 3], 用Brent's搜索方法寻找函数g(λ )最优值λ
xD+1=xD+λ DED
END FOR
END WHILE
2.4 本文算法步骤为了充分利用种群的个体间距离和目标函数值, 有效评估种群进化状态并选择合适的变异算子, 本文提出基于耦合协调度种群状态评估的差分进化算法(CCPDE), 伪代码如算法2所示.
算法2 CCPDE
输入 最大评价次数MaxFES, 种群大小NP, 状态阈值μ , 缩放因子F, 交叉概率CR, 固定代数G, 容忍度ε
输出 种群中最优解
初始化种群POP, Gen=0, FES=NP
WHILE FES< MaxFES
Gen=Gen+1
按目标函数值将种群分为4个子种群.从子种群中分别随机选择一个个体, 通过式(1)~式(6)计算耦合协调度, 得到种群进化状态评估值θ
IF θ ≤ 1-μ
{DE/rand/1, DE/current-to-rand/1, DE/best/2}中随机选择一个变异算子, 对当前种群POP执行变异操作
ELSE IF 1-μ < θ < μ
{DE/current-to-pbest/1, DE/current-to-ci_mbest/1}中随机选择一个变异算子, 对当前种群POP执行变异操作
ELSE
{DE/best/1, DE/current-to-best/1}中随机选择一个变异算子, 对当前种群POP执行变异操作
END IF
交叉、选择、更新参数
FES=FES+NP
IF mod(Gen, G)=0
ε =
根据式(7)计算δ
随机产生正整数k∈ {1, 2, …, NP}
x0=xbest+rand(0, 1)· (xbest-xk)
以x0为初始点, 调用算法1中的Powell方法, 产生新的解y
利用y代替种群中的最差解
END IF
END WHILE
由算法2可知, CCPDE的步骤具体如下:首先, 初始化种群以及设置各参数.再利用耦合协调度评估种群的进化状态.然后, 根据种群所处的进化状态选择相应的变异算子池.最后, 每隔固定代数, 利用Powell方法更新种群, 直到迭代终止, 输出最优解.
3 实验及结果分析3.1 测试函数与参数设置本文使用CEC2017测试集[28]验证算法性能.CEC2017测试集包含30个测试函数, F1~F3为单峰函数, F4~F10为多峰函数, F11~F20为混合函数, F21~F30为复合函数.
本文选择目标函数值误差均值和标准差度量算法性能.每个测试函数独立运行25次, 以25次目标函数值误差均值作为最终结果, 目标函数值的最大计算次数
MaxFES=10000D,
其中D表示函数维数.
通过Wilcoxon符号秩检验和Friedman检验对数值实验结果进行检验分析, 显著性水平为0.05.对比结果中优于、劣于、相似分别表示CCPDE的数值结果显著优于、劣于和相似于对比算法的数值结果.
所有算法均在Windows 11, Intel(R) Core(TM) i5-11300H@3.10 GHz, 16 GB of RAM环境上进行数值实验, 在matlabR2020b上编码实现.
3.2 与常见差分进化算法对比结果为了验证CCPDE的有效性, 在CEC2017测试集上进行数值实验.选择如下对比算法:TSDE[13], EPSDE(DE Algorithm with Ensemble of Parameters and Mutation and Crossover Strategies)[29], FADE(Fitness-Based Adaptive DE)[30], CJADE(Chaotic- Local-Search-Based JADE)[31], IMODE(Improved Multi-operator DE)[32].
对比算法参数设置与原文献一致.CCPDE的F和CR参数值采用JADE[19]的自适应参数调整方案, 状态参数阈值μ 设置为0.8.
6种算法在CEC2017测试函数上的Wilcoxon符号秩检验的对比结果如表1~表3所示, 测试函数的维度分别为10、30、50.
由表1~表3中结果可知, CCPDE的整体性能均优于其它对比算法, 特别是在维数为30和50的测试函数上, 综合性能明显优于其它算法.
表1
Table 1
表1(Table 1)
表1 各算法在10维测试函数下的误差均值对比 Table 1 Comparison of mean error values of different algorithms with 10D test functions函数 | EPSDE | FADE | CJADE | TSDE | IMODE | CCPDE |
---|
F1 | 5.68e-16 (± 2.84e-15) | 1.14e-15 (± 3.93e-15) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | F2 | 3.75e-08 (± 5.50e-08) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 3.41e-15 (± 9.43e-15) | F3 | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | F4 | 9.09e-15 (± 2.69e-14) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 9.83e-08 (± 3.05e-07) | F5 | 3.92e+00 (± 1.01e+00) | 3.22e+00 (± 1.55e+00) | 3.06e+00 (± 6.80e-01) | 4.46e+00 (± 1.22e+00) | 4.09e+00 (± 1.16e+00) | 2.22e+00 (± 9.44e-01) | F6 | 0.00e+00 (± 0.00e+00) | 1.55e-04 (± 5.69e-04) | 7.28e-14 (± 5.57e-14) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | F7 | 1.47e+01 (± 1.37e+00) | 1.26e+01 (± 3.25e+00) | 1.34e+01 (± 9.96e-01) | 1.42e+01 (± 2.31e+00) | 1.43e+01 (± 1.13e+00) | 1.23e+01 (± 7.21e-01) | F8 | 4.58e+00 (± 1.47e+00) | 3.58e+00 (± 1.82e+00) | 3.41e+00 (± 8.25e-01) | 3.90e+00 (± 2.05e+00) | 4.34e+00 (± 1.31e+00) | 2.47e+00 (± 1.08e+00) | F9 | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | F10 | 2.86e+02 (± 1.13e+02) | 1.06e+02 (± 1.11e+02) | 8.78e+01 (± 6.75e+01) | 1.72e+02 (± 9.35e+01) | 1.00e+02 (± 9.50e+01) | 4.95e+01 (± 6.13e+01) | F11 | 2.26e+00 (± 1.16e+00) | 1.23e+00 (± 8.75e-01) | 2.12e+00 (± 6.72e-01) | 7.96e-02 (± 2.75e-01) | 1.99e-01 (± 4.06e-01) | 3.30e-01 (± 5.49e-01) | F12 | 1.78e+02 (± 1.56e+02) | 7.33e+01 (± 5.88e+01) | 9.59e+01 (± 7.99e+01) | 1.62e+00 (± 3.68e+00) | 1.23e+02 (± 7.74e+01) | 9.11e+01 (± 8.83e+01) | F13 | 5.40e+00 (± 1.42e+00) | 4.46e+00 (± 2.20e+00) | 4.17e+00 (± 2.39e+00) | 2.07e+00 (± 2.13e+00) | 3.85e+00 (± 2.21e+00) | 2.75e+00 (± 2.48e+00) | F14 | 1.89e+01 (± 4.48e+00) | 6.29e+00 (± 7.63e+00) | 4.22e-01 (± 4.15e-01) | 1.59e-01 (± 4.70e-01) | 1.15e-06 (± 5.76e-06) | 1.24e-01 (± 3.29e-01) | F15 | 6.48e-01 (± 7.00e-01) | 5.64e-01 (± 6.85e-01) | 4.23e-01 (± 1.60e-01) | 8.01e-02 (± 2.26e-01) | 1.56e-02 (± 1.50e-02) | 6.15e-02 (± 2.05e-01) | F16 | 8.83e+00 (± 9.12e+00) | 2.65e+00 (± 4.61e+00) | 9.79e-01 (± 2.72e-01) | 2.01e-01 (± 1.46e-01) | 6.81e-01 (± 1.93e-01) | 1.62e-01 (± 2.14e-01) | F17 | 1.43e+01 (± 6.89e+00) | 8.34e+00 (± 1.13e+01) | 3.83e-01 (± 2.19e-01) | 4.03e-01 (± 4.42e-01) | 1.37e-01 (± 2.78e-01) | 2.79e-01 (± 3.00e-01) | F18 | 2.02e+01 (± 1.28e+00) | 8.07e+00 (± 9.92e+00) | 3.00e-01 (± 3.92e-01) | 1.16e-02 (± 2.73e-02) | 3.05e-01 (± 2.09e-01) | 1.28e-01 (± 1.85e-01) | F19 | 3.20e-01 (± 7.91e-02) | 4.53e-01 (± 5.44e-01) | 3.58e-02 (± 1.57e-02) | 1.17e-02 (± 1.12e-02) | 2.31e-02 (± 1.16e-02) | 1.42e-02 (± 1.30e-02) | F20 | 1.49e+01 (± 6.53e+00) | 6.85e+00 (± 8.32e+00) | 1.25e-02 (± 6.24e-02) | 1.25e-02 (± 6.24e-02) | 0.00e+00 (± 0.00e+00) | 0.00e+00 (± 0.00e+00) | F21 | 1.79e+02 (± 4.54e+01) | 1.09e+02 (± 2.99e+01) | 1.44e+02 (± 5.06e+01) | 1.73e+02 (± 5.09e+01) | 9.61e+01 (± 2.00e+01) | 1.46e+02 (± 5.21e+01) | F22 | 9.60e+01 (± 2.00e+01) | 9.33e+01 (± 2.49e+01) | 9.31e+01 (± 2.42e+01) | 9.24e+01 (± 2.78e+01) | 6.19e+01 (± 3.38e+01) | 1.00e+02 (± 1.67e-12) | F23 | 3.12e+02 (± 2.25e+00) | 3.06e+02 (± 2.51e+00) | 3.05e+02 (± 1.63e+00) | 3.06e+02 (± 1.61e+00) | 2.46e+02 (± 1.26e+02) | 3.02e+02 (± 1.84e+00) | F24 | 3.35e+02 (± 2.38e+00) | 2.31e+02 (± 1.19e+02) | 2.78e+02 (± 8.96e+01) | 2.41e+02 (± 1.17e+02) | 8.32e+01 (± 3.48e+01) | 2.92e+02 (± 8.58e+01) | F25 | 4.28e+02 (± 2.27e+01) | 4.09e+02 (± 2.01e+01) | 4.17e+02 (± 2.33e+01) | 4.02e+02 (± 1.26e+01) | 3.98e+02 (± 5.01e-01) | 4.18e+02 (± 2.31e+01) | F26 | 3.15e+02 (± 4.39e+01) | 3.06e+02 (± 1.56e+01) | 3.00e+02 (± 0.00e+00) | 3.00e+02 (± 0.00e+00) | 8.00e+00 (± 4.00e+01) | 3.00e+02 (± 0.00e+00) | F27 | 4.03e+02 (± 4.51e+01) | 3.90e+02 (± 1.26e+00) | 3.89e+02 (± 3.47e-01) | 3.89e+02 (± 9.72e-01) | 3.90e+02 (± 1.08e+00) | 3.89e+02 (± 1.58e+00) | F28 | 4.74e+02 (± 3.84e+00) | 3.00e+02 (± 0.00e+00) | 3.49e+02 (± 1.14e+02) | 3.00e+02 (± 0.00e+00) | 2.16e+02 (± 1.37e+02) | 3.94e+02 (± 1.40e+02) | F29 | 2.46e+02 (± 1.01e+01) | 2.38e+02 (± 4.95e+00) | 2.46e+02 (± 5.66e+00) | 2.32e+02 (± 3.41e+00) | 2.44e+02 (± 1.59e+01) | 2.42e+02 (± 4.64e+00) | F30 | 2.15e+02 (± 2.44e+01) | 4.34e+02 (± 1.91e+01) | 9.85e+04 (± 2.71e+05) | 4.10e+02 (± 3.30e+01) | 6.17e+02 (± 1.14e+02) | 4.23e+02 (± 6.33e+01) | 优于 | 21 | 15 | 16 | 7 | 9 | | 劣于 | 2 | 5 | 2 | 8 | 9 | | 相似 | 7 | 10 | 12 | 15 | 12 | |
| 表1 各算法在10维测试函数下的误差均值对比 Table 1 Comparison of mean error values of different algorithms with 10D test functions |
表2
Table 2
表2(Table 2)
表2 各算法在30维测试函数下的误差均值对比 Table 2 Comparison of mean error values of different algorithms with 30D test functions函数 | EPSDE | FADE | CJADE | TSDE | IMODE | CCPDE |
---|
F1 | 2.68e-12 (± 1.23e-11) | 8.26e-04 (± 3.33e-03) | 1.42e-14 (± 4.10e-15) | 2.84e-15 (± 9.17e-15) | 8.48e-03 (± 3.29e-03) | 4.43e-14 (± 1.80e-14) | F2 | 1.13e+14 (± 4.73e+14) | 3.60e+00 (± 1.25e+01) | 1.11e-12 (± 3.53e-12) | 1.00e-07 (± 3.30e-07) | 4.35e-07 (± 5.35e-07) | 4.85e-11 (± 1.89e-10) | F3 | 3.08e+04 (± 8.61e+04) | 0.00e+00 (± 0.00e+00) | 5.36e+03 (± 1.12e+04) | 0.00e+00 (± 0.00e+00) | 1.85e-07 (± 1.52e-08) | 4.82e+00 (± 2.19e+01) | F4 | 1.33e+00 (± 1.87e+00) | 4.32e+01 (± 2.90e+01) | 4.29e+01 (± 2.66e+01) | 4.54e+01 (± 2.61e+01) | 2.55e+00 (± 1.95e+00) | 1.98e+01 (± 2.96e+01) | F5 | 4.33e+01 (± 7.74e+00) | 2.87e+01 (± 6.03e+00) | 2.61e+01 (± 4.19e+00) | 3.89e+01 (± 1.27e+01) | 5.09e+01 (± 6.99e+00) | 2.07e+01 (± 6.76e+00) | F6 | 1.14e-13 (± 0.00e+00) | 1.68e-01 (± 1.88e-01) | 1.14e-13 (± 0.00e+00) | 1.09e-13 (± 2.27e-14) | 3.24e-04 (± 3.39e-04) | 1.05e-13 (± 3.15e-14) | F7 | 7.47e+01 (± 6.46e+00) | 6.58e+01 (± 1.05e+01) | 5.39e+01 (± 4.51e+00) | 6.79e+01 (± 1.16e+01) | 7.85e+01 (± 7.11e+00) | 4.63e+01 (± 5.37e+00) | F8 | 4.21e+01 (± 6.53e+00) | 2.75e+01 (± 6.12e+00) | 2.54e+01 (± 3.82e+00) | 4.20e+01 (± 1.16e+01) | 5.41e+01 (± 7.54e+00) | 1.95e+01 (± 5.87e+00) | F9 | 9.09e-02 (± 3.53e-01) | 1.18e+00 (± 2.14e+00) | 1.07e-02 (± 2.97e-02) | 6.17e-02 (± 1.61e-01) | 9.93e+01 (± 4.49e+01) | 2.15e-02 (± 3.90e-02) | F10 | 3.75e+03 (± 2.87e+02) | 2.35e+03 (± 7.23e+02) | 1.97e+03 (± 2.08e+02) | 2.20e+03 (± 4.36e+02) | 1.78e+03 (± 2.53e+02) | 1.57e+03 (± 3.36e+02) | F11 | 2.66e+01 (± 1.55e+01) | 1.56e+01 (± 1.40e+01) | 2.98e+01 (± 2.10e+01) | 1.73e+01 (± 1.76e+01) | 1.96e+01 (± 5.24e+00) | 1.33e+01 (± 6.12e+00) | F12 | 3.76e+04 (± 4.28e+04) | 2.46e+03 (± 2.42e+03) | 1.09e+03 (± 3.95e+02) | 1.05e+04 (± 8.47e+03) | 1.19e+03 (± 3.38e+02) | 9.32e+02 (± 3.29e+02) | F13 | 3.80e+03 (± 1.19e+04) | 3.05e+01 (± 1.01e+01) | 3.34e+02 (± 1.44e+03) | 2.61e+01 (± 9.54e+00) | 1.12e+02 (± 5.60e+01) | 2.64e+01 (± 1.34e+01) | F14 | 7.28e+01 (± 5.64e+01) | 2.87e+01 (± 1.03e+01) | 3.45e+03 (± 7.39e+03) | 1.33e+01 (± 7.79e+00) | 7.65e+01 (± 2.49e+01) | 1.14e+02 (± 4.47e+02) | F15 | 2.26e+02 (± 3.35e+02) | 1.49e+01 (± 1.48e+01) | 2.70e+02 (± 1.15e+03) | 8.53e+00 (± 4.27e+00) | 3.64e+01 (± 1.33e+01) | 1.83e+01 (± 2.09e+01) | F16 | 6.44e+02 (± 1.51e+02) | 5.83e+02 (± 1.73e+02) | 4.12e+02 (± 1.38e+02) | 5.57e+02 (± 1.94e+02) | 3.90e+02 (± 1.30e+02) | 2.86e+02 (± 1.59e+02) | F17 | 1.91e+02 (± 8.15e+01) | 1.19e+02 (± 1.18e+02) | 7.53e+01 (± 3.50e+01) | 6.52e+01 (± 7.02e+01) | 7.66e+01 (± 3.65e+01) | 5.72e+01 (± 3.74e+01) | F18 | 2.42e+03 (± 3.53e+03) | 3.53e+01 (± 1.04e+01) | 1.17e+02 (± 9.92e+01) | 1.35e+02 (± 1.47e+02) | 5.27e+01 (± 1.76e+01) | 7.34e+01 (± 5.00e+01) | F19 | 2.33e+01 (± 7.76e+00) | 8.52e+00 (± 2.47e+00) | 1.52e+01 (± 4.58e+00) | 6.09e+00 (± 2.20e+00) | 3.02e+01 (± 1.23e+01) | 1.30e+01 (± 4.73e+00) | F20 | 1.53e+02 (± 9.19e+01) | 1.95e+02 (± 9.24e+01) | 9.48e+01 (± 5.14e+01) | 1.09e+02 (± 9.38e+01) | 1.31e+02 (± 6.20e+01) | 9.47e+01 (± 6.13e+01) | F21 | 2.45e+02 (± 5.49e+00) | 2.31e+02 (± 7.34e+00) | 2.26e+02 (± 3.99e+00) | 2.41e+02 (± 1.42e+01) | 1.43e+02 (± 7.01e+01) | 2.21e+02 (± 5.69e+00) | F22 | 3.26e+03 (± 1.70e+03) | 1.01e+02 (± 2.10e+00) | 1.00e+02 (± 0.00e+00) | 1.00e+02 (± 0.00e+00) | 1.00e+02 (± 1.75e-06) | 1.00e+02 (± 2.30e-13) | F23 | 3.96e+02 (± 8.62e+00) | 3.76e+02 (± 1.03e+01) | 3.73e+02 (± 4.93e+00) | 3.91e+02 (± 1.28e+01) | 3.99e+02 (± 1.21e+01) | 3.71e+02 (± 6.31e+00) | F24 | 4.69e+02 (± 9.64e+00) | 4.56e+02 (± 7.91e+00) | 4.39e+02 (± 4.15e+00) | 4.58e+02 (± 1.33e+01) | 4.39e+02 (± 1.87e+02) | 4.35e+02 (± 4.97e+00) | F25 | 3.79e+02 (± 7.43e-01) | 3.88e+02 (± 1.04e+00) | 3.87e+02 (± 1.67e-01) | 3.87e+02 (± 7.03e-01) | 3.86e+02 (± 1.09e+00) | 3.87e+02 (± 2.46e+00) | F26 | 1.16e+03 (± 1.29e+02) | 1.32e+03 (± 1.30e+02) | 1.15e+03 (± 7.72e+01) | 1.35e+03 (± 1.14e+02) | 2.00e+02 (± 1.00e-04) | 1.15e+03 (± 7.46e+01) | F27 | 5.00e+02 (± 1.08e-04) | 5.01e+02 (± 7.24e+00) | 5.05e+02 (± 8.10e+00) | 4.99e+02 (± 8.30e+00) | 5.09e+02 (± 4.22e+00) | 5.02e+02 (± 5.76e+00) | F28 | 5.00e+02 (± 1.45e+00) | 3.33e+02 (± 5.58e+01) | 3.33e+02 (± 5.60e+01) | 3.28e+02 (± 5.08e+01) | 3.00e+02 (± 1.95e-06) | 3.48e+02 (± 5.60e+01) | F29 | 4.87e+02 (± 7.69e+01) | 4.31e+02 (± 5.58e+01) | 4.76e+02 (± 2.13e+01) | 4.61e+02 (± 5.32e+01) | 4.86e+02 (± 3.73e+01) | 4.49e+02 (± 2.44e+01) | F30 | 2.27e+02 (± 1.50e+01) | 2.03e+03 (± 7.94e+01) | 2.11e+03 (± 1.39e+02) | 2.07e+03 (± 1.22e+02) | 3.17e+03 (± 2.88e+02) | 2.20e+03 (± 1.72e+02) | 优于 | 22 | 16 | 14 | 12 | 22 | | 劣于 | 3 | 7 | 5 | 8 | 4 | | 相似 | 5 | 7 | 11 | 10 | 4 | |
| 表2 各算法在30维测试函数下的误差均值对比 Table 2 Comparison of mean error values of different algorithms with 30D test functions |
表3
Table 3
表3(Table 3)
表3 各算法在50维测试函数下的误差均值对比 Table 3 Comparison of mean error values of different algorithms with 50D test functions函数 | EPSDE | FADE | CJADE | TSDE | IMODE | CCPDE |
---|
F1 | 4.19e-09 (± 6.89e-09) | 5.35e+03 (± 8.03e+03) | 7.05e-14 (± 5.56e-14) | 2.88e+02 (± 3.91e+02) | 1.58e-02 (± 1.10e-03) | 1.55e-12 (± 3.73e-12) | F2 | 7.07e+44 (± 3.21e+45) | 6.01e+02 (± 2.44e+03) | 9.72e-10 (± 1.83e-09) | 4.01e+01 (± 4.67e+01) | 6.15e-05 (± 1.51e-04) | 1.50e-09 (± 6.19e-09) | F3 | 6.79e+04 (± 1.24e+05) | 1.29e-06 (± 1.75e-06) | 1.62e+04 (± 3.83e+04) | 5.55e-13 (± 6.44e-13) | 9.33e-07 (± 5.21e-08) | 2.60e+03 (± 9.54e+03) | F4 | 2.85e+01 (± 2.31e+01) | 6.62e+01 (± 4.38e+01) | 2.88e+01 (± 3.70e+01) | 5.79e+01 (± 4.74e+01) | 7.98e+00 (± 1.31e+01) | 1.84e+01 (± 3.17e+01) | F5 | 1.52e+02 (± 1.64e+01) | 6.98e+01 (± 1.03e+01) | 5.67e+01 (± 6.32e+00) | 7.38e+01 (± 1.38e+01) | 1.36e+02 (± 1.68e+01) | 5.93e+01 (± 1.52e+01) | F6 | 1.36e-13 (± 4.64e-14) | 7.70e-01 (± 5.51e-01) | 1.18e-13 (± 2.27e-14) | 6.50e-08 (± 1.43e-07) | 2.89e-01 (± 1.71e-01) | 1.41e-13 (± 4.96e-14) | F7 | 2.08e+02 (± 1.30e+01) | 1.33e+02 (± 1.69e+01) | 1.02e+02 (± 9.08e+00) | 1.39e+02 (± 1.75e+01) | 1.84e+02 (± 1.54e+01) | 9.16e+01 (± 9.69e+00) | F8 | 1.50e+02 (± 1.74e+01) | 6.64e+01 (± 1.32e+01) | 5.49e+01 (± 8.74e+00) | 7.31e+01 (± 1.96e+01) | 1.41e+02 (± 1.69e+01) | 6.17e+01 (± 1.51e+01) | F9 | 5.19e+01 (± 2.55e+02) | 1.43e+01 (± 1.89e+01) | 1.01e+00 (± 1.18e+00) | 3.00e+00 (± 5.04e+00) | 1.68e+03 (± 5.47e+02) | 2.10e+00 (± 1.30e+00) | F10 | 8.79e+03 (± 5.57e+02) | 5.52e+03 (± 1.76e+03) | 3.71e+03 (± 3.17e+02) | 3.91e+03 (± 7.10e+02) | 3.63e+03 (± 4.69e+02) | 3.75e+03 (± 7.59e+02) | F11 | 9.01e+01 (± 4.94e+01) | 6.32e+01 (± 2.18e+01) | 1.29e+02 (± 3.88e+01) | 5.90e+01 (± 1.77e+01) | 6.53e+01 (± 2.05e+01) | 1.27e+02 (± 5.03e+01) | F12 | 1.46e+05 (± 7.57e+04) | 3.54e+04 (± 2.22e+04) | 5.29e+03 (± 2.24e+03) | 3.35e+04 (± 1.62e+04) | 2.18e+03 (± 5.23e+02) | 1.80e+03 (± 6.92e+02) | F13 | 7.81e+03 (± 1.05e+04) | 1.40e+03 (± 5.35e+03) | 3.35e+02 (± 2.29e+02) | 4.46e+03 (± 4.62e+03) | 3.41e+02 (± 1.16e+02) | 2.78e+02 (± 2.20e+02) | F14 | 1.50e+03 (± 1.87e+03) | 4.68e+01 (± 8.37e+00) | 6.14e+03 (± 2.95e+04) | 5.69e+01 (± 2.21e+01) | 2.02e+02 (± 6.71e+01) | 1.94e+02 (± 5.33e+01) | F15 | 3.00e+03 (± 8.09e+03) | 4.54e+01 (± 1.80e+01) | 3.39e+02 (± 1.67e+02) | 1.40e+02 (± 1.51e+02) | 1.27e+02 (± 2.77e+01) | 2.00e+02 (± 1.16e+02) | F16 | 1.12e+03 (± 2.93e+02) | 1.06e+03 (± 2.60e+02) | 8.45e+02 (± 2.03e+02) | 1.09e+03 (± 2.67e+02) | 9.21e+02 (± 1.82e+02) | 5.60e+02 (± 2.56e+02) | F17 | 8.82e+02 (± 2.08e+02) | 6.43e+02 (± 2.87e+02) | 5.61e+02 (± 1.49e+02) | 6.95e+02 (± 2.06e+02) | 6.62e+02 (± 1.43e+02) | 4.28e+02 (± 1.81e+02) | F18 | 5.49e+03 (± 4.41e+03) | 1.33e+02 (± 6.71e+01) | 1.75e+02 (± 1.27e+02) | 3.25e+03 (± 2.32e+03) | 8.63e+01 (± 3.04e+01) | 8.21e+01 (± 4.05e+01) | F19 | 9.41e+02 (± 2.66e+03) | 2.76e+01 (± 1.01e+01) | 3.18e+02 (± 8.90e+02) | 2.54e+01 (± 1.14e+01) | 5.42e+01 (± 1.58e+01) | 9.05e+01 (± 3.93e+01) | F20 | 6.95e+02 (± 1.52e+02) | 5.43e+02 (± 1.55e+02) | 4.53e+02 (± 1.17e+02) | 4.71e+02 (± 1.93e+02) | 4.41e+02 (± 1.21e+02) | 3.63e+02 (± 1.96e+02) | F21 | 3.53e+02 (± 1.77e+01) | 2.65e+02 (± 1.07e+01) | 2.54e+02 (± 7.54e+00) | 2.82e+02 (± 2.20e+01) | 3.16e+02 (± 8.28e+01) | 2.55e+02 (± 1.31e+01) | F22 | 9.72e+03 (± 8.12e+02) | 4.79e+03 (± 2.18e+03) | 3.09e+03 (± 1.90e+03) | 4.58e+03 (± 1.47e+03) | 2.08e+03 (± 2.30e+03) | 3.43e+03 (± 1.80e+03) | F23 | 5.54e+02 (± 2.49e+01) | 5.02e+02 (± 1.70e+01) | 4.77e+02 (± 1.23e+01) | 5.08e+02 (± 2.23e+01) | 5.73e+02 (± 3.09e+01) | 4.84e+02 (± 1.54e+01) | F24 | 6.42e+02 (± 1.84e+01) | 5.76e+02 (± 1.39e+01) | 5.39e+02 (± 7.88e+00) | 5.72e+02 (± 1.73e+01) | 8.21e+02 (± 1.54e+02) | 5.54e+02 (± 1.67e+01) | F25 | 4.51e+02 (± 2.45e+01) | 5.31e+02 (± 3.29e+01) | 5.28e+02 (± 3.35e+01) | 5.07e+02 (± 3.00e+01) | 5.24e+02 (± 2.49e+01) | 5.27e+02 (± 3.69e+01) | F26 | 2.58e+03 (± 4.38e+02) | 1.84e+03 (± 1.74e+02) | 1.61e+03 (± 1.32e+02) | 1.89e+03 (± 2.03e+02) | 8.19e+02 (± 1.06e+03) | 1.79e+03 (± 1.89e+02) | F27 | 5.00e+02 (± 9.52e-05) | 5.31e+02 (± 2.46e+01) | 5.68e+02 (± 3.42e+01) | 5.41e+02 (± 2.17e+01) | 6.10e+02 (± 2.34e+01) | 5.74e+02 (± 2.96e+01) | F28 | 5.00e+02 (± 1.02e-04) | 4.98e+02 (± 1.75e+01) | 4.94e+02 (± 2.03e+01) | 4.89e+02 (± 2.20e+01) | 4.82e+02 (± 1.60e+01) | 4.98e+02 (± 2.51e+01) | F29 | 9.05e+02 (± 1.36e+02) | 4.52e+02 (± 1.07e+02) | 4.69e+02 (± 7.36e+01) | 5.69e+02 (± 1.88e+02) | 7.63e+02 (± 9.76e+01) | 4.22e+02 (± 9.05e+01) | F30 | 9.76e+02 (± 1.28e+03) | 6.28e+05 (± 5.26e+04) | 6.52e+05 (± 5.87e+04) | 5.99e+05 (± 2.51e+04) | 5.83e+05 (± 1.38e+04) | 6.35e+05 (± 5.33e+04) | 优于 | 24 | 17 | 10 | 17 | 16 | | 劣于 | 4 | 7 | 5 | 7 | 7 | | 相似 | 2 | 6 | 15 | 6 | 7 | |
| 表3 各算法在50维测试函数下的误差均值对比 Table 3 Comparison of mean error values of different algorithms with 50D test functions |
为了进一步分析6种算法的收敛性和鲁棒性, 以维数为30的测试函数为例, 绘制6种算法在F1、F5、F13、F21测试函数的收敛曲线图和箱线图, 具体如图2所示.由(a)可以看出:CCPDE的收敛性与CJADE较接近, 优于其它4种算法; CCPDE的鲁棒性与TSDE、EPSDE较接近, 优于FADE, 稍劣于CJADE.由于CJADE倾向于算法的收敛性, 因此在单峰函数上表现较优, 而CCPDE由于使用多个变异算子, 更倾向于提升算法的综合性能.在(b)中, CCPDE性能明显优于其它5种算法.在(c)中, CCPDE的收敛性能与FADE较接近, 另外根据箱线图可看出, CCPDE所得最优值优于其它算法.在(d)中, IMODE的收敛性能最优, 而观察箱线图可以看出, CCPDE的鲁棒性优于FADE、TSDE、EPSDE和IMODE.
综合上述分析结果可知, 对于各种不同类型的测试函数, CCPDE的收敛性、鲁棒性和解的精度等综合性能都较优.
3.3 与其它进化算法对比结果为了进一步验证CCPDE的有效性, 选择如下对比算法.
1)CSsin[33].改进的布谷鸟搜索算法, 设计线性概率调整的双搜索策略, 用于平衡布谷鸟搜索算法的搜索性和收敛性, 并通过种群规模减轻计算负担.
2)PPSO(Proactive Particles in Swarm Optimi-zation)[34].自动调节性能的粒子群优化算法, 利用模糊逻辑, 动态确定惯性权重、认知因素和社会因素的最佳设置.
3)CGO(Chaos Game Optimization)[35].新型元启发式算法.
4)AGBSO[36].基于替代搜索模式的头脑风暴算法, 基于网格搜索, 将搜索空间划分为更小的搜索空间进行算法搜索.
5)CMA-ES(Evolutionary Optimization Strategy Based on the Derandomized Evolution Strategy with Covariance Matrix Adaption)[37].基于去随机化进化策略和协方差矩阵适应的新型进化算法.
实验中这5种算法的参数设置与其原文献相同, 在CEC2017测试集上进行对比分析.
各算法在30个测试函数上求解的目标函数误差均值和标准差如表4所示, 表中黑体数字表示最优值.
表4
Table 4
表4(Table 4)
表4 6种进化算法在30维测试函数上的误差均值对比 Table 4 Comparison of mean error values of 6 evolutionary algorithms with 30D test functions函数 | CSsin | PPSO | CGO | AGBSO | CMA-ES | CCPDE |
---|
F1 | 1.00e+10 (± 0.00e+00) | 7.48e+02 (± 6.00e+02) | 3.86e+02 (± 8.71e+02) | 2.37e+03 (± 2.43e+03) | 2.61e-14 (± 1.14e-14) | 4.43e-14 (± 1.80e-14) | F2 | 1.00e+10 (± 0.00e+00) | 5.32e+01 (± 6.84e+01) | 6.31e+08 (± 1.54e+12) | 3.05e+02 (± 1.34e+03) | 1.40e-08 (± 1.71e-08) | 4.85e-11 (± 1.89e-10) | F3 | 4.58e+03 (± 1.51e+03) | 1.13e+00 (± 4.79e-01) | 5.70e+01 (± 7.15e+01) | 4.63e+01 (± 8.69e+01) | 9.09e-14 (± 3.28e-14) | 4.82e+00 (± 2.19e+01) | F4 | 3.30e+01 (± 3.40e+01) | 4.39e+01 (± 3.16e+01) | 6.66e+01 (± 2.65e+01) | 9.13e+01 (± 1.44e+01) | 3.37e+01 (± 2.92e+01) | 1.98e+01 (± 2.96e+01) | F5 | 1.68e+02 (± 1.85e+01) | 1.12e+02 (± 1.32e+01) | 5.07e+01 (± 3.23e+01) | 1.47e+01 (± 3.63e+00) | 7.13e+02 (± 1.72e+02) | 2.07e+01 (± 6.76e+00) | F6 | 5.17e-01 (± 4.21e-01) | 2.03e+01 (± 4.11e+00) | 4.58e-01 (± 4.07e-01) | 5.80e-05 (± 8.13e-05) | 9.39e+01 (± 1.09e+01) | 1.05e-13 (± 3.15e-14) | F7 | 2.00e+02 (± 4.83e+01) | 1.35e+02 (± 1.62e+01) | 1.28e+02 (± 5.02e+01) | 5.38e+01 (± 8.17e+00) | 3.67e+03 (± 1.03e+03) | 4.63e+01 (± 5.37e+00) | F8 | 1.16e+02 (± 1.25e+01) | 8.10e+01 (± 1.03e+01) | 5.13e+01 (± 3.59e+01) | 1.43e+01 (± 3.59e+00) | 5.87e+02 (± 1.28e+02) | 1.95e+01 (± 5.87e+00) | F9 | 3.17e+03 (± 5.68e+02) | 1.36e+03 (± 2.79e+02) | 5.31e+01 (± 6.71e+01) | 0.00e+00 (± 0.00e+00) | 1.32e+04 (± 2.78e+03) | 2.15e-02 (± 3.90e-02) | F10 | 2.48e+02 (± 3.33e+02) | 3.13e+03 (± 3.43e+02) | 6.33e+03 (± 8.57e+02) | 5.55e+02 (± 3.54e+02) | 5.40e+03 (± 8.08e+02) | 1.57e+03 (± 3.36e+02) | F11 | 3.61e+01 (± 1.86e+01) | 8.43e+01 (± 1.82e+01) | 7.46e+01 (± 3.43e+01) | 5.29e+01 (± 3.30e+01) | 1.78e+02 (± 6.27e+01) | 1.33e+01 (± 6.12e+00) | F12 | 2.56e+09 (± 4.39e+09) | 2.77e+04 (± 8.47e+03) | 2.04e+04 (± 1.60e+04) | 8.28e+05 (± 5.30e+05) | 1.45e+03 (± 5.04e+02) | 9.32e+02 (± 3.29e+02) | F13 | 1.23e+04 (± 1.45e+04) | 3.21e+03 (± 2.85e+03) | 4.17e+03 (± 2.01e+04) | 1.34e+04 (± 8.95e+03) | 1.63e+03 (± 6.82e+02) | 2.64e+01 (± 1.34e+01) | F14 | 3.36e+02 (± 1.42e+02) | 2.32e+03 (± 1.51e+03) | 8.37e+01 (± 1.23e+01) | 3.32e+03 (± 2.87e+03) | 2.13e+02 (± 6.50e+01) | 1.14e+02 (± 4.47e+02) | F15 | 4.72e+02 (± 1.03e+02) | 2.13e+03 (± 1.61e+03) | 2.07e+02 (± 1.30e+03) | 5.76e+03 (± 4.82e+03) | 2.61e+02 (± 1.26e+02) | 1.83e+01 (± 2.09e+01) | F16 | 3.97e+02 (± 1.03e+02) | 8.46e+02 (± 1.51e+02) | 5.79e+02 (± 3.24e+02) | 1.29e+02 (± 1.12e+02) | 5.76e+02 (± 3.80e+02) | 2.86e+02 (± 1.59e+02) | F17 | 7.27e+01 (± 2.53e+01) | 3.31e+02 (± 1.12e+02) | 2.06e+02 (± 1.04e+02) | 6.96e+01 (± 5.17e+01) | 2.34e+02 (± 1.20e+02) | 5.72e+01 (± 3.74e+01) | F18 | 3.91e+04 (± 1.16e+04) | 6.99e+04 (± 3.03e+04) | 1.85e+03 (± 2.78e+03) | 1.15e+05 (± 7.92e+04) | 2.01e+02 (± 8.32e+01) | 7.34e+01 (± 5.00e+01) | F19 | 2.54e+02 (± 8.41e+01) | 1.71e+03 (± 1.67e+03) | 6.71e+01 (± 1.12e+03) | 8.86e+03 (± 1.04e+04) | 1.98e+02 (± 5.82e+01) | 1.30e+01 (± 4.73e+00) | F20 | 1.58e+02 (± 3.84e+01) | 3.48e+02 (± 9.07e+01) | 1.92e+02 (± 9.79e+01) | 1.05e+02 (± 6.06e+01) | 1.28e+03 (± 3.44e+02) | 9.47e+01 (± 6.13e+01) | F21 | 1.00e+02 (± 7.70e-01) | 3.05e+02 (± 3.27e+01) | 2.48e+02 (± 2.43e+01) | 2.17e+02 (± 5.54e+00) | 6.16e+02 (± 2.59e+02) | 2.21e+02 (± 5.69e+00) | F22 | 1.00e+02 (± 3.09e-02) | 1.00e+02 (± 5.00e-07) | 1.00e+02 (± 1.19e+00) | 1.00e+02 (± 2.83e-09) | 6.01e+03 (± 1.26e+03) | 1.00e+02 (± 2.30e-13) | F23 | 2.82e+02 (± 1.30e+02) | 6.81e+02 (± 3.75e+01) | 4.07e+02 (± 2.17e+01) | 3.61e+02 (± 7.07e+00) | 1.99e+03 (± 7.01e+02) | 3.71e+02 (± 6.31e+00) | F24 | 1.66e+02 (± 4.76e+01) | 7.39e+02 (± 4.53e+01) | 4.94e+02 (± 3.54e+01) | 4.32e+02 (± 5.33e+00) | 4.58e+02 (± 9.60e+00) | 4.35e+02 (± 4.97e+00) | F25 | 3.84e+02 (± 1.61e+00) | 3.85e+02 (± 1.75e+00) | 3.88e+02 (± 5.57e+00) | 3.87e+02 (± 2.71e-02) | 3.87e+02 (± 2.00e+00) | 3.87e+02 (± 2.46e+00) | F26 | 2.02e+02 (± 2.58e+00) | 2.04e+03 (± 1.71e+03) | 1.77e+03 (± 3.19e+02) | 9.47e+02 (± 1.22e+02) | 1.95e+03 (± 2.44e+03) | 1.15e+03 (± 7.46e+01) | F27 | 4.97e+02 (± 8.51e+00) | 7.08e+02 (± 5.37e+01) | 5.26e+02 (± 1.73e+01) | 5.05e+02 (± 7.31e+00) | 4.90e+02 (± 1.12e+01) | 5.02e+02 (± 5.76e+00) | F28 | 3.48e+02 (± 4.43e+01) | 3.27e+02 (± 3.13e+01) | 3.17e+02 (± 6.32e+01) | 3.98e+02 (± 2.53e+01) | 3.47e+02 (± 5.96e+01) | 3.48e+02 (± 5.60e+01) | F29 | 5.11e+02 (± 4.23e+01) | 7.80e+02 (± 1.20e+02) | 6.99e+02 (± 1.83e+02) | 4.74e+02 (± 5.11e+01) | 8.01e+02 (± 2.09e+02) | 4.49e+02 (± 2.44e+01) | F30 | 1.84e+04 (± 5.34e+03) | 3.32e+03 (± 3.86e+02) | 4.65e+03 (± 2.35e+03) | 6.41e+04 (± 4.03e+04) | 2.21e+03 (± 2.09e+02) | 2.20e+03 (± 1.72e+02) |
| 表4 6种进化算法在30维测试函数上的误差均值对比 Table 4 Comparison of mean error values of 6 evolutionary algorithms with 30D test functions |
观察表4中结果可知, 对于单峰函数, CMA-ES表现最优, CCPDE次优.对于多峰函数, CCPDE表现与AGBSO接近, 优于其它4种进化算法.对于混合函数, CCPDE的数值结果明显优于其它5种进化算法.对于复合函数, CSsin在F21、F23~F27测试函数上的数值结果最优.CCPDE在F29、F30测试函数上的结果最优.
根据上述分析, 在CEC-2017测试集的30个测试函数上, CCPDE总体性能优于5种进化算法.
进一步给出6种进化算法误差均值的Friedman秩和排名, 具体如表5所示.由表可知, CCPDE的Fridman秩值为1.97, 明显优于其它算法.秩排名第二和第三的分别是AGBSO与CSsin, Fridman秩值为3.36和3.47, 较接近.秩排名第六位的是PPSO, 秩值为4.38, 明显差于其它算法.由此可知, 相比其它进化算法, CCPDE具有一定优势.
表5
Table 5
表5(Table 5)
表5 6种进化算法的Friedman检验结果 Table 5 Friedman test results of 6 evolutionary algorithms | CSsin | PPSO | CGO | AGBSO | CMA-ES | CCPDE |
---|
Fridman秩 | 3.47 | 4.38 | 3.69 | 3.36 | 4.14 | 1.97 | 排名 | 3 | 6 | 4 | 2 | 5 | 1 |
| 表5 6种进化算法的Friedman检验结果 Table 5 Friedman test results of 6 evolutionary algorithms |
3.4 与其它种群状态评估方法对比结果为了进一步验证耦合协调度种群评估方法的有效性, 本节使用DEMS[14]、ADDE[17]、DEET[18]替换CCPDE中的耦合协调度评估方法, 在30维CEC2017 测试函数上开展数值实验, 误差均值和标准差如表6所示, 表中黑体数字表示最优值.
表6
Table 6
表6(Table 6)
表6 CCPDE与其它种群状态评估方法的误差均值对比 Table 6 Comparison of mean error values between CCPDE and other population state assessment methods函数 | DEET-CCPDE | ADDE-CCPDE | DEMS-CCPDE | CCPDE |
---|
F1 | 1.65e-14± 7.87e-15 | 4.38e-14± 1.96e-14 | 4.55e-14± 4.16e-14 | 4.43e-14± 1.80e-14 | F2 | 7.75e+07± 3.86e+08 | 3.32e-10± 1.01e-09 | 5.26e+06± 2.63e+07 | 4.85e-11± 1.89e-10 | F3 | 3.01e+03± 6.96e+03 | 4.98e+01± 2.27e+02 | 3.83e+03± 9.81e+03 | 4.82e+00± 2.19e+01 | F4 | 2.61e+01± 2.94e+01 | 2.25e+01± 2.94e+01 | 2.38e+01± 2.98e+01 | 1.98e+01± 2.96e+01 | F5 | 2.00e+01± 5.46e+00 | 3.84e+01± 2.09e+01 | 1.91e+01± 6.08e+00 | 2.07e+01± 6.76e+00 | F6 | 8.64e-14± 4.96e-14 | 1.09e-13± 2.27e-14 | 1.14e-13± 0.00e+00 | 1.05e-13± 3.15e-14 | F7 | 4.66e+01± 4.41e+00 | 6.18e+01± 1.36e+01 | 5.83e+01± 9.61e+00 | 4.63e+01± 5.37e+00 | F8 | 2.12e+01± 6.67e+00 | 3.76e+01± 1.12e+01 | 1.99e+01± 5.59e+00 | 1.95e+01± 5.87e+00 | F9 | 8.22e-01± 1.29e+00 | 1.63e+00± 2.77e+00 | 1.89e-01± 4.04e-01 | 2.15e-02± 3.90e-02 | F10 | 1.69e+03± 3.52e+02 | 1.78e+03± 4.14e+02 | 1.76e+03± 2.84e+02 | 1.57e+03± 3.36e+02 | F11 | 1.78e+01± 1.22e+01 | 9.26e+01± 4.31e+01 | 2.88e+01± 4.28e+01 | 1.33e+01± 6.12e+00 | F12 | 1.02e+03± 4.41e+02 | 1.58e+03± 1.67e+03 | 2.02e+03± 3.92e+03 | 9.32e+02± 3.29e+02 | F13 | 3.35e+01± 2.94e+01 | 2.61e+02± 1.26e+02 | 1.61e+02± 1.55e+02 | 2.64e+01± 1.34e+01 | F14 | 3.39e+03± 8.85e+03 | 1.32e+02± 5.23e+01 | 2.81e+03± 7.28e+03 | 1.14e+02± 4.47e+02 | F15 | 1.67e+01± 1.37e+01 | 1.68e+02± 1.36e+02 | 3.98e+01± 5.70e+01 | 1.83e+01± 2.09e+01 | F16 | 3.23e+02± 1.75e+02 | 3.38e+02± 2.31e+02 | 3.41e+02± 1.45e+02 | 2.86e+02± 1.59e+02 | F17 | 5.54e+01± 2.83e+01 | 1.10e+02± 8.50e+01 | 6.23e+01± 4.18e+01 | 5.72e+01± 3.74e+01 | F18 | 1.28e+04± 1.51e+04 | 8.70e+02± 3.60e+03 | 2.65e+04± 3.41e+04 | 7.34e+01± 5.00e+01 | F19 | 1.31e+01± 5.99e+00 | 7.97e+01± 4.90e+01 | 2.99e+01± 2.85e+01 | 1.30e+01± 4.73e+00 | F20 | 8.47e+01± 6.65e+01 | 9.13e+01± 7.64e+01 | 8.55e+01± 5.98e+01 | 9.47e+01± 6.13e+01 | F21 | 2.20e+02± 5.50e+00 | 2.37e+02± 9.31e+00 | 2.23e+02± 5.36e+00 | 2.21e+02± 5.69e+00 | F22 | 1.00e+02± 9.10e-14 | 1.00e+02± 2.08e-13 | 1.00e+02± 1.86e-13 | 1.00e+02± 2.30e-13 | F23 | 3.69e+02± 9.47e+00 | 3.93e+02± 1.56e+01 | 3.72e+02± 8.12e+00 | 3.71e+02± 6.31e+00 | F24 | 4.40e+02± 4.55e+00 | 4.67e+02± 1.47e+01 | 4.56e+02± 9.13e+00 | 4.35e+02± 4.97e+00 | F25 | 3.88e+02± 7.66e+00 | 3.87e+02± 2.95e+00 | 3.86e+02± 1.57e+00 | 3.87e+02± 2.46e+00 | F26 | 1.17e+03± 8.49e+01 | 1.50e+03± 1.67e+02 | 1.24e+03± 3.23e+02 | 1.15e+03± 7.46e+01 | F27 | 5.02e+02± 8.24e+00 | 5.07e+02± 9.37e+00 | 5.04e+02± 6.09e+00 | 5.02e+02± 5.76e+00 | F28 | 3.36e+02± 5.37e+01 | 3.38e+02± 6.29e+01 | 3.40e+02± 6.14e+01 | 3.48e+02± 5.60e+01 | F29 | 4.54e+02± 2.05e+01 | 4.71e+02± 4.72e+01 | 4.57e+02± 4.60e+01 | 4.49e+02± 2.44e+01 | F30 | 2.90e+03± 1.20e+03 | 2.19e+03± 1.71e+02 | 4.48e+03± 3.27e+03 | 2.20e+03± 1.72e+02 | 优于 | 5 | 19 | 12 | | 劣于 | 3 | 0 | 0 | | 相似 | 22 | 11 | 18 | |
| 表6 CCPDE与其它种群状态评估方法的误差均值对比 Table 6 Comparison of mean error values between CCPDE and other population state assessment methods |
实验中DEET-CCPDE表示在状态评估阶段使用DEET的评估方法, 其余算法内容与CCPDE一致.同样, ADDE-CCPDE、DEMS-CCPDE为ADDE和DEMS的评估方法与CCPDE结合形成的算法.由表6中结果可知, 耦合协调度种群状态评估方法能提升算法的性能.
为了进一步衡量状态评估方法的优劣, 给出4种算法的Friedman秩排名, 具体如表7所示.由表可知, CCPDE的秩为1.70, 表现最优, 排名第二的是DEET-CCPDE, 其次是DEMS-CCPDE和ADDE-CCPDE.
表7
Table 7
表7(Table 7)
表7 CCPDE和3种种群状态评估方法的Friedman检验结果 Table 7 Friedman test results of CCPDE and 3 population state assessment methods算法 | DEET- CCPDE | ADDE- CCPDE | DEMS- CCPDE | CCPDE |
---|
Friedman秩 | 2.10 | 3.23 | 2.97 | 1.70 | 排名 | 2 | 4 | 3 | 1 |
| 表7 CCPDE和3种种群状态评估方法的Friedman检验结果 Table 7 Friedman test results of CCPDE and 3 population state assessment methods |
ADDE的评估方法仅基于目标函数值排名最优和中位数这两个特定个体的距离, 容易出现误判.DEMS的评估方法计算种群中每个个体两两之间距离的平均值, 评估效果略优于ADDE.DEET同时考虑种群分布、目标函数值的影响, 但是仅以最优解作为参照, 会出现评估不准确的情况.相比而言, 耦合协调度评估方法虽然只计算四个个体之间耦合情况, 但四个个体分别来自于不同等级的子种群, 取样均匀, 且耦合协调度模型能够综合考虑种群个体的分布与目标函数值.
综合上述结果可知, 在CCPDE中, 基于耦合协调度的种群评估方法优于其它3种种群状态评估方法, 4种种群状态评估方法的数值结果也进一步验证此结果.
3.5 参数敏感性分析为了分析状态参数阈值μ 对CCPDE性能的影响, 本节主要探讨μ 对进化状态划分的影响.为了选择CCPDE的最优状态参数阈值, 本节将μ 固定在[0.5, 0.9]区间, 步长设置为0.1, 算法独立运行25次, 测试函数维数设为10、20、30.5个不同阈值相应算法的Friedman检验结果如表8所示, 表中黑体数字表示最优值.
表8
Table 8
表8(Table 8)
表8 不同维度下μ 值改变后的Friedman检验结果 Table 8 Friedman test results after altering μ in different dimensions维度 | | μ =0.5 | μ =0.6 | μ =0.7 | μ =0.8 | μ =0.9 |
---|
10 | Friedman秩 排名 | 4.20 5 | 3.00 4 | 2.78 2 | 2.12 1 | 2.90 3 | 30 | Friedman秩 排名 | 4.45 5 | 3.45 4 | 2.72 2 | 1.50 1 | 2.88 3 | 50 | Friedman秩 排名 | 4.40 5 | 3.25 4 | 2.12 1 | 2.75 3 | 2.48 2 |
| 表8 不同维度下μ 值改变后的Friedman检验结果 Table 8 Friedman test results after altering μ in different dimensions |
由表8结果分析可知:在测试函数维数为10、30, μ =0.8时, 均值排名最优; 在测试函数维数为50, μ =0.7时, 均值排名最优, 秩排名为2.12.由此可知, 当μ =0.8时, 算法的总体性能最佳.