«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (4): 84-91, 99  DOI: 10.19678/j.issn.1000-3428.0057567
0

引用本文  

刘树强, 秦进. 一种求解动态优化问题的改进自适应差分进化算法[J]. 计算机工程, 2021, 47(4), 84-91, 99. DOI: 10.19678/j.issn.1000-3428.0057567.
LIU Shuqiang, QIN Jin. An Improved Self-Adaptive Differential Evolution Algorithm for Solving Dynamic Optimization Problem[J]. Computer Engineering, 2021, 47(4), 84-91, 99. DOI: 10.19678/j.issn.1000-3428.0057567.

基金项目

国家自然科学基金(61562009)

作者简介

刘树强(1994-), 男, 硕士研究生, 主研方向为智能计算、机器学习; 秦进, 副教授、博士

文章历史

收稿日期:2020-03-03
修回日期:2020-04-13
一种求解动态优化问题的改进自适应差分进化算法
刘树强 , 秦进     
贵州大学 计算机科学与技术学院, 贵阳 550025
摘要:针对原始动态自适应差分进化(SADE)算法局部搜索能力弱和寻优精度低的问题,提出一种求解动态优化问题的邻域搜索差分进化(NSDE)算法。通过引入邻域搜索机制,在划分种群最优个体的邻域空间范围内产生候选解,选取候选解集合中的最优解并对种群最优个体进行迭代,增强算法局部搜索能力。在传统基于距离的排斥方案中,引入hill-valley函数追踪邻近峰,提高算法寻优精度。实验结果表明,与SADE、人工免疫网络动态优化、多种群竞争差分进化和改进差分进化算法相比,NSDE算法在49个测试问题中分别有28、38、29和38个测试问题的平均误差更小,综合性能表现更好。
关键词自适应差分进化    动态优化问题    邻域搜索    排斥方案    平均误差    
An Improved Self-Adaptive Differential Evolution Algorithm for Solving Dynamic Optimization Problem
LIU Shuqiang , QIN Jin     
College of Computer Science and Technology, Guizhou University, Guiyang 550025, China
Abstract: To address the weak local search ability and low optimization accuracy of the original dynamic Self-Adaptive Differential Evolution(SADE) algorithm, this paper proposes a Neighborhood Search Differential Evolution(NSDE) algorithm for solving Dynamic Optimization Problem(DOP).By introducing the neighborhood search mechanism, the neighborhood space of the best individual of the population is divided properly, and a set of candidate solutions are generated within the divided space.The optimal solution in this set is selected to iterate the best individual of the population, which enhances the local search ability of the algorithm.At the same time, the hill-valley function is introduced into the traditional distance-based exclusion scheme to track the adjacent peaks to improve the optimization accuracy of the algorithm.Experimental results show that in terms of the average error, NSDE algorithm outperforms the original dynamic SADE on 28 test problems(49 test problems in total), Dynamic Optimization of Artificial Immune Network(dopt-aiNet) on 38 problems, Differential Evolution with Competitive Strategy Based on Multi-Population(DECS) on 29 problems, and Modified Differential Evolution(MDE) on 38 problems, which demonstrates the NSDE algorithm has better overall performance.
Key words: Self-Adaptive Differential Evolution(SADE)    Dynamic Optimization Problem(DOP)    neighborhood search    exclusion scheme    average error    
0 概述

在现实生活中很多优化问题均具有动态变化特性[1],例如在调度问题中,随着新任务的到达,机器可能随时发生故障,原材料质量也会随时间产生变化,而静态优化方法无法有效解决上述问题,因此动态优化方法应运而生[2]。当前研究通常将动态优化问题(Dynamic Optimization Problem,DOP)视为一系列静态优化问题(Static Optimization Problem,SOP)的组合,由于目标函数随时改变,因此会导致最优解位置和搜索空间特征的不断变化[3],而解决动态优化问题的关键是控制解的多样性[4]。传统演化算法在解决静态优化问题方面取得了较好的效果,但不能很好地解决动态优化问题,因为其在运行一段时间后会收敛到固定值,失去探索区域所需的多样性,导致不能跟踪到新环境下已变化的最优解[5]。在动态优化问题中,对不断变化的最优解的快速追踪与找到最优解本身同等重要[6],这就要求动态优化问题的求解方法同时具备快速收敛和保持多样性的能力。国内外许多研究人员对传统演化算法进行了相关改进,使其能够更好地解决动态优化问题。在过去十几年中,研究人员提出了许多求解动态优化问题的算法及提升算法性能的策略[7]

差分进化算法与多数演化算法相比,实现过程更简单和直观,具备良好的全局搜索能力,适用于处理大规模问题[8]。差分进化算法不仅在求解静态问题方面表现出较好的性能,而且被证明可用于解决动态优化问题[9]。自适应差分进化(Self-Adaptive Differential Evolution,SADE)是差分进化的分支,通过适应性地改变算法参数值有效处理动态优化问题[10]。文献[11]在动态自适应差分进化算法中引入种群竞争机制。文献[12]认为动态环境下的自适应分为元启发级别、DOP机制级别以及两者组合3个主要的应用级别。文献[13]提出一种动态环境下的自适应差分进化算法,不仅使用自适应控制机制改变其中的控制参数,而且采用带老化机制的多种群方法处理停滞问题,并利用存档的个体重新初始化得到新个体。文献[14]提出一种改进的动态自适应差分进化算法DDEBQ,该算法使用布朗个体和自适应量子个体与差分进化个体共同维持种群的多样性和探索能力,还利用邻域驱动的双变异策略控制摄动以防止过快收敛,并通过排斥规则将子种群分布到更大的搜索空间以加强最优值追踪能力,同时使用老化机制防止算法陷入局部最优。

求解动态优化问题的进化算法需要探索与开发之间的平衡,探索对应算法的全局搜索能力,开发对应算法的局部搜索能力。进化算法既不能陷于局部最优,过分开发某一局部区域,丧失探索其他区域的能力,也不能一直在探索其他区域而不收敛或过慢收敛,忽视开发某一局部区域。差分进化算法是全局搜索能力较好的进化算法,但在演化后期通常收敛慢,局部搜索能力有待提升。自适应差分进化算法虽然通过算子的适应性变化提高了寻优精度,但是参数值的变化仍不能为种群提供足够的多样性。本文提出一种邻域搜索差分进化(Neighborhood Search Differential Evolution,NSDE)算法,运用邻域搜索机制增强差分进化算法中每个子种群的局部搜索能力,在传统基于距离的排斥方案基础上引入hill-valley函数追踪邻近峰以提高寻优精度。

1 邻域搜索差分进化算法 1.1 动态自适应差分进化算法

SADE使用rand/1/bin策略的自适应控制机制,在算法运行过程中改变控制参数F和CR,而种群规模NP在演化过程中保持不变。自适应控制参数$ {F}_{i}^{G+1} $$ \mathrm{C}{\mathrm{R}}_{i}^{G+1} $的计算公式如下:

$ {F}_{i}^{G+1}=\left\{\begin{array}{l}{F}_{l}+\mathrm{r}\mathrm{a}\mathrm{n}{\mathrm{d}}_{1}\cdot {F}_{u}, \mathrm{r}\mathrm{a}\mathrm{n}{\mathrm{d}}_{2}<{\tau }_{1}\\ {F}_{i}^{G}, \mathrm{其}\mathrm{他}\end{array}\right. $
$ \mathrm{C}{\mathrm{R}}_{i}^{G+1}=\left\{\begin{array}{l}\mathrm{r}\mathrm{a}\mathrm{n}{\mathrm{d}}_{3}, \mathrm{r}\mathrm{a}\mathrm{n}{\mathrm{d}}_{4}<{\tau }_{2}\\ \mathrm{C}{\mathrm{R}}_{i}^{G}, \mathrm{其}\mathrm{他}\end{array}\right. $

其中:$ \mathrm{r}\mathrm{a}\mathrm{n}{\mathrm{d}}_{j}, j\in \{\mathrm{1, 2}, \mathrm{3, 4}\} $表示取值为[0, 1]的均匀随机数;$ {\tau }_{1} $$ {\tau }_{2} $分别为控制参数F和CR的调整概率;$ {\tau }_{1} $$ {\tau }_{2} $$ {F}_{l} $$ {F}_{u} $分别取固定值0.1、0.1、0.1、0.9;F取值为[0.1,1.0]的随机数;CR取值为[0, 1]的随机数;$ {F}_{i}^{G+1} $$ \mathrm{C}{\mathrm{R}}_{i}^{G+1} $通常在变异前计算得到,从而影响新向量$ {\mathit{\boldsymbol x}}_{\mathit{\boldsymbol i}}^{\mathit{\boldsymbol G}+1} $的变异、交叉和选择。

在原始动态SADE算法[13]中,老化机制的第i个个体的老化算法以及改进和老化算法如算法1和算法2所示,利用存档的个体重新初始化算法如算法3所示,其中,subSize是子种群大小,ARC是关于个体的存档,arcNum是存档大小,mRand()是产生随机数的函数,age是个体年龄。

算法1  第i个个体的老化算法

1.if第i个个体是全局最优个体then不使用老化

2.else if第i个个体是局部最优个体(子种群中的最优个体)

and age > 30 and mRand() < 0.1 then

3.重新初始化包含第i个个体的子种群

4.else if age > 25 and mRand() < 0.1 then

5.重新初始化第i个个体

算法2  改进和老化算法

1.if Distance(x,y) < 0.01 or |x.fitness-y.fitness| < 0.1 then

2.age=min{age,20}

3.else

4.age=min{age,5}

算法3  重新初始化算法

1.if mRand() < 0.5 and i < subSize and arcNum > 0 and i < arcNum then

2.产生取值为[0,arcNum]的随机数t

3.y=ARC[t]

4.$ \mathrm{w}=\frac{0.1}{1+\left(\mathrm{i} \; \mathrm{ }\mathrm{ }\mathrm{m}\mathrm{o}\mathrm{d}\mathrm{ }\mathrm{ } \; \mathrm{s}\mathrm{u}\mathrm{b}\mathrm{S}\mathrm{i}\mathrm{z}\mathrm{e}\right)} $

5.if(i mod 2)==1 then

6.y = y +w×N(0,1)

7.else

8.y = y +w×U(-0.5,0.5)

9.end if

10.else

11.随机产生y

12.end if

原始动态SADE算法的具体内容详见文献[13],本文在原始动态SADE算法的基础上提出NSDE算法(如算法4所示),主要改进为邻域搜索和排斥算法。

算法4  NSDE算法

1.初始化算法参数

2.随机初始化并评估所有的子种群

3.while不满足终止条件do

4.for子种群i do

5.for个体j do

6.产生新的F值和CR值

7.个体j的老化(算法1)

8.变异

9.交叉

10.排斥(算法6)

11.选择

12.改进和老化(算法2)

13.个体j的age加1

14.end

15.得到当前子种群i的最优个体x

16.邻域搜索(算法5)

17.end

18.end

1.2 邻域搜索机制

种群最优个体邻域范围内的解会有较高的可能性靠近最优值点,该可能性随着维度的增加而增加。本文提出一种种群最优个体的邻域解生成方式,首先利用自适应差分进化算法产生初步的种群最优个体,然后对种群最优个体的邻域空间进行适当划分,分别在不同范围内产生候选解,构成候选解集合,最后选取集合中的最优解,对种群最优个体进行迭代,以期逼近最优值点。

组成动态优化问题的静态优化问题可表示为:

$ \mathrm{m}\mathrm{i}\mathrm{n}f\left(\mathit{\boldsymbol X}\right)\mathrm{ }, \mathrm{ }\mathrm{s}.\mathrm{t}.\mathit{\boldsymbol L}\le \mathit{\boldsymbol X}\le \mathit{\boldsymbol U} $ (1)

其中,XLU均为n维向量,$ \mathit{\boldsymbol X}=({x}_{1}, {x}_{2}, \cdots , {x}_{n}) $$ \mathit{\boldsymbol L}=(l, l, \cdots , l) $$ \mathit{\boldsymbol U}=(u, u, \cdots , u) $X各分变量的取值均为[lu]。

NSDE算法利用矩形定义点的邻域,通过同心超矩形划分当前解分量$ {x}_{j}(j=\mathrm{1, 2}, \cdots , n) $的邻域空间[15],如图 1所示,假设分成k个空间,按式(2)划分每个空间大小:

$ \begin{array}{l}{R}_{i}(x, \mathrm{ }{r}_{i-1}\mathrm{ }, \mathrm{ }{r}_{i})=\left\{x^{\prime}\mathrm{ }\right|\mathrm{ }{r}_{i-1, \mathrm{ }j}\le |\mathrm{ }{x}_{j}^{\mathrm{^{\prime}}}-{x}_{j}\mathrm{ }|<{r}_{i, \mathrm{ }j}\}\\ l<{x}_{j}^{\mathrm{^{\prime}}}<u\mathrm{ }, \mathrm{ }j=\mathrm{1, 2}, \cdots , n, \mathrm{ }i=\mathrm{1, 2}, \cdots , k\\ {r}_{i}={r}_{i-1}\times 2, \mathrm{ }i=\mathrm{1, 2}, \cdots , k\end{array} $ (2)
Download:
图 1 邻域空间划分 Fig. 1 Division of neighborhood space

其中:

$ \begin{array}{l}{R}_{0}(x, \mathrm{ }{r}_{0})=\left\{x^{\prime}\mathrm{ }\right|\mathrm{ }|\mathrm{ }{x}_{j}^{\mathrm{^{\prime}}}-{x}_{j}\mathrm{ }|<{r}_{0}\}\\ l<{x}_{j}^{\mathrm{^{\prime}}}<u, \mathrm{ }\mathrm{ }j=\mathrm{1, 2}, \cdots , \mathrm{ }n\end{array} $ (3)

Rii=1,2,…,k)的每个同心矩形内随机选取1个点,这k个点构成当前解分量xj的候选值集合$ \{x{^{\prime}}_{1}, x{^{\prime}}_{2}, \cdots , x{^{\prime}}_{k}\} $(如算法5所示),整个候选解的产生如图 2所示,其中,MaxIter是迭代次数,mRand()是产生随机数的函数,candiNum是邻域候选解个数,r是邻域半径r0x是某个子种群中的最优个体,xix的第i维的值,candiSol$ \mathrm{^{\prime}} $是得到的候选解集合,BestSol是候选解集合中的最优解。

Download:
图 2 候选解的产生 Fig. 2 Generation of candidate solutions

算法5  邻域搜索算法

1.iter←0

2.while iter < MaxIter do

3.seed=mRand()

4.for i←1 to D do

5.for j←1 to candiNum do

6.if seed < 0.5 then

7.candiSol(i,j)=r×2j-1+xi+mRand()×r×2j-1

8.else

9.candiSol(i,j)=xi-r×2j+mRand()×r×2j-1

10.end

11.end

12.end

13.将candiSol视为矩阵进行转置,得到candiSol$ \mathrm{^{\prime}} $

14.$ \mathrm{B}\mathrm{e}\mathrm{s}\mathrm{t}\mathrm{S}\mathrm{o}\mathrm{l}=\left\{\begin{array}{l}\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}{\mathrm{x}}_{\mathrm{c}\mathrm{a}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{S}\mathrm{o}\mathrm{l}\mathrm{^{\prime}}(\mathrm{i}, \mathrm{j})}\left(\mathrm{c}\mathrm{a}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{S}\mathrm{o}\mathrm{l}\mathrm{^{\prime}}\right(\mathrm{i}, \mathrm{j}).\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}), \\ \mathrm{i}\in [1, \mathrm{c}\mathrm{a}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{N}\mathrm{u}\mathrm{m}], \mathrm{ }\mathrm{j}\in [1, \mathrm{D}], \mathrm{ }\mathrm{F}1\\ \mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{i}{\mathrm{n}}_{\mathrm{c}\mathrm{a}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{S}\mathrm{o}\mathrm{l}\mathrm{^{\prime}}(\mathrm{i}, \mathrm{j})}\left(\mathrm{c}\mathrm{a}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{S}\mathrm{o}\mathrm{l}\mathrm{^{\prime}}\right(\mathrm{i}, \mathrm{j}).\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}), \\ \mathrm{i}\in [1, \mathrm{c}\mathrm{a}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{N}\mathrm{u}\mathrm{m}], \mathrm{ }\mathrm{j}\in [1, \mathrm{D}], \mathrm{ }\mathrm{F}2 \sim \mathrm{F}6\end{array}\right. $

15.$ \mathrm{x}=\left\{\begin{array}{l}\mathrm{B}\mathrm{e}\mathrm{s}\mathrm{t}\mathrm{S}\mathrm{o}\mathrm{l}, \mathrm{F}1\mathrm{下}\mathrm{B}\mathrm{e}\mathrm{s}\mathrm{t}\mathrm{S}\mathrm{o}\mathrm{l}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}>\mathrm{x}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}, \\ \mathrm{F}2 \sim \mathrm{F}6\mathrm{下}\mathrm{B}\mathrm{e}\mathrm{s}\mathrm{t}\mathrm{S}\mathrm{o}\mathrm{l}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}<\mathrm{x}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}\\ \mathrm{x}, \mathrm{其}\mathrm{他}\end{array}\right. $

16.iter←iter+1

17.end

1.3 排斥方案

排斥方案的关键为将每个子种群维持在适应度(fitness)范围内的不同峰上,子种群可以由其中的最优个体代表。每个子种群实施一种排斥方案,如果与其他子种群在同一个峰上,那么较好的子种群保持不变并重新初始化较坏的子种群。文献[16]提出一种基于距离的排斥方案,该方案假设所有的峰均匀分布在整个搜索空间中,如果两个子种群间的距离小于阈值$ {r}_{\mathrm{e}\mathrm{x}\mathrm{c}\mathrm{l}}=A/2{m}^{\frac{1}{n}} $,那么较坏的子种群被重新初始化,其中,n是维数,A是解的范围,m是峰数。

基于距离的排斥方案中的两个峰可能很接近,以至于它们之间的距离比排斥方案的阈值还小,在此情况下很难同时找到这两个峰。本文在基于距离的排斥方案的基础上增添一个hill-valley函数[9],如图 3所示。当满足基于距离的排斥方案条件时,判断是否存在满足fz) < min{fx),fy)},如果不满足,则最终进行排斥操作(如算法6所示),其中,xy分别是两个子种群中的最优个体,$ \mathit{\boldsymbol z}=c\cdot \mathit{\boldsymbol x}+(1-c)\cdot \mathit{\boldsymbol y}, \boldsymbol c\in \left\{\mathrm{0.05, 0.50, 0.95}\right\} $

Download:
图 3 基于hill-valley函数的排斥方案 Fig. 3 Exclusion scheme based on hill-valley function

算法6  排斥算法

1.z1=0.05×x+(1-0.05)×y

2.z2=0.5×x+(1-0.5)×y

3.z3=0.95×x+(1-0.95)×y

4.if Distance(x,y) < rexcl and $ \mathrm{m}\mathrm{i}\mathrm{n}\{{\mathrm{z}}_{1}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}, {\mathrm{z}}_{2}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}, {\mathrm{z}}_{3}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}\}\ge \mathrm{m}\mathrm{i}\mathrm{n} $ $ \{\mathrm{x}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}, \mathrm{y}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}\} $ then

5.$ \mathrm{r}=\left\{\begin{array}{l}\mathrm{x}, \mathrm{F}1\mathrm{下}\mathrm{x}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}<\mathrm{y}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}, \mathrm{ }\mathrm{F}2~\mathrm{F}6\mathrm{下}\mathrm{y}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}<\mathrm{x}.\mathrm{f}\mathrm{i}\mathrm{t}\mathrm{n}\mathrm{e}\mathrm{s}\mathrm{s}\\ \mathrm{y}, \mathrm{其}\mathrm{他}\end{array}\right. $

6.重新初始化包含r的子种群(算法3)

7.end

2 实验与结果分析 2.1 对比算法

在求解动态优化问题的演化算法中,本文采用人工免疫网络动态优化(Dynamic Optimization of Artificial Immune Network,dopt-aiNet)算法[17]、原始动态SADE算法(简称SADE)[13]、多种群竞争差分进化(Differential Evolution with Competitive Strategy Based on Multi-Population,DECS)算法[18]和改进差分进化(Modified Differential Evolution,MDE)算法[19]与NSDE算法进行对比,具体为:1)dopt-aiNet算法对opt-aiNet算法[20]进行扩展,增加了分离的记忆种群、新的变异算子和种群规模最大值及控制衰退的搜索过程和亲近度测量过程,可避免opt-aiNet算法的细胞数盲目扩增问题;2)SADE算法使用自适应控制机制、多种群机制与老化机制改变控制参数;3)DECS算法将竞争机制融入多种群差分进化算法中,增强算法寻优能力;4)MDE算法将种群分为跟踪和搜索两个子种群,对两个子种群采用不同的变异策略,利用跟踪种群判断环境变化,采用搜索种群扩大搜索范围。为避免算法结果的复现问题,SADE算法的实验数据由实际仿真得到,而dopt-aiNet、DECS和MDE算法的实验数据来自文献[17-18]。

2.2 测试函数与算法参数设置

本文使用GDBG生成器[21]验证NSDE算法的有效性。GDBG是一种广义动态benchmark生成器,构造二元空间、实空间与组合空间的动态问题,这些问题具有大量的旋转操作和局部最优解以及更高的维度。GDBG包含6种测试函数和7种变化情况,总计49个测试问题,通用参数设置如表 1所示,其中高度范围、起始高度和采样频率的单位为1。

下载CSV 表 1 GDBG通用参数设置 Table 1 General parameter setting of GDBG

测试函数由表 2所示的Sphere、Rastrigin、Weierstrass、Griewank、Ackley这5种函数通过旋转、组合产生,F1测试函数求解最大值优化问题,F2~F6测试函数求解最小值优化问题,其中F1分为带有10个峰和带有50个峰两种情况,具体定义为:

下载CSV 表 2 GDBG基本测试函数 Table 2 Basic test function of GDBG

F1:旋转峰函数(10 and 50 peaks);

F2:Sphere函数的组合函数;

F3:Rastrigin函数的组合函数;

F4:Griewank函数的组合函数;

F5:Ackley函数的组合函数;

F6:混合组合函数。

7种变化类型具体为小步变化(T1)、大步变化(T2)、随机变化(T3)、混沌变化(T4)、周期变化(T5)、带噪声的周期变化(T6)和维度改变的随机变化(T7)。

算法参数设置如表 3所示,种群规模、子种群数、子种群规模、F初始值、CR初始值的取值参考文献[13],邻域半径、邻域候选解个数、迭代次数的取值通过简单实验计算得到。

下载CSV 表 3 算法参数设置 Table 3 Algorithm parameter setting
2.3 评价指标

本文选用平均误差和标准差作为评价算法性能的指标,平均误差和标准差的计算公式如下:

$ {A}_{\mathrm{A}\mathrm{v}\mathrm{g}\_\mathrm{m}\mathrm{e}\mathrm{a}\mathrm{n}}=\frac{\sum\limits_{i=1}^{{r}_{\mathrm{r}\mathrm{u}\mathrm{n}\mathrm{s}}}\sum\limits_{j=1}^{{n}_{\mathrm{n}\mathrm{u}\mathrm{m}\_\mathrm{c}\mathrm{h}\mathrm{a}\mathrm{n}\mathrm{g}\mathrm{e}}}{E}_{i, j}^{\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{t}}\left(t\right)}{{r}_{\mathrm{r}\mathrm{u}\mathrm{n}\mathrm{s}}\times {n}_{\mathrm{n}\mathrm{u}\mathrm{m}\_\mathrm{c}\mathrm{h}\mathrm{a}\mathrm{n}\mathrm{g}\mathrm{e}}} $ (4)
$ {S}_{\mathrm{S}\mathrm{T}\mathrm{D}}=\sqrt{\frac{\sum\limits_{i=1}^{{r}_{\mathrm{r}\mathrm{u}\mathrm{n}\mathrm{s}}}\sum\limits_{j=1}^{{n}_{\mathrm{n}\mathrm{u}\mathrm{m}\_\mathrm{c}\mathrm{h}\mathrm{a}\mathrm{n}\mathrm{g}\mathrm{e}}}\left({E}_{i, j}^{\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{t}}\right(t)-{A}_{\mathrm{A}\mathrm{v}\mathrm{g}\_\mathrm{m}\mathrm{e}\mathrm{a}\mathrm{n}}{)}^{2}}{{r}_{\mathrm{r}\mathrm{u}\mathrm{n}\mathrm{s}}\times {n}_{\mathrm{n}\mathrm{u}\mathrm{m}\_\mathrm{c}\mathrm{h}\mathrm{a}\mathrm{n}\mathrm{g}\mathrm{e}}-1}} $ (5)

其中,nnum_change表示测试函数的变化次数,rruns表示算法独立运行的次数,$ {E}_{i, j}^{\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{t}}\left(t\right) $表示算法在第i次独立运行时第j次变化的适应度绝对误差值,计算公式如下:

$ {E}^{\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{t}}\left(t\right)=\left|f\right({\mathit{\boldsymbol x}}_{\mathrm{b}\mathrm{e}\mathrm{s}\mathrm{t}}\left(t\right))-f({\mathit{\boldsymbol x}}^{\mathrm{*}}\left(t\right)\left)\right| $ (6)

其中,$ f\left({\mathit{\boldsymbol x}}_{\mathrm{b}\mathrm{e}\mathrm{s}\mathrm{t}}\right(t\left)\right) $$ f\left({\mathit{\boldsymbol x}}^{\mathrm{*}}\right(t\left)\right) $分别表示算法寻得的最优值和理论最优值。

2.4 结果分析

本文在Windows 7 x86_64操作系统、Intel®CoreTM i3-3220 CPU、3.30 GHz主频、8 GB RAM、C/C++编程语言环境下进行实验。对6个测试函数进行20次独立测试,实验结果如表 4表 5所示,并将5种算法在每个测试函数下得到的平均误差的最小值加粗显示。根据对比实验结果,从测试函数角度分析可知,NSDE算法在F1(50 peaks)、F2、F3、F4和F5测试问题上的精度相比SADE算法提升最为明显,能够更好地应对F1(50 peaks)的峰数增加导致的环境复杂性变化以及F2、F3、F4和F5特征明显不同的环境动态变化。从变化类型角度分析可知,NSDE算法在T1、T2、T5、T6和T7变化类型下的平均误差比SADE算法小,即在小步变化、大步变化、周期变化、带噪声周期变化、维度改变随机变化情况下的寻优能力相较SADE算法更好。可以看出:NSDE算法相比SADE算法在49个测试问题中有28个测试问题的平均误差更小,表明其具有更优的复杂问题求解能力;仅在F2、T1、T7上劣于dopt-aiNet算法,在49个测试问题中有38个测试问题的平均误差更小;仅在F4、T3上劣于MDE算法,在49个测试问题中有38个测试问题的平均误差更小;仅在F2、F4、T2、T7上劣于DECS,在49个测试问题中有29个测试问题的平均误差更小。可见,NSDE算法相比DECS、dopt-aiNet和MDE算法具有更优的复杂问题求解能力。

下载CSV 表 4 NSDE与SADE算法的实验结果 Table 4 Experimental results of NSDE and SADE algorithms
下载CSV 表 5 NSDE、DECS、dopt-aiNet和MDE算法的实验结果 Table 5 Experimental results of NSDE, DECS, dopt-aiNet and MDE algorithms

根据仿真实验结果可以得出NSDE算法在各类测试问题及各种变化类型下的收敛趋势,如图 4所示。相对误差(E)的计算如式(7)所示:

$ E=\left\{\begin{array}{l}f\left(\mathit{\boldsymbol x}\right)/f\left({\mathit{\boldsymbol x}}^{\mathit{*}}\right)\mathrm{ }, \mathrm{F}1\\ f\left({\mathit{\boldsymbol x}}^{\mathit{*}}\right)/f\left(\mathit{\boldsymbol x}\right)\mathrm{ }, \mathrm{F}2 \sim \mathrm{F}6\end{array}\right. $ (7)
Download:
图 4 NSDE算法在7个测试问题上的收敛曲线 Fig. 4 Convergence curves of NSDE algorithm on seven test questions

其中,fx)是算法寻得的最优值,fx*)是理论最优值。

NSDE算法收敛曲线反映了收敛速度及陷入局部最优值的次数,进而体现算法响应环境变化的能力。由于F3测试函数的基础组成函数Rastrigin是典型的非线性多模态函数,峰与峰之间的起伏较大,并且具有大量局部极值点,因此算法在F3测试函数中的表现较差,相对而言更容易陷入局部最优而出现停滞状态。但除此之外,NSDE算法在其他测试函数中均表现良好,具有较快的收敛速度,能及时响应环境变化并快速搜索新的全局最优值并保持种群多样性。

3 结束语

本文在原始动态SADE算法的基础上提出一种邻域搜索差分进化(NSDE)算法,产生初步的种群最优个体,对种群最优个体的邻域空间进行划分,并在不同的领域空间范围内产生候选解构成候选解集合,选取集合中的最优解对种群最优个体进行迭代,增强算法局部搜索能力。在基于距离的排斥方案中,引入hill-valley函数提高算法寻优精度。实验结果表明,NSDE算法相比SADE、dopt-aiNet、DECS和MDE算法整体性能更优。后续将对NSDE算法做进一步优化,提升其在处理复杂动态问题时的适用性与稳定性。

参考文献
[1]
YANG Zhou, YUAN Yichuan, LUO Tingxing, et al. A hybrid immune algorithm for solving dynamic optimization problems[C]//Proceedings of Chinese Control and Decision Conference. Washington D.C., USA: IEEE Press, 2018: 5326-5332.
[2]
FU H B, LEWIS P R, SENDHOFF B, et al. What are dynamic optimization problems?[C]//Proceedings of IEEE Congress on Evolutionary Computation. Washington D.C., USA: IEEE Press, 2014: 1550-1557.
[3]
SHI Xuhua, QIAN Feng. An optimization algorithm based on multi-population artificial immune network[C]//Proceedings of International Conference on Natural Computation. Washington D.C., USA: IEEE Press, 2009: 379-383.
[4]
RANGINKAMAN A E, KORDESTANI J K. A note on the paper "a multi-population harmony search algorithm with external archive for dynamic optimization problems" by Turky and Abdullah[J]. Information Sciences, 2014, 288(1): 12-14.
[5]
CHEN Li, DING Lixin. Survey on dynamic optimization algorithms[J]. Journal of Wuhan University(Natural Science Edition), 2011, 57(3): 255-264. (in Chinese)
陈莉, 丁立新. 动态优化算法综述[J]. 武汉大学学报(理学版), 2011, 57(3): 255-264.
[6]
NGUYEN T T, YANG S X, BRANKE J. Evolutionary dynamic optimization: a survey of the state of the art[J]. Swarm and Evolutionary Computation, 2012, 6: 1-24. DOI:10.1016/j.swevo.2012.05.001
[7]
MAVROVOUNIOTIS M, LI C H, YANG S X. A survey of swarm intelligence for dynamic optimization: algorithms and applications[J]. Swarm & Evolutionary Computation, 2017, 33: 1-17.
[8]
KORDESTANI J K, RANGINKAMAN A E. A novel framework for improving multi-population algorithms for dynamic optimization problems: a scheduling approach[J]. Swarm and Evolutionary Computation, 2019, 44: 788-805. DOI:10.1016/j.swevo.2018.09.002
[9]
ZUO Xingquan, XIAO Li. A DE and PSO based hybrid algorithm for dynamic optimization problems[J]. Soft Computing, 2014, 18(7): 1405-1424. DOI:10.1007/s00500-013-1153-0
[10]
TURKY A, ABDULLAH S, DAWOD A. A dual-population multi operators harmony search algorithm for dynamic optimization problems[J]. Computers & Indus-trial Engineering, 2018, 117: 19-28.
[11]
PLESSIS M C D, ENGELBRECHT A P. Self-adaptive competitive differential evolution for dynamic environ-ments[C]//Proceedings of IEEE Symposium on Diff-erential Evolution. Washington D.C., USA: IEEE Press, 2011: 1-8.
[12]
NOVOA-HERNANDEZ P, CORONA C C, PELTA D A. Self-adaptation in dynamic environments-a survey and open issues[J]. International Journal of Bio-Inspired Computation, 2016, 8(1): 1-13. DOI:10.1504/IJBIC.2016.074635
[13]
BREST J, ZAMUDA A, BOSKOVIC B, et al. Dynamic optimization using self-adaptive differential evolution[C]//Proceedings of IEEE Congress on Evolutionary Computa-tion. Washington D.C., USA: IEEE Press, 2009: 415-422.
[14]
DAS S, MANDAL A, MUKHERJEE R. An adaptive differential evolution algorithm for global optimization in dynamic environments[J]. IEEE Transactions on Cybernetics, 2014, 44(6): 966-978. DOI:10.1109/TCYB.2013.2278188
[15]
ZHANG Xiaofei, ZHANG Huoming. Improved tabu search algorithm for continuous problems[J]. Journal of China Jiliang University, 2010, 21(3): 69-74. (in Chinese)
张晓菲, 张火明. 基于连续函数优化的禁忌搜索算法[J]. 中国计量学院学报, 2010, 21(3): 69-74.
[16]
BLACKWELL T, BRANKE J. Multi-swarm optimization in dynamic environments[C]//Proceedings of Workshops on Applications of Evolutionary Computation. Berlin, Germany: Springer, 2004: 489-500.
[17]
DE F F O, VON Z F J. A dynamic artificial immune algorithm applied to challenging benchmarking problems[C]//Pro-ceedings of IEEE Congress on Evolutionary Computation. Washington D.C., USA: IEEE Press, 2009: 423-430.
[18]
YUAN Yichuan, YANG Zhou, LUO Tingxing, et al. Multi-population-based competitive differential evolution algorithm for dynamic optimization problem[J]. Journal of Computer Applications, 2018, 38(5): 1254-1260. (in Chinese)
袁亦川, 杨洲, 罗廷兴, 等. 求解动态优化问题的多种群竞争差分进化算法[J]. 计算机应用, 2018, 38(5): 1254-1260.
[19]
JIANG Liqiang, QIANG Hongfu, LIU Guangbin. Modified differential evolution for dynamic optimization problems[J]. Journal of Chinese Computer System, 2013, 34(12): 2837-2840. (in Chinese)
姜立强, 强洪夫, 刘光斌. 求解动态优化问题的改进差分进化算法[J]. 小型微型计算机系统, 2013, 34(12): 2837-2840.
[20]
CASTRO L N, TIMMIS J. An artificial immune network for multimodal function optimization[C]//Proceedings of IEEE Congress on Evolutionary Computation. Washington D. C., USA: IEEE Press, 2002: 699-704.
[21]
LI C H, YANG S X, NGUYEN T T, et al.Benchmark generator for CEC'2009 competition on dynamic optimiza-tion[EB/OL].[2020-01-18].https://www.cs.le.ac.uk/people/sy11/Papers/TR-CEC09-DBG.pdf.