工程科学与技术   2020, Vol. 52 Issue (2): 180-191
余弦适应性骨架差分进化算法
熊小峰1, 刘啸婵1, 郭肇禄1,2, 张文生2     
1. 江西理工大学 理学院,江西 赣州 341000;
2. 中国科学院 自动化研究所,北京 100190
基金项目: 国家自然科学基金项目(61662029;U1636220);江西省教育厅科技项目(GJJ160623;GJJ170495);江西理工大学青年英才支持计划项目(2018)
摘要: 针对传统差分进化算法在解决复杂优化问题时存在收敛速度慢的问题,提出了一种余弦适应性骨架差分进化(CABDE)算法,算法设计了一种新的变异策略适应性机制。该机制引入一个余弦适应性因子,实现高斯变异策略和DE/current-to-best/1变异策略的优势互补,以平衡算法的勘探能力和开采能力。其中,高斯变异策略具有较强的全局搜索能力,有利于维持种群多样性。DE/current-to-best/1变异策略具有较强的局部搜索能力,能够加快对较优区域的开采。同时,高斯变异策略和DE/current-to-best/1变异策略都利用当前最优个体来引导算法搜索方向,从而尽可能地加快收敛速度。余弦适应性因子在进化过程中随迭代次数的增加而波动性调整,为不同进化阶段适应性地选择变异策略。设计的变异策略适应性机制能够在维持种群多样性的同时加快收敛速度。为测试算法性能,采用18个不同特性的测试函数对算法进行数值实验。对CABDE算法的变异策略和参数动态变化进行了分析,实验结果验证了变异策略和参数动态变化的有效性。此外,CABDE算法分别与新近的骨架算法变体、差分进化算法变体、粒子群优化算法变体和人工蜂群算法变体进行了比较。实验结果表明,CABDE算法获得了较高的求解精度,加快了收敛速度,整体上优于其他比较算法。
关键词: 差分进化    骨架算法    高斯变异    余弦适应性因子    
Adaptive Bare-bones Differential Evolution Based on Cosine
XIONG Xiaofeng1, LIU Xiaochan1, GUO Zhaolu1,2, ZHANG Wensheng2     
1. School of Sci., Jiangxi Univ. of Sci. and Technol., Ganzhou 341000, China;
2. Inst. of Automation, Chinese Academy of Sciences, Beijing 100190, China
Abstract: In order to accelerate the convergence speed of the traditional DE algorithms for some complex optimization problems, an adaptive bare-bones differential evolution based on cosine (CABDE) was proposed. In the proposed CABDE, a new adaptive mechanism for mutation strategy selection was presented. Moreover, a cosine adaptive factor was introduced to achieve the complementary advantages of the Gaussian mutation strategy and the DE/current-to-best/1 mutation strategy. The Gaussian mutation strategy has excellent global search ability, which is good for maintaining the population diversity; While the DE/current-to-best/1 mutation strategy exhibits good local search ability, which is helpful for accelerating the convergence speed. Therefore, the presented adaptive mechanism can maintain a balance between the exploration and exploitation. In addition, the information of the best individual in both Gaussian mutation strategy and DE/current-to-best/1 mutation strategy was utilized to guide the search directions. During the evolution process, the cosine adaptive factor was adjusted according to the increase of the iterations and then the suitable mutation strategies in the different evolutionary stages were adaptively chosen. As a result, the presented adaptive mechanism can maintain the population diversity as well as accelerate the convergence speed. To test the performance of CABDE, 18 test functions with different characteristics were used in the experiments. The effectiveness of the mutation strategies and the dynamic parameters were discussed. The experimental results showed that the mutation strategies and the dynamic parameters can improve the search performance. Moreover, CABDE was compared with several new variants of bare-bones algorithms, DE variants, PSO variants, and ABC variants. The comparisons indicated that CABDE can achieve better solutions and exhibit faster convergence speed.
Key words: differential evolution    bare-bones algorithms    Gaussian mutation    cosine adaptive factor    

差分进化(differential evolution,DE)算法是由Storn和Price等[1]在1995年提出的一种群体智能优化算法,被广泛应用于机器学习、数据挖掘、交通管理等领域[2]。与粒子群(PSO)算法[3]、人工蜂群(ABC)算法[4]等智能算法相比,DE算法的参数少、优化能力较强,但是在解决复杂优化问题时依旧存在收敛速度慢的问题。为此,研究人员提出了一系列改进的DE算法变体[5]

目前,主要从控制参数和变异策略方面对DE算法进行改进。其中,ADE[6]、ODE[7]、OXDE[8]等算法在一定程度上加快了收敛速度,提高了算法性能,然而在解决具体问题时选择控制参数和变异策略依旧存在困难[9-10]。为了降低控制参数对算法性能的敏感度,Omran于2008年[11]将BBPSO算法[12]和DE算法结合得到一种骨架差分进化(BBDE)算法。该算法引入个体全局最佳位置和个体历史最佳位置的加权平均,降低了缩放因子等控制参数对算法性能的影响,但在解决多峰优化问题时易陷入局部最优。为此,Wang等[13]在BBDE算法的基础上提出了执行高斯变异策略的GBDE算法,该算法利用个体信息维持种群多样性,但开采能力较弱。为进一步提高算法性能,彭虎[14]和Wang[13]等又在GBDE算法的基础上分别提出了tBBDE算法和MGBDE算法。其中,tBBDE算法采用基于3个随机个体的高斯变异策略,对解空间进行了更全面的搜索,但其随机性过大导致算法搜索较为盲目,进而影响收敛速度。MGBDE算法引入DE/best/1变异策略,并以固定概率执行两变异策略。然而,MGBDE算法没有根据进化阶段的不同对变异策略做出适应性调整,容易陷入局部最优。针对该问题,刘会宇等[15]提出基于双变异策略的自适应骨架差分进化(SMGBDE)算法。SMGBDE算法增加了变异策略自适应选择机制,但其适应性还有待提高。

针对传统适应性算法中变异策略适应性不足的问题,本文提出一种余弦适应性差分进化(CABDE)算法。其主要思想是引入一种余弦适应性因子来适应性控制变异策略的选择,进而提高算法全局搜索能力和局部搜索能力。该机制能够在保持种群多样性的同时尽可能加快收敛速度,从而提高算法性能。通过数值实验证明了CABDE算法具有较强的寻优能力,且在解决多峰或复杂优化问题时CABDE算法能够获得更高的解精度。

1 DE算法

在DE算法中,首先随机初始化一个种群 ${{{X}}_{i,G}} = $ ${({{{X}}_1},{{{X}}_2}, \cdots ,{{{X}}_{NP}})^{\rm{T}}}$ ,并计算其适应值 $f({{X}})$ [1]。其中, ${{{X}}_i} = $ $ ({x_{i1}},{x_{i2}}, \cdots ,{x_{i D}})$ $i = 1,2, \cdots ,NP$ $D$ 是向量维数, $NP$ 为种群大小。之后,算法根据差分变异、杂交和选择操作产生下一代。具体操作如下:

1)差分变异操作

在差分变异操作中,种群中每一个父代个体 ${{{X}}_{i,G}} = ({x_{i,1,G}},{x_{i,2,G}}, \cdots ,{x_{i,D,G}})$ 都产生一个变异个体 ${{{V}}_{i,G}} = $ $({v_{i,1,G}}, {v_{i,2,G}}, \cdots ,{v_{i,D,G}})$ 。DE算法中常用的差分变异策略如下所示[1]

DE/rand/1:

${{{V}}_{i,G}} = {{{X}}_{r1,G}} + F \cdot ({{{X}}_{r2,G}} - {{{X}}_{r3,G}})$ (1)

DE/best/1:

${{{V}}_{i,G}} = {{{X}}_{{\rm{best}},G}} + F \cdot ({{{X}}_{r1,G}} - {{{X}}_{r2,G}})$ (2)

DE/current/1:

${{{V}}_{i,G}} = {{{X}}_{i,G}} + F \cdot ({{{X}}_{r1,G}} - {{{X}}_{r2,G}})$ (3)

DE/current-to-best/1:

${{{V}}_{i,G}} = {{{X}}_{i,G}} + F \cdot ({{{X}}_{{\rm{best}},G}} - {{{X}}_{i,G}}) + F \cdot ({{{X}}_{r1,G}} - {{{X}}_{r2,G}})$ (4)

DE/rand-to-best/1:

${{{V}}_{i,G}} = {{{X}}_{r1,G}} + F \cdot ({{{X}}_{{\rm{best}},G}} - {{{X}}_{r1,G}}) + F \cdot ({{{X}}_{r2,G}} - {{{X}}_{r3,G}})$ (5)

式(1)~(5)中: $G$ 为进化代数; ${{{X}}_{{\rm{best}},G}}$ 是当前种群的最好个体; ${{{X}}_{i,G}}$ 为父个体,即当前个体; $r1,\;r2,\;r3,i \in \{ 1,2, \cdots , $ $NP\} $ ,且两两互不相等; ${{{X}}_{r1,G}} - {{{X}}_{r2,G}}$ ${{{X}}_{r2,G}} - {{{X}}_{r3,G}}$ 为差分向量; $F$ 为缩放因子,用于控制差分扰动的程度,通常情况下 $F = 0.5$ 能够获得较好的结果[15]

2)杂交操作

杂交操作是利用差分变异操作中产生的变异个体 ${{{V}}_{i,G}}$ 与父个体 ${{{X}}_{i,G}}$ 进行二项杂交,产生试验个体 ${{{U}}_{i,G}} = ({u_{i,1,G}},{u_{i,2,G}}, \cdots ,{u_{i,D,G}})$ 。该过程如下[1]

${u_{i,j,G}} = \left\{\!\!\!\! {\begin{array}{*{20}{l}} {{v_{i,j,G}},}\,{\rm{ }}{rand(0,1) \le CR\;{\rm{ or }}\;j = {j_{{\rm{rand}}}}{\rm{;}}}\\ {{X_{i,j,G}},}\,{\rm{ }}{{\text{其他}}} \end{array}} \right.$ (6)

式中, $j = 1,2, \cdots ,D$ ${j_{{\rm{rand}}}}$ $[1,D]$ 之间的一个随机整数, $CR$ 为杂交概率。

3)选择操作

选择操作是根据适应值从父个体和试验个体中选择更好的个体成为下一代个体,该过程如下[1]

${{{X}}_{i,G + 1}} = \left\{\!\!\!\! {\begin{array}{*{20}{l}} {{{{U}}_{i,G}},}\,{f({{{U}}_{i,G}}) \le f({{{X}}_{i,G}});}\\ {{{{X}}_{i,G}},}\,{\text{其他}} \end{array}} \right.$ (7)

式中, ${{{X}}_{i,G + 1}}$ 为下一代个体。

2 CABDE算法 2.1 研究动机

传统DE算法常使用单个变异策略生成变异个体。其中,DE/rand/1和DE/best/1是应用最普遍的变异策略。DE/rand/1变异策略采用随机选择的方式确定基向量和差分向量,具有较强的全局搜索能力,但其随机性过大容易使得算法的收敛速度较慢。此外,DE/best/1变异策略以最好个体作为基向量,在其周围进行局部搜索,收敛速度快,但在解决多峰优化问题时易陷入局部最优,导致早熟[16]。由此可见,单个变异策略往往难以有效地解决复杂优化问题。为此,研究人员提出了许多基于组合变异策略的DE算法变体[13,15]

许多DE算法变体采用组合变异策略实现勘探能力和开采能力之间的平衡。虽然,组合变异策略在一定程度上能够改进传统变异策略的搜索性能,但是,如何改进策略的适应性依旧是组合变异策略研究中的难点[13]

为解决传统DE算法在策略适应性上存在的缺点,提出了一种将高斯变异策略和DE/current-to-best/1变异策略融合的余弦适应性机制,以此平衡算法的勘探能力和开采能力,从而提高算法性能。

2.2 变异策略的适应性机制

为了改进变异策略的搜索性能,CABDE算法结合高斯变异策略和DE/current-to-best/1变异策略实现变异策略的优势互补。具体的高斯变异策略[13]为:

${{V}}_{i,G}^1 = N\Big(\frac{{{{{X}}_{{\rm{best}},G}} + {{{X}}_{i,G}}}}{2},\left| {{{{X}}_{{\rm{best}},G}} - {{{X}}_{i,G}}} \right|\Big)$ (8)

式中, ${{{X}}_{{\rm{best}},G}}$ 为当前最优个体, ${{{X}}_{i,G}}$ 为当前个体。高斯变异策略运用当前个体 ${{{X}}_{i,G}}$ 和当前最优个体 ${{{X}}_{{\rm{best}},G}}$ 的加权平均、绝对差获得新的变异个体[14]。在进化的前期,由于 ${{{X}}_{i,G}}$ ${{{X}}_{{\rm{best}},G}}$ 差异较大,高斯变异策略产生的新的变异个体大部分集中在 ${{{X}}_{i,G}}$ ${{{X}}_{{\rm{best}},G}}$ 的加权平均值附近,此时该策略具有较强的勘探能力。随着进化阶段的推进, ${{{X}}_{i,G}}$ ${{{X}}_{{\rm{best}},G}}$ 的差异减小,该策略将逐渐转向开发,其局部搜索能力不断增强。

DE/current-to-best/1变异策略具体形式[1]如下:

${{V}}_{i,G}^2 = {{{X}}_{i,G}} + F \cdot ({{{X}}_{{\rm{best}},G}} - {{{X}}_{i,G}}) + F \cdot ({{{X}}_{{{r1}},G}} - {{{X}}_{{{r2}},G}})$ (9)

DE/current-to-best/1变异策略在对当前最好个体邻域进行局部搜索的同时,可维持种群多样性,在解决多峰优化问题时一定程度上能够降低陷入局部最优的可能性[9]

为了进一步让高斯变异策略和DE/current-to- best/1变异策略在不同进化阶段发挥各自优势,作者引入一个新的变异策略适应性机制,即余弦适应性机制。该机制利用余弦适应性因子 $CH$ 选择变异策略,即:

${M_i} = \left\{\!\!\!\! {\begin{array}{*{20}{l}} {{{V}}_{i,G}^1,}\,{rand(0,1) \le CH;}\\ {{{V}}_{i,G}^2,}\,{\text{其他}} \end{array}} \right.$ (10)

CH具体公式如下:

$CH = \frac{{c_1^2}}{2}{\rm{cos}}(2\text{π} \cdot \omega \cdot G) + {c_2}$ (11)

式中, ${c_1} = 1 - \dfrac{G}{{{G_{\max }}}}$ $G$ 为当前进化代数, ${G_{\max }}$ 为最大进化代数, $\omega = 0.05$ 为余弦函数的波动频率。从式(11)可知, $\dfrac{{c_1^2}}{2}$ CH的波动振幅, ${c_2}$ CH的波动中心。图1刻画了 ${c_2} = {c_1}$ CH值随迭代次数 $G$ 变化的规律,直观地反映了CH的变化规律。根据图1可知, ${c_2}$ 过大或者过小将影响CH的变化范围。为避免 ${c_2}$ 值出现极端情况,影响算法性能,对 ${c_2}$ 进行如式(12)的约束。

图1 CH与迭代次数G的关系 Fig. 1 Relation of CH and iteration number G

${c_2} = \left\{\!\!\!\! {\begin{array}{*{20}{l}} {0.7,}\,{{c_1} > 0.7;}\\ {0.3,}\,{{c_1} < 0.3;}\\ {{c_1},}\,{\text{其他}} \end{array}} \right.$ (12)

根据式(11)和图1CH的变化规律可知,当 $G$ 值较小时, ${c_1}$ 值较大,CH的波动振幅 $\dfrac{{c_1^2}}{2}$ 较大,波动中心 ${c_2}$ 处于较大值,故CH值基本处于0.5以上。较大的CH值能够确保高斯变异策略在个体寻优初期的主导地位,发挥该策略对解空间的勘探作用;而较小的CH值维持DE/current-to-best/1变异策略对解空间的开采作用。随着进化代数 $G$ 的增大,种群中的个体与最优个体不断接近,高斯变异策略逐渐从全局搜索转为局部搜索。同时,由于 $G$ 增大导致CH的波动振幅 $\dfrac{{c_1^2}}{2}$ 和波动中心 ${c_2}$ 均减小,CH值整体上呈下降趋势。此时,DE/current-to-best/1变异策略被选中的概率增大,其能够利用当前个体信息维持种群的多样性,从而避免停滞现象的发生。从以上分析可知,CABDE算法利用CH值的波动来适应性地选择变异策略,充分发挥高斯变异策略和DE/current-to-best/1变异策略的搜索优势。因此,CH的变化规律使得本文提出的变异策略的适应性机制既能够对未知搜索区域进行勘探,又能够加快对已知优秀个体邻域的开采,进而提高算法的寻优能力。为保证在进化的每个阶段CABDE算法的两变异策略都能发挥作用,CH值被限定在0.1~0.9之间。

此外,杂交概率在一定程度上会影响算法性能。为提高杂交操作的适应性,本文采用文献[14]的方法控制杂交概率的设置,即:

$C{R_{i,G + 1}} = \left\{\!\!\!\! {\begin{array}{*{20}{l}} {C{R_{i,G}},{\rm{ }}f({{{U}}_{i,G}}) \le f({{{X}}_{i,G}});}\\ {N(0.5,0.1),{\text{其他}}} \end{array}} \right.$ (13)
2.3 算法描述与复杂性分析

CABDE算法的伪代码如下,与基本DE算法比较,主要的差别在于:变异策略的选择(步骤6),对杂交概率的动态更新(步骤17),选择因子 $CH$ 的计算(步骤20)。

算 法  CABDE算法伪代码

1. 输入:种群大小NP、个体维度D

2. 迭代次数G=0,随机初始化种群,初始化CH=0.9;

3. 计算种群中每个个体适应值;

4. while不满足终止条件

5. for i=1 to NP do

6.  根据式(10)产生变异个体 ${{{V}}_{i,G}}$

7.  根据式(6)产生试验个体 ${{{U}}_{i,G}}$

8.  计算试验个体 ${{{U}}_{i,G}}$ 的适应值;

9.  if $f({{{U}}_{i,G}}) \le f({{{X}}_{i,G}})$ then

10.    ${{{X}}_{i,G}} = {{{U}}_{i,G}}$

11.   if $f({{{U}}_{i,G}}) \le f({{{X}}_{{\rm{best}},G}})$ then

12.     ${{{X}}_{{\rm{best}},G}} = {{{U}}_{i,G}}$

13.   end if

14.  else

15.    ${{{X}}_{i,G + 1}} = {{{X}}_{i,G}}$

16.  end if

17.  根据式(13)更新杂交概率;

18. end for

19.   $G = G + 1$

20.  根据式(11)计算余弦适应性因子CH

21. end while

22. 输出:全局最优解。

根据上述算法的描述,可分析出CABDE算法每一代的时间复杂度。CABDE算法与基本DE算法比较:在第6步增加了一个变异策略的选择,时间复杂度为 $O(NP)$ ;在第17步增加了杂交概率的更新,时间复杂度为 $O(NP)$ ;在第20步加入了选择因子CH的计算,时间复杂度为 $O(1)$ 。整个算法每一代的总时间复杂度为 $O(NP \cdot (D + 2) + 1)$ ,即CABDE算法每一代的时间复杂度为 $O(NP \cdot D)$ ,而基本DE算法每一代的时间复杂度也为 $O(NP \cdot D)$ [1]。因此,CABDE算法与基本DE算法的时间复杂度相当。

2.4 算法收敛性分析

贺毅朝等[17]利用随机泛函理论证明了标准DE算法是渐进收敛的,刘会宇等[15]通过相同的方法证明了SMGBDE算法的渐进收敛性。借鉴文献[15,17]的方法可得出CABDE算法是渐进收敛的。

设CABDE算法求解问题的解空间为 $S$ $(\varOmega ,A,$ $P)$ 为概率空间。在每一次进化迭代中,CABDE算法依次执行变异、杂交、选择3个操作。根据随机泛函理论,可对上述3个操作抽象为随机映射运算。

CABDE算法与SMGBDE算法相比都采用了高斯变异策略,但不同之处在于用DE/current-to-best/1变异策略代替了DE/best/1变异策略。由文献[17]可知,DE/current-to-best/1和DE/best/1变异策略属于DE算法的两类进化模式,均具有渐进收敛性。因此,CABDE算法中采用的两种变异策略均具有渐进收敛性,可设CABDE算法的变异算子 ${\varPsi _{\rm m}}(\omega ,{{x}})$ 是解空间上的一种随机映射,满足 ${\varPsi _{\rm m}}:\varOmega \times S \to S$

CABDE算法采用标准DE算法的杂交算子,故满足 ${\varPsi _{\rm c}}:\varOmega \times S \to {S^2}$ ,根据文献[17]可定义为:

$P\left\{ {\omega |{\varPsi _{\rm c}}(\omega ,{{x}}) = \left\langle {{{x}},{{v}}} \right\rangle } \right\} = 1 - {\left( {1 - CR - \frac{1}{d}} \right)^d}$ (14)

同理,CABDE算法采用标准DE算法的选择算子,是解空间上的随机映射,满足 ${\varPsi _{\rm s}}:{S^2} \to S$

$G$ 代种群 $H(G)$ 迭代一次将进行一次映射 $\varPsi $ ,则第 $G + 1$ 代种群 $H(G + 1)$ 可表示为:

$H(G + 1) = \varPsi \left( {\omega ,H(G)} \right) = {\varPsi _{\rm s}}\left( {{\varPsi _{\rm c}}\left( {{\varPsi _{\rm m}}\left( {\omega ,H(G)} \right)} \right)} \right)$ (15)

综上所述,CABDE算法迭代一次形成的映射 $\varPsi $ 是随机压缩算子。结合文献[15,17]可知, $\varPsi $ 具有唯一的随机不动点,故CABDE算法是渐进收敛的。

3 实验结果分析 3.1 测试函数与实验设置

利用18个基准测试函数对CABDE算法的性能进行测试,具体测试函数如表1[18-19]所示。

表1 基准测试函数 Tab. 1 Benchmark functions used in experiments

函数f1f7为单峰问题,函数f8f13为多峰问题,f14f18为偏移函数。对函数f1f13设置算法最大评价次数为200 000,对相对更复杂的偏移函数f14f18设置算法最大评价次数为300 000。

实验中,首先,分析适应性策略和参数动态变化的有效性;其次,CABDE算法与新近的差分进化算法以及其他演化算法进行比较;最后,对CABDE算法的运行时间进行分析。CABDE算法的种群大小为 $NP = 100$ ,其他对比算法的参数按它们的原文献设置。

3.2 适应性策略的有效性分析

CABDE算法的适应性变异策略融合了高斯变异策略和DE/current-to-best/1变异策略。为检验CABDE算法的策略有效性,构建CABDE算法的两个变体,即CABDE–1算法和CABDE–2算法。将CABDE算法与CABDE–1算法、CABDE–2算法、DE–best算法、DE–rand算法进行比较。其中:CABDE–1算法只执行高斯变异策略;CABDE–2算法只执行DE/current-to-best/1变异策略;DE–best算法和DE–rand算法是分别执行DE/best/1变异策略和DE/rand/1变异策略的基本DE算法,代表了两种最普遍的传统DE算法。

表2是各算法对每个测试函数独立运行30次得到的均值误差及标准差,并运用显著性水平为0.05的Wilcoxon秩和检验[2021]对比算法性能。分析表2可知,CABDE算法整体上优于其他4个对比算法。这是因为CABDE算法的局部搜索能力比CABDE–1算法和DE–rand算法更强,且其全局搜索能力强于 CABDE–2算法和DE–best算法,所以在处理多峰问题或复杂优化问题时,CABDE算法能够获得更好的求解精度。虽然在单峰函数上DE–best算法优于CABDE算法,但是在多峰函数上CABDE算法优于DE–best算法,体现出CABDE算法较强的寻优能力。4个对比算法在进化的同一阶段搜索能力相对单一,难以在寻优过程中满足局部搜索和全局搜索的相互协作。CABDE算法综合了CABDE–1算法和CABDE–2算法的优点,通过余弦适应性选择因子CH对进化过程中产生变异个体的变异策略进行了选择。因此,在相同的评价次数下CABDE算法能更快地达到较高的解精度,提高了收敛速度。CABDE算法考虑了策略的适应性,提高了变异策略与进化阶段的契合度。所以,适应性变异策略能够提高算法性能。

表2 CABDE与CABDE–1、CABDE–2、DE–rand、DE–best算法的实验对比结果 Tab. 2 Results of CABDE–1, CABDE–2, DE–rand, DE–best and CABDE algorithms

3.3 参数c1动态变化的有效性

在CABDE算法中,余弦适应性因子CH随自变量 ${c_1}$ 变化而变化。当迭代次数 $G$ 增大时, ${c_1}$ 减小,导致振幅 $\dfrac{{{c^2_1}}}{2}$ 减小,波动中心 ${c_2}$ 逐渐减小,进而影响CH的变化。为检验 ${c_1}$ 动态变化的有效性,将CABDE算法与其固定不同 ${c_1}$ 值时进行比较。

表3给出了固定 ${c_1}$ 值为0.1、0.3、0.5、0.7、0.9时的实验结果。由表3可知,在18个测试函数上CABDE算法的结果比固定 ${c_1}$ 值的结果更好。由分析可知,固定 ${c_1}$ 值时算法适应性效果差。不同的是,CABDE算法通过动态调整 ${c_1}$ 值改变余弦适应性选择因子,进而引导算法选择合适的变异策略,提高算法的搜索效率。这验证了 ${c_1}$ 动态变化的有效性。

表3 CABDE算法中c1值对算法效果的影响实验结果 Tab. 3 Impact of different c1 values on CABDE algorithm

3.4 CABDE算法与骨架差分进化算法比较

为验证CABDE算法的性能,将CABDE算法与4个骨架差分进化算法BBDE算法[11]、GBDE算法[13]、MGBDE算法[13]、tBBDE算法[14]进行比较,表4给出了其对比结果。

表4 CABDE算法与BBDE、GBDE、MGBDE、tBBDE算法性能比较 Tab. 4 Results of BBDE, GBDE, MGBDE, tBBDE and CABDE algorithms

表4可知,CABDE算法整体上优于其他算法。CABDE算法分别在10、12、10、9个函数上优于BBDE算法、GBDE算法、MGBDE算法、tBBDE算法,在6、1、4、5个函数上次于BBDE算法、GBDE算法、MGBDE算法、tBBDE算法。具体地,在单峰函数上CABDE算法显著优于GBDE算法;在大多数多峰函数和偏移函数上CABDE算法相比于对比算法均获得更好或相似的结果。这是由于CABDE算法引入的余弦适应性因子CH波动性变化,能够调整算法在不同进化阶段中的局部搜索能力和全局搜索能力。此外,相比于其他对比算法中采用的DE/best/1变异策略,CABDE算法采用的DE/current-to-best/1策略具有更强的勘探能力,能够减小陷入局部最优的概率,加快收敛速度。

为比较CABDE算法与这4个新近骨架类算法的收敛速度,图2给出了这5种算法在部分测试函数上的动态收敛情况。由图2可知:在大部分的测试函数上CABDE算法收敛速度较快。在单峰函数上,CABDE算法收敛速度优于或相似于其他对比算法。在多峰函数f8f9上CABDE算法能够在整个进化过程中保持较快的收敛速度。在偏移函数f14f16上CABDE算法保持了较快的收敛速度。在大部分测试问题上CABDE算法的求解精度和收敛速度均得到了较大的提高,寻优性能显著。

图2 CABDE算法与骨架DE算法比较收敛图 Fig. 2 Convergence of CABDE and bare-bones DE algorithms

3.5 CABDE算法与DE算法变体比较

为了进一步验证CABDE算法的性能,将CABDE算法与4个DE算法变体ODE算法[7]、OXDE算法[8]、ADE算法[6]、SMGBDE算法[15]进行比较,结果如表5所示。

表5 CABDE算法与ADE、ODE、OXDE、SMGBDE算法的性能比较 Tab. 5 Result of ADE, ODE, OXDE, SMGBDE and CABDE algorithms

表5可知:CABDE算法整体上优于ADE算法、ODE算法、OXDE算法和SMGBDE算法。在18个测试函数中,CABDE算法分别在17、7、9、11个函数上比ADE算法、ODE算法、OXDE算法、SMGBDE算法获得了更高的解精度。在相同评价次数下,算法获得的解精度越高,则一定程度上表明收敛速度越快。由统计结果可知,CABDE算法与ADE算法相比具有较大优势;虽然ADE算法对控制参数进行了适应性改进,但是所采用的DE/rand/1变异策略对最优解邻域的开采能力不足,使得收敛速度慢;CABDE算法融合的高斯变异策略和DE/current-to-best/1变异策略均利用了当前最优个体 ${{ X}_{{\rm{best}},G}}$ ,能够加快对较优个体邻域的开采,加快收敛速度。CABDE算法在多数单峰函数上明显优于OXDE算法;OXDE算法的变异策略从当前种群中随机选择基向量和差分向量,虽勘探能力强,但开采能力较弱。CABDE算法在多峰函数和偏移函数上性能优于SMGBDE算法;相比于SMGBDE算法采用的变异策略选择因子,CABDE算法采用的余弦适应性因子能够动态选择变异策略,更有效地改进变异策略的适应性,从而加快收敛速度。

3.6 CABDE算法与粒子群算法变体比较

将CABDE算法与4个粒子群优化算法PSO算法[3]、CLPSO算法[22]、MBBPSO算法[12]、EPSO算法[23]进行比较,结果如表6所示。其中,PSO算法是基本的粒子群优化算法,CLPSO算法综合利用种群中粒子的历史最佳信息来更新粒子的速度,MBBPSO算法引入了高斯变异策略,EPSO算法集成了多个不同粒子群优化算法。

表6 CABDE算法与PSO、CLPSO、MBBPSO、EPSO算法的性能比较 Tab. 6 Performance comparison of CABDE algorithm with PSO, CLPSO, MBBPSO and EPSO

表6可知:CABDE算法整体上明显优于对比算法。具体地,在单峰函数和多峰函数上CABDE算法的寻优能力显著优于PSO算法;在多数偏移函数上CABDE算法的搜索能力也比PSO 算法更强;在单峰函数和多峰函数上CABDE算法比CLPSO算法、MBBPSO算法、EPSO算法更优。分析可知,CABDE算法与粒子群优化算法相比,寻优性能具有较大的优势。

3.7 CABDE算法与新近人工蜂群算法比较

将CABDE算法与ABC算法[4]、DFSABC算法[4]、GRABC算法[24]、GRqABC算法[24] 等人工蜂群算法进行比较。其中,ABC算法是基本人工蜂群算法,DFSABC算法引入了深度优先搜索机制,GRABC算法引入了基因重组算子,GRqABC算法是引入模拟观察峰行为的快速人工蜂群算法。表7给出了该实验结果,其中,ABC算法、DFSABC算法、GRABC算法、GRqABC算法的实验数据来自文献[4,24],在该实验中CABDE算法的最大评价次数和测试函数维数与文献[4,24]相同,即最大评价次数为150 000,维数为30维。表7实验结果表明,CABDE算法在多数单峰函数和多峰函数上的寻优性能优于对比的新近人工蜂群算法。

表7 CABDE算法与人工蜂群算法变体的性能比较 Tab. 7 Performance comparison between CABDE algorithm and ABC algorithm variants

3.8 算法运行时间分析

为了分析CABDE算法的运行时间,将基本DE算法(DE–rand)与CABDE算法的运行时间进行比较。两算法终止条件设置为解精度达到各测试函数设定精度或适应值评价次数达到最大评价次数。实验结果如表8所示。其中:DE–rand代表基本DE算法; $ F_{\rm ES} $ 表示适应值评价次数; ${V_{{\rm{TR}}}}$ 表示各测试函数的设定精度; $F^{\rm max}_{\rm ES}$ 为最大评价次数; $ {{\overline{F}_{\rm ES}}} $ 为运行30次算法解精度达到设定精度时适应值评价次数的均值; $\bar t$ 为运行算法需要的CPU平均消耗时间,单位s。实验在Pentium(R)Dual-Core CPU:E5200、2 GB内存、2.50GHz主频的计算机上运行,程序在MATLAB R2014a软件中实现。

表8 算法成功收敛时的 $ F_{\bf ES} $ 值统计及运行时间分析 Tab. 8 $ F_{\bf ES} $ statistics and running time analysis for successful convergence of the algorithms

表8可知:在18个测试函数上,CABDE算法整体上比DE–rand算法降低了运行时间,能更快达到设定精度。在大多数函数上CABDE算法的运行时间比DE–rand算法降低了大约一半。在函数f3f8f9f15上基本DE算法的解精度依旧达不到设定精度,而CABDE算法在相同的最大评价次数里成功收敛到设定精度,提高了收敛速度。在函数f2f16上CABDE算法比基本DE算法的运行时间分别增加了7.548、17.428 s。这是因为CABDE算法的时间复杂度存在低阶常量,所以少数函数运行时间略高于基本DE算法的运行时间。这验证了CABDE算法的时间复杂度理论。

4 结 论

本文针对传统差分进化算法存在的不足,提出了一种余弦适应性骨架差分进化(CABDE)算法。该算法引入余弦适应性机制来融合高斯变异策略和DE/current-to-best/1变异策略。通过提高变异策略的适应性来实现两变异策略的优势互补,从而平衡算法的勘探能力和开采能力。同时,采用的高斯变异策略和DE/current-to-best/1变异策略充分利用了当前最优个体信息,加快了收敛速度。实验结果表明了CABDE算法在求解精度和收敛速度上均有较大的优势,是一种性能较优的优化算法。后续可利用种群中多种个体信息改进高斯变异策略,提高变异策略的适应性,从而提高算法性能。

参考文献
[1]
Storn R,Price K. Differential evolution—A simple and efficient heuristic for global optimization over continuous spaces[J]. Journal of Global Optimization, 1997, 11(4): 341-359. DOI:10.1023/a:1008202821328
[2]
Wang Shihao,Yang Hongyu,Li Yuzhen,et al. Multi-runways independent approach scheduling using self-adaptive differential evolution algorithm with elite archive[J]. Advanced Engineering Sciences, 2017, 49(3): 153-161. [王世豪,杨红雨,李玉贞,等. 基于精英存档自适应微分进化算法的多跑道独立进近排序[J]. 工程科学与技术, 2017, 49(3): 153-161. DOI:10.15961/j.jsuese.201600468]
[3]
Liu Yun,Liu Quanxing,Yin Ming,et al. Dynamic feature optimization of dry gas seal based on particle swarm optimization and projection pursuit[J]. Advanced Engineering Sciences, 2019, 51(1): 248-255. [刘蕴,刘全兴,殷鸣,等. 基于粒子群算法和投影追踪分析的干气密封动态特性优化[J]. 工程科学与技术, 2019, 51(1): 248-255. DOI:10.15961/j.jsuese.201700926]
[4]
Cui Laizhong,Li Genghui,Lin Qiuzhen,et al. A novel artificial bee colony algorithm with depth-first search framework and elite-guided search equation[J]. Information Sciences, 2016, 367/368: 1012-1044. DOI:10.1016/j.ins.2016.07.022
[5]
Fan Qinqin,Wang Weili,Yan Xuefeng. Differential evolution algorithm with strategy adaptation and knowledge-based control parameters[J]. Artificial Intelligence Review, 2019, 51(2): 219-253. DOI:10.1007/s10462-017-9562-6
[6]
Chen Hua,Fan Yiren,Deng Shaogui. Adaptive differential evolution algorithm based on logistic model[J]. Control and Decision, 2011, 26(7): 1105-1108. [陈华,范宜仁,邓少贵. 基于logistic模型的自适应差分进化算法[J]. 控制与决策, 2011, 26(7): 1105-1108. DOI:10.13195/j.cd.2011.07.147.chenh.029]]
[7]
Rahnamayan S,Tizhoosh H R,Salama M M A. Opposition-based differential evolution[J]. IEEE Transactions on Evolutionary Computation, 2008, 12(1): 64-79. DOI:10.1109/tevc.2007.894200
[8]
Wang Yong,Cai Zixing,Zhang Qingfu. Enhancing the search ability of differential evolution through orthogonal crossover[J]. Information Sciences, 2012, 185(1): 153-177. DOI:10.1016/j.ins.2011.09.001
[9]
Tang Lixin,Dong Yun,Liu Jiyin. Differential evolution with an individual-dependent mechanism[J]. IEEE Transactions on Evolutionary Computation, 2015, 19(4): 560-574. DOI:10.1109/tevc.2014.2360890
[10]
Wang Shihao,Li Yuzhen,Yang Hongyu. Self-adaptive differential evolution algorithm with improved mutation mode[J]. Applied Intelligence, 2017, 47(3): 644-658. DOI:10.1007/s10489-017-0914-3
[11]
Omran M G H,Engelbrecht A P,Salman A. Bare bones differential evolution[J]. European Journal of Operational Research, 2009, 196(1): 128-139. DOI:10.1016/j.ejor.2008.02.035
[12]
Kennedy J.Bare bones particle swarms[C]//Proceedings of the 2003 IEEE Swarm Intelligence Symposium (SIS’03).Indianapolis:IEEE,2003:80–87.
[13]
Wang Hui,Rahnamayan S,Sun Hui,et al. Gaussian bare-bones differential evolution[J]. IEEE Transactions on Cybernetics, 2013, 43(2): 634-647. DOI:10.1109/tsmcb.2012.2213808
[14]
Peng Hu,Wu Zhijian,Zhou Xinyu,et al. Bare-bones differential evolution algorithm based on trigonometry[J]. Journal of Computer Research and Development, 2015, 52(12): 2776-2788. [彭虎,吴志健,周新宇,等. 基于三角的骨架差分进化算法[J]. 计算机研究与发展, 2015, 52(12): 2776-2788. DOI:10.7544/issn1000-1239.2015.20140230]
[15]
Liu Huiyu,Han Jihong,Yuan Liu,et al. Self-adaptive bare-bones differential evolution based on bi-mutation strategy[J]. Journal on Communications, 2017, 38(8): 201-212. [刘会宇,韩继红,袁霖,等. 基于双变异策略的自适应骨架差分进化算法[J]. 通信学报, 2017, 38(8): 201-212. DOI:10.11959/j.issn.1000-436x.2017051]
[16]
Duan Meijun,Yang Hongyu,Liu Hong,et al. Differential evolution algorithm based on sharing learning[J]. Advanced Engineering Sciences, 2019, 51(1): 205-212. [段美军,杨红雨,刘洪,等. 基于共享学习策略的微分进化算法[J]. 工程科学与技术, 2019, 51(1): 205-212. DOI:10.15961/j.jsuese.201800273]
[17]
He Yichao,Wang Xizhao,Liu Kunqi,et al. Convergent analysis and algorithmic improvement of differential evolution[J]. Journal of Software, 2010, 21(5): 875-885. [贺毅朝,王熙照,刘坤起,等. 差分演化的收敛性分析与算法改进[J]. 软件学报, 2010, 21(5): 875-885. DOI:10.3724/SP.J.1001.2010.03486]
[18]
Yao Xin,Liu Yong,Lin Guangming. Evolutionary programming made faster[J]. IEEE Transactions on Evolutionary Computation, 1999, 3(2): 82-102. DOI:10.1109/4235.771163
[19]
Suganthan P N,Hansen N,Liang J J,et al.Problem definitions and evaluation criteria for the CEC 2005 special session on real-parameter optimization[R].Singapore:Nanyang Technological University,2005.
[20]
Wilcoxon F.Individual comparisons by ranking methods[M]//Breakthroughs in Statistics.New York:Springer,1992:196–202.
[21]
Derrac J,García S,Molina D,et al. A practical tutorial on the use of nonparametric statistical tests as a methodology for comparing evolutionary and swarm intelligence algorithms[J]. Swarm and Evolutionary Computation, 2011, 1(1): 3-18. DOI:10.1016/j.swevo.2011.02.002
[22]
Liang J J,Qin A K,Suganthan P N,et al. Comprehensive learning particle swarm optimizer for global optimization of multimodal functions[J]. IEEE Transactions on Evolutionary Computation, 2006, 10(3): 281-295. DOI:10.1109/tevc.2005.857610
[23]
Lynn N,Suganthan P N. Ensemble particle swarm optimizer[J]. Applied Soft Computing, 2017, 55: 533-548. DOI:10.1016/j.asoc.2017.02.007
[24]
Li Genghui,Cui Laizhong,Fu Xianghua,et al. Artificial bee colony algorithm with gene recombination for numerical function optimization[J]. Applied Soft Computing, 2017, 52: 146-159. DOI:10.1016/j.asoc.2016.12.017