融合改进天牛须搜索的教与学优化算法

2022-03-02 08:31欧阳城添
计算机工程与应用 2022年4期
关键词:测试函数天牛变异

欧阳城添,周 凯

江西理工大学 信息工程学院,江西 赣州341000

教与学优化(teaching-learning based optimization,TLBO)算法[1]是印度学者Rao 等人于2011 年提出的一种模拟班级教学过程的群智能算法。将优化问题的解空间描述为一个班级,班级里的每个学生对应于解空间的各个解,其学习成绩对应于解的适应度值,教师则代表当前适应度值最好的解。该算法原理简单,参数较少,收敛速度较快,已被成功应用于多个学术或工业领域,如神经网络的参数优化[2]、视觉跟踪[3]、数据分类[4]、PID控制[5]等。

然而,在面对维度较高的复杂优化问题时,标准TLBO 算法往往无法收敛到全局最优,存在易早熟、解精度低、陷入局部最优等问题。因为标准TLBO算法种群个体采用随机初始化产生,在初始种群没有覆盖到全局最优解的情况下,如果在有限迭代次数内无法搜索到最优解,那么算法早熟是难以避免的。求解单峰问题时,若最优解所在区域种群个体适应度值相差较大,或最优个体和次优个体的适应度相差较小,则算法容易提前收敛。求解多峰问题时,若解与解之间相距较远,则无法保证种群覆盖到所有最优区域,这时算法也容易提前收敛。此外,迭代过程中学生个体在教学阶段会向教师所在区域靠近,虽然有利于算法快速收敛,但是当前最优不一定是全局最优,持续的迭代会使学生个体高度聚集,将导致算法陷入局部最优。

为提高算法求解性能,近年来不少专家学者对标准TLBO 算法进行了改进研究。Rao 等人[6]引入精英策略和变异机制,提出精英教与学优化(elitist teachinglearning based optimization,ETLBO)算法,能有效提高学生整体学习水平,有利于算法快速收敛,但容易收敛到局部极值。于坤杰等[7]在ETLBO 算法的基础上引入反馈机制,增加差生与老师之间的反馈交流,提出一种基于反馈的精英教与学优化(Feedback ETLBO,FETLBO)算法,实验证明该算法可以有效抑制种群的过早收敛,然而也存在求解精度不高的问题。童楠等[8]提出一种基于反思机制的教与学优化(teaching-learning based optimization based on reflection,RTLBO)算法,利用高斯正态分布和教师与学生之间的差异实现两者各自的局部搜索,达到同步提高的目的,实验表明该改进算法具有稳定的鲁棒性,但在多峰高维测试函数上,收敛精度明显下降。李丽荣等[9]提出具有动态自适应学习机制的教与学优化(teaching-learning based optimization with dynamic self-adapting learning,DSTLBO)算法,在教学阶段加入非线性的动态学习因子和动态随机搜索策略,有效提高了收敛速度和解精度,但依然存在过早收敛的现象。王培崇等[10]提出一种融合加权中心学习的教与学优化(teaching-learning based optimization with weighted center,WCTLBO)算法,以加权中心取代教师个体,在学习阶段引入小组讨论,有效避免种群陷入局部最优,但收敛精度一般。

针对标准TLBO 算法的问题和以上改进算法的不足,本文提出融合改进天牛须搜索的教与学优化(teachinglearning based optimization with improved beetle antennae search,BASTLBO)算法。该算法进行了三方面的改进:首先,针对种群随机初始化,多样性无法保证的问题,提出Tent 映射反向学习策略,使初始种群在解空间分布得更加均匀,尽可能覆盖到全局最优解,有利于算法快速收敛而又避免早熟;其次,在教学阶段,先对教师个体执行二次插值天牛须搜索,然后再让学生向老师学习,进行自我更新,以此来提高算法全局寻优和对当前最优解区域进行精细搜索的能力;最后,由于教学阶段会引导种群向最优个体所在空间收敛,为保证算法在陷入局部最优时能迅速跳出,提出自适应混合变异策略,结合柯西变异和高斯变异自身特性,使算法达到全局开发与局部搜索的动态平衡。

1 标准TLBO算法

TLBO 算法的原理是利用教师和班级平均学习水平之间的差异性来引导学生进化学习,之后学生之间也要相互学习,进而提高整个班级的成绩。具体过程分为教学和学习两个阶段。

1.1 教学阶段

教学过程的数学描述如式(1)所示。

1.2 学习阶段

学生xi与另一名随机选择的学生xj相互学习,比较其对应的目标函数值f(xi)和f(xj),让学习差的向学习好的进行学习,即:

2 融合改进天牛须搜索的教与学优化算法

2.1 种群初始化策略

为了增强种群的多样性,在BASTLBO 算法中,首先使用Tent映射产生混沌初始种群,然后通过反向学习产生反向种群,最后对混沌初始种群及其反向种群进行排序,从中选择适应度值较优的解组成初始种群。

Tent映射产生混沌粒子序列的公式定义如下:

式中,表示第t次迭代粒子i在第d维分量上的混沌变量,t=1,2,…,T,d=1,2,…,D。

通过式(3)迭代T次可以得到t个混沌变量Yt=(Yt,1,Yt,2,…,Yt,D)组成的混沌序列,再经过式(4)进行逆映射,即可得到t个初始解Xt=(Xt,1,Xt,2,…,Xt,D),记为种群X。

其中,Xmax和Xmin来自搜索空间的取值范围[Xmin,Xmax]。

作为一种提高随机搜索算法搜索能力的有效方法,反向学习(opposition-based learning,OBL)策略的原理[11]是若在D维空间中存在一个点x=(x1,x2,…,xD),xi∈[ai,bi]则其反向点为,其中,i∈[1,D]。因此由种群X计算反向种群OX:

将种群X和反向种群OX合并得到新种群,即Xnew={X⋃OX},然后计算Xnew的目标函数值并排序,若是极小值寻优,则从小到大排序,若是极大值寻优,则从大到小排序,然后选取其中适应度值最好的前N个个体作为初始种群。

2.2 改进天牛须搜索

TLBO 算法有一个明显的缺点是教师个体缺少学习机制,即教师没有进一步地寻优,没有对所在的空间进行精细的局部搜索。而天牛须搜索(beetle antennae search,BAS)算法[12]不同于其他优化算法,它恰好只需要一个个体,不需要知道函数具体形式和梯度信息即可实现高效寻优,运算量小,寻优速度快。BAS 算法流程如下:

(1)因为天牛头的朝向随机,所以天牛左须指向右须的向量表示为:

其中,rands(k,1)表示生成k维的随机向量。

(2)设置天牛步长δ,以线性方式进行递减,t为当前迭代次数,则第t次迭代时天牛的移动步长为:

式中,eta_δ为步长递减系数。

(3)设置天牛两须距离d,同样以线性方式递减,其递减系数为eta_d,第t次迭代时两须的距离为:

(4)天牛左右两须进行位置更新:

式中,左须xl、右须xr都是k维向量,xt表示第t次迭代时天牛质心的位置。

(5)计算左右两须xl和xr的适应度值f(xl) 和f(xr),根据二者大小关系,判断天牛的前进方向:

其中,sign 为符号函数。

(6)计算天牛移动后的适应度值。

(7)判断是否符合迭代结束条件,符合就结束迭代,否则重复(1)到(6)直到符合条件。

虽然BAS算法原理简单,收敛速度快,但是单个天牛在高维空间中的寻优能力还是有所欠缺,容易陷入局部最优,有必要对其进行改进。因此,引入二次插值算子:

其中,k表示维度,xb为当前全局最优解。

采用二次拟合函数法,在每一次天牛位置更新时,都可以利用二次插值得到一个异于当前解xt的新解xi,对比它们的适应度值,若f(xi)

改进BAS 算法虽然高维寻优能力有所增强,但是该算法搜索到的最优点不一定是全局最优点。因此要给BAS 设置两个终止条件来保证算法整体搜索效率:第一个是解的精度;考虑到在某些问题的求解过程中,精度要求即使较低,BAS 算法可能也会迭代很多次,因此第二个是要设定固定的迭代次数。当精度达到要求或迭代次数达到设定值,则搜索完毕,直接应用所得到的点替换教师个体。

2.3 学生的混合变异

由高斯变异、柯西变异自身的概率分布特性以及在其他优化算法中的应用效果可知,高斯变异可以赋予算法更好的局部搜索能力,柯西变异则具有较强的全局探索能力,因此可以结合二者特性,通过混合变异使教与学优化算法能够自适应调节学生之间互相学习的效果。在学生个体更新公式中引入服从混合变异分布的随机向量,如式(12)所示。

在算法迭代过程中,前期需要更强的局部搜索能力,使算法能够快速地收敛到全局最优附近,节省算法寻优时间。而后期为了使TLBO逃脱局部极值的束缚,避免早熟收敛,则需要加强算法的全局探索能力,因此TLBO 算法前期要侧重高斯变异,后期要侧重柯西变异。α(t)与γ(t)随迭代进程计算如下:

其中,t是当前迭代次数,T是算法最大迭代次数,G(0,1)为标准高斯分布,C(0,1)为柯西分布。

2.4 BASTLBO算法的步骤

步骤1以个体X0(0)为起点,依据式(3)、(4)进行迭代得到混沌种群X,种群X通过式(5)迭代得其反向种群OX。令Xnew={X⋃OX},计算Xnew的目标函数值并排序,选取其中适应度值最好的前N个个体组成初始种群POP(0)。

步骤2计算适应度值,选出最佳个体,设为教师xteacher,并计算班级平均值xmean。

步骤3对教师个体xteacher执行天牛须搜索。设置改进BAS 算法相关初始参数,迭代次数t=0,依据式(10)、(11)进行天牛迭代,判断是否满足BAS算法终止条件,若是,则进入下一步,否则继续迭代。

步骤4更新教师个体xteacher=xt。

步骤5依据式(1)进行教师的“教”行为。

步骤6依据式(12)、(13)、(14)进行学生的相互“学”行为。

步骤7BASTLBO算法满足结束条件,则输出最优解Xgbest,结束算法,否则返回步骤2。

3 实验与分析

3.1 标准测试函数

为了检验本文改进算法的寻优能力,选取6个经典benchmark 测试函数进行仿真实验,分别是f1:Sphere、f2:Rosenbrock、f3:Schwefel2.22、f4:Rastrigin、f5:Griewank、f6:Ackley,它们的理论最优值均为0。其中f1到f3是单峰函数,可以测试算法收敛速度与精度,f4到f6是多峰函数,可以测试算法逃出局部极值的能力。表1给出了标准测试函数的具体信息,包括表达式和取值范围。

表1 标准测试函数Table 1 Benchmark functions

此外,本文所有实验运行环境始终一致,均在AMD A10-7300 处理器、Windows 10 操作系统下基于软件Matlab2016a实现。

3.2 天牛须搜索改进有效性分析

2.2 节中在原始天牛须搜索算法的基础上引入二次插值算子,目的是得到寻优性能更好的BAS,然后将其嵌入到TLBO算法中。为了验证二次插值的改进效果,设计实验如下。

首先通过单因素实验、正交分析确定BAS 的内部最优参数:初始步长δ0取1,两须初始距离d0取2,步长和两须距离的递减系数均取0.95。然后通过3.1节中的标准测试函数对改进BAS和原始BAS进行优化性能比较。实验条件为函数维度30 维,最大迭代次数1 000次。算法对不同函数均独立运行30 次,结果取平均值并计算方差。对比数据如表2所示。

从表2可以看出,改进天牛须搜索的收敛精度和稳定性较原始算法有明显提升。其中在30次的函数测试中,改进BAS 对多峰函数f4都成功收敛到了理论最优值0,方差也为0,同时在多峰函数f6上方差为0,说明改进算法具有较高的稳定性,验证了引入二次插值算子的改进BAS的寻优有效性。

表2 原始BAS和改进BAS函数测试结果Table 2 Functional test results of original BAS and improved BAS

通过以上实验可以确定改进BAS的可行性与优越性以及此种算法特有的内部参数值,为后续将其嵌入到TLBO 算法中提供了理论依据。然而为了保证本文实验的严谨性,根据2.2节中的分析,还需要考虑固定迭代次数的设置问题,如果固定迭代次数过大,则会影响改进TLBO 算法的整体收敛效率,如果过小,则可能体现不出改进优势。因此针对上述改进BAS,将最大迭代次数分别取200、1 000、2 000,在标准测试函数上进行独立30次优化实验,计算并统计最优解和均值,如表3所示。

表3 最大迭代次数对改进BAS优化性能影响Table 3 Effect of maximum iterations on improved BAS optimization performance

由表3可知,最大迭代次数对天牛须搜索算法的影响不大,因此为了保证BASTLBO改进算法的整体寻优效率,后续实验中在给改进BAS设置终止条件时,固定迭代次数取值为200。

3.3 不同改进策略单一有效性分析

将仅使用Tent映射反向学习初始化策略的TLBO_1、仅加入改进天牛须搜索的TLBO_2、仅加入组合变异的TLBO_3 与标准TLBO 算法进行比较,探讨本文每部分改进对算法整体效果影响,验证不同策略的改进有效性。TLBO_2中加入的改进BAS内部参数设置同3.2节一样,并且设置其迭代终止条件为固定搜索精度0.001,固定迭代次数200次。统一实验条件,各算法种群规模为20,测试函数维度均为30维,最大迭代次数1 000次。独立运行30次,统计各算法的解平均值和方差,结果如表4所示。

表4 不同改进策略结果比较Table 4 Comparison of results of different improvement strategies

结合表4数据,分析每种改进策略,TLBO_2对于单峰函数f3和多峰函数f4、f5,都可以收敛到函数最优值0,虽然在f1和f6上没有寻到理论最优,但也是表现最优秀的。因为TLBO 算法的核心便是利用教师与学生之间的差异来寻优,始终让当前最优个体指导整个种群进化,而加入了改进BAS的TLBO_2可以在算法每次迭代过程中获得更优秀的当前最优个体,一方面提高了寻优精度,一方面使得种群在算法初始阶段快速向可能最优解区域靠近,加快了收敛速度。实验证明了在TLBO中引入改进天牛须搜索的有效性和优越性。在函数f2上,三种改进策略相比标准TLBO提升效果不是特别明显,但TLBO_3表现最优,并且在f4上找到了理论最优值,在f5中方差为0,稳定性良好。这是因为TLBO_3中的组合变异策略有效增强了算法前期的局部勘探能力和后期的全局开发能力,实验说明此策略对本文改进算法性能提升具有显著影响。另外,使用了本文Tent映射反向学习策略的TLBO_1 相比于标准TLBO 算法优化性能也有一定提升。下文将继续通过实验测试融合了以上三种改进策略的BASTLBO算法的寻优性能。

3.4 BASTLBO算法性能测试

将本文所提出的BASTLBO 算法与标准TLBO 以及两种典型TLBO 改进算法FETLBO[7]、DSTLBO[9]进行对比,分别在维度为30 维、100 维的条件下,在3.1 节中的标准测试函数上进行寻优测试,参数设置同3.2 节一样,FETLBO和DSTLBO的实验参数参考各自文献。独立运行30次,计算并统计结果如表5所示。

从表5数据可以看出,函数维度为30维时,BASTLBO算法可以成功找到单峰函数f1的最优解,而参与对比的TLBO、FETLBO、DSTLBO算法虽然无法搜索到全局最优值,但FETLBO、DSTLBO 的性能较于TLBO 仍有较大提升。四个算法在f2上都没有找到最优解,但观察各算法的解均值和方差,可以看出BASTLBO表现最优。f3也是单峰函数,多峰函数f4极值点较多,但三种改进TLBO 算法均收敛到了全局最优。对于多峰函数f5,TLBO 算法解精度较低,而FETLBO、DSTLBO、

表5 不同维度下算法寻优结果对比Table 5 Comparison of algorithm optimization results in different dimensions

如图1 所示,绘制出了30 维度下TLBO、FETLBO、DSTLBO、BASTLBO 算法在不同函数上的平均收敛曲线,结合表5 数据,进一步评估算法寻优性能。可以看出,在六个测试函数上,三种改进算法的解精度和收敛速度较标准TLBO 均有所提高,在f3上DSTLBO 前期收敛速度比BASTLBO 要快,除此之外,本文所提出的BASTLBO 算法无论在单峰还是多峰函数上始终都保持着较高的稳定性和寻优精度,且收敛速度最快,在其他算法陷入局部最优时,依然可以持续寻优。综上,加入了本文提出的三种改进策略的BASTLBO 算法的综合优化性能得到了有效验证。

图1 30维度下不同函数平均收敛曲线Fig.1 Average convergence curves of different functions in 30 dimensions

3.5 与其他群智能算法对比

为了更好地评估BASTLBO算法的寻优能力,选取CEC2013 函数集中的10 个基准函数进行仿真实验,具体函数信息如表6 所示,包括函数名称、搜索空间范围BASTLBO算法在本实验中均成功收敛30次。在f6中,DSTLBO 表现最优,BASTLBO 与FETLBO 算法求解精度相当,但就方差而言,BASTLBO算法显得更稳定些。

表6 CEC2013函数(部分)Table 6 CEC2013 functions(part)

当测试函数维度增加到100维时,四个算法均没有在1 000 次迭代内找到函数f1的全局最优值,但是BASTLBO 算法的解精度要优于其他三种算法。对于f3、f4,BASTLBO均成功收敛30次,而FETLBO、DSTLBO在f4上表现相当,在f3上可以收敛到理论最优。三种改进TLBO 算法在30 维时可以找到f5函数的最优值,但在100维度时,寻优精度和稳定性均有不同程度的下降,而且可以注意到,此时DSTLBO、BASTLBO 还要稍逊于FETLBO 算法。在f6函数上,BASTLBO 算法100维下的求解精度较30 维时几乎没有下降,而FETLBO、DSTLBO均有所下降,说明本文改进算法具有更好的鲁棒性,适用于高维寻优。和理论最优值。参与对比的新型群智能算法有萤火虫算法(FA)[13]、布谷鸟算法(CS)[14]、人工鱼群算法(AFSA)[15]。设置各算法种群规模为40,最大迭代次数为1 000,分别在10维、30维、50维条件下,独立运行30次取解平均值和方差,结果如表7所示。

表7 CEC2013函数优化结果对比Table 7 Comparison of CEC2013 functions optimization results

分析表7 数据,最优指标数据已经加粗显示,可以看出,与其他算法相比,无论是低维还是高维,BASTLBO算法均能在CEC2013单峰、多峰以及复合函数上找到更好的结果,进一步证明BASTLBO具有较好的收敛精度和鲁棒性。

上述实验中仅使用了平均值和方差两种评价指标,为了增强实验结果的说服力,采用显著性水平α=5%的Wilcoxon 秩和检验[16]方法来进一步评估BASTLBO 算法的性能。如表8所示,其中符号“+”“-”和“=”分别表示BASTLBO算法的结果优于、劣于和相当于对比算法的测试结果。

当p值小于5%时,拒绝零假设,说明两种算法之间具有显著性差异。从表8的Wilcoxon统计结果来看,当显著性水平为5%时,BASTLBO算法与另外三种群智能对比算法之间具有显著性差异,且BASTLBO明显更优。

表8 Wilcoxon秩和检验结果统计Table 8 Statistics of Wilcoxon test results

3.6 用压力容器设计优化问题验证算法

BASTLBO 算法求解无约束测试函数的有效性和优越性已经得到验证,为了验证其对约束问题的求解能力,选择压力容器设计优化这一实际结构优化问题来进行实验,使用BASTLBO求解最小总成本。式(15)给出了该问题的目标函数,约束条件见式(16)。其中x1、x2、x3、x4分别表示实际问题中的半球形封头厚度Ts、圆柱形压力容器厚度Th、内径R和圆柱长度L。

其中,1×0.062 5 ≤x1,x2≤99×0.062 5,10 ≤x3,x4≤200。

为评判求解结果的优劣,将BASTLBO算法与广泛学习粒子群算法(CLPSO)、协同差分进化算法(CEDE)以及人工免疫混合遗传算法(GA-AIS)进行比较实验[17]。为保证公平性,各算法种群规模设置为50,均独立运行30次,取优化结果均值。对比数据如表9、表10所示。

表9 压力容器设计问题中约束函数值对比Table 9 Constraint function values comparison in pressure vessel design problem

表10 不同算法在压力容器设计问题上的优化结果对比Table 10 Optimization results comparison of different algorithms in pressure vessel design problem

综合表9、表10数据可以看出,BASTLBO算法的优化结果更好一些,其迭代50 000次得到的总成本比其他三种算法要更低。约束函数值也证明了BASTLBO 求解此问题的有效性和优越性,g3函数值达到了0,约束函数g1、g2、g4的值也更接近0,其中g1、g2约束函数值至多提升了9个数量级。

4 结束语

针对TLBO算法易陷入局部最优、求解精度低的弱点,本文提出如下三方面的改进。

(1)在种群初始化阶段,结合Tent 映射和反向学习机制,根据适应度值排序,择优组成初始种群,提高了种群多样性,且有利于算法快速收敛。

(2)在迭代过程中对教师个体执行BAS搜索,并对BAS进行改进,增强TLBO算法对当前最优个体周围区域的精细搜索,提高跳出局部最优的能力。

(3)在学生个体更新公式中加入混合变异算子,利用柯西函数较强的局部变异能力和高斯函数较强的全局变异能力,使算法随迭代进程自适应调节探索方向,既维持了算法的收敛速度,又可以在陷入局部最优时迅速跳出。

实验结果表明,本文提出的BASTLBO算法在低维和高维下的寻优均具有较好的求解精度和鲁棒性,收敛速度快。并通过对压力容器设计优化问题的求解,验证了BASTLBO 算法解决约束优化问题的有效性和优越性。未来还会借鉴其他随机搜索算法的优点,来进一步改善算法性能,同时也将深入研究拓展该算法的应用领域。

猜你喜欢
测试函数天牛变异
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
天牛到底有多牛
变异危机
变异
基于自适应调整权重和搜索策略的鲸鱼优化算法
黑黄花天牛
巨型昆虫——天牛
具有收缩因子的自适应鸽群算法用于函数优化问题
变异的蚊子