APP下载

改进的教-学优化算法

2019-08-22翟军昌

计算机技术与发展 2019年8期
关键词:学习策略局部阶段

翟军昌,赵 震,张 萍

(1.渤海大学 信息科学与技术学院,辽宁 锦州 121013;2.鞍山师范学院 物理科学与技术学院,辽宁 鞍山 114005)

0 引 言

近年来,启发式优化算法受到越来越多的关注[1-7]。文献[1]受教学过程中教师教学生和学生之间相互学习提高成绩这一现象的启发,提出了教-学优化算法(teaching-learning based optimization吗,TLBO)。TLBO算法结构简单,参数少,具有很好的收敛性,已经成功应用于解决工程中的优化问题[8-10]。

TLBO算法自提出以来受到了广泛关注[11-16]。文献[11]在TLBO算法的基础上引入了精英策略,提出了ETLBO算法。文献[12]基于反向学习、随机扰动和随机交叉策略提出了TLBOGC算法,虽然在教学阶段结合扰动策略提高解的质量获得了较好的全局搜索性能,但在学习阶段基于差分进化的思想引入随机交叉操作增加了算法计算复杂度。文献[13]通过借鉴其他学习者的学习经验提出了LETLBO算法,但算法的局部搜索能力仍需要提高。文献[14]提出了ITLBO算法,该算法在引入学生反馈的基础上加入了差分进化算法中的变异和交叉思想,同时又加入了噪声扰动策略,以提高算法的性能。然而,算法的计算复杂度也随之增加,导致算法计算时间过长。

文中受文献[12]启发,提出了一种改进教-学优化算法(AITLBO),旨在提高算法的优化性能。AITLBO算法在教学阶段通过随机扰动策略提高教学效果,避免算法陷入局部最优,从而提高解的质量。在学习阶段引入了较差学生向优秀学生学习和较优学生向教师重新学习的策略,并结合自我学习的反思过程实现算法对解空间局部信息更精细的搜索,提高算法的局部搜索性能。最后通过仿真验证该算法的有效性。

1 TLBO算法

TLBO算法通过教师向学生传授知识,学生从老师那里学到知识消化吸收提高之后,再通过学生之间的相互学习提高整个班级的成绩。TLBO算法主要包括教学和学习两个重要的阶段。

1.1 教学阶段

在教学阶段,将当前最优个体作为教师xteacher对其他个体进行教学,提高整个群体的平均值。假设当前学生为xi,则教学阶段产生的新解为

(1)

TF=round[1+rand]

(2)

1.2 学习阶段

在学习阶段,TLBO算法通过两个随机选择的学生个体进行相互学习,产生新的个体。假设在群体中随机选择两个学生个体xi和xh,比较两个学生个体对应的目标函数值f(xi)和f(xh),其中较差个体向较优个体进行学习。即

(3)

2 AITLBO算法

2.1 改进教学阶段

教师在教学过程中扮演着重要的角色,尤其是教师的知识积累和阅历对学生的教学起着至关重要的作用。文献[12]提出了一种扰动策略,即在当前最优解与其他解之间进行扰动,教师通过向其他学生学习提高解的质量,提高教师的教学效果,从而阻止当前最优解陷入局部最优。

在教学阶段,学生xi向教师xteacher学习时,随机选择一个学生xr且r≠teacher,对学生xi进行随机扰动。对于任意产生的两个随机数rand1和rand2,若满足rand1

xi,j=xteacher,j+Guass(0,1)×(xteacher,j-xr,j)

(4)

其中,xi,j是学生xi的第j维分量,i=1,2,…,PopSize,j=1,2,…,D;Guass(0,1)是均值为0方差为1的高斯随机数。

2.2 改进学习阶段

在学生相互学习的过程中,如果当前学生是一名优秀的学生,那么优秀的学生通过自己的学习经验为较差的学生提供帮助,并对其未来的学习提供有价值的指导作用。相反,相对较差的学生则会为其他学生的学习起到负面的影响,容易使其他学生成绩变差。对于优化问题而言,较优解会对较差解的进化起到引导作用,使其向较优的方向逼近。而较差解对较优解则会起到破坏作用,容易使较优解在进化过程中丧失某些特质。因此,文中提出了一种不同的学习策略。

(1)学生之间相互学习。

对于任意一名学生xi,当他遇到比自己优秀的学生xr时,学生xi通过与优秀学生xr的交流可以学到更多的知识,或者扩展自己的知识积累。为使学生xi从其他优秀学生身上获得更多的知识,即当f(xi)

(5)

通过式5,学生xi通过动态学习策略,可以在学生xr附近区域内随机搜索。通过对xr附近信息的开发可以使学生xi追赶甚至超过学生xr。

对于任意一名学生xi,当他遇到比自己较差的学生xr(f(xi)≥f(xr)),为避免较差学生xr对优秀学生xi的负面影响,将其重新与教师xteacher学习,当f(xi)>f(xr)时,采用下面的学习策略。

(6)

式6可以保证学生xi在学习中遇到较差的学生时总是向最优的方向发展,避免较差学生对学生xi的负面影响,从而破坏解的结构。

在学生相互学习过程中,当前学生面对不同适应度值的学习对象选择不同的学习策略,可以使学生始终向最优的方向逼近,提高学生的视野和学习的效率。

(2)自我反思学习。

在实际当中,学生可以通过向老师和其他同学的学习提高自己的知识水平和能力。与此同时,学生的自我反思理解和自我学习消化的过程,也可以使学生在各个方面得到提高。所以,通过学生之间的相互学习之后,每个学生既保持了自己的特质,又借鉴并继承了其他优秀学生的学习经验。但是在这种相互学习策略之后,每个学生对知识的自我消化理解过程,也就显得非常重要。

为了提高学生的学习效果,发挥学生自我学习的能力,在学生相互学习之后,通过下面的学习策略,让学生进行自我学习。即

(7)

其中,Guass(0,1)是高斯随机数。

式7的引入,可以使学生在相互学习向最优方向逼近的过程中,不断进行自我反思学习。对于算法而言,可以实现当前学习个体在向全局最优逼近的过程中实现对局部信息更加精细的搜索,从而跳出局部最优。

在AITLBO算法中,学习阶段初期通过较差学生向优秀学生学习和优秀学生向教师重新学习的策略,可以使学生在一个更广泛的搜索空间内对解空间学习,使较差的学生向最优的方向聚集,从而提高算法的全局搜索性能。在学习阶段后期增加学生自学习的过程,发挥学生自我学习的能力,可以使学生对自身所学知识进行扩展,提高其局部搜索能力,避免受局部最优的困扰。

2.3 AITLBO算法流程

AITLBO优化算法的工作流程为:

Step1:定义优化问题初始化算法参数。

优化问题定义为:

(8)

其中,f(x)是目标函数;xjL和xjU分别是决策变量xj的上界和下界;D是决策变量的维数。

Step2:初始化种群。

根据种群大小和决策变量的数量,按照式9随机产生一个初始种群。

xi,j=xjL+rand×(xjU-xjL)

(9)

其中,i=1,2,…,Popsize,j=1,2,…,D。

Step3:教学阶段。

Step4:学习阶段。

对于任意的学生xi,随机选择一名学生xr,如果f(xi)

Step5:终止准则。

如果满足最大迭代次数,终止程序运行,否则执行Step3。

3 仿真实验

为了验证AITLBO算法的性能,文中将其与TLBO[1]、ETLBO[11]、LETLBO[13]、TLBOGC[12]、GWO[4]和ABC[5]几种优化算法进行性能测试。在实验中选取优化算法5个经典标准测试函数,具体表达如下:

f1:Sphere函数。

其中,-100≤xi≤100,全局最优为0。

f2:Rosenbrock函数。

其中,-100≤xi≤100,全局最优为0。

f3:Ackley函数。

其中,-100≤xi≤100,全局最优为0。

f4:Shifted Rosenbrocks函数。

其中,zi=xi-oi;oi是偏移量,-100≤xi≤100,全局最优为-390。

f5:Shifted rotated Griewank函数。

其中,zi=xi-oi;oi是偏移量,-100≤xi≤100,全局最优为-180。

在仿真实验中,TLBO、ETLBO、LETLBO、TLBOGC和AITLBO算法的种群大小Popsize=40;ABC算法种群大小取80,limit=50;GWO算法种群大小取80。

当向量空间维数D=50时,所有算法迭代次数取Gn=3 000,当向量空间维数D=100时,所有算法迭代次数取Gn=4 000,分别用Best代表最优值,Worst代表最差值,Mean代表平均值,Std代表方差,5个函数的测试结果分别如表1和表2所示。

表1 标准函数测试结果(D=50)

从函数f1的优化结果可知,几种教-学优化算法不论在低维空间还是高维空间均可以搜索到最优解,而且所得到的最差值和平均值均与最优解相同,其优化效果明显优于GWO和ABC算法的结果。

虽然ABC算法在低维空间中对函数f2的优化结果优于其他几种算法,但在高维空间中其优化效果相对较差。相比之下,文中AITLBO算法在高维空间中对函数f2的优化精度明显优于其他几种算法。

从函数f3的优化结果可以看出,文中AITLBO算法在低维空间和高维空间均可以搜索到最优解,而且所得到的最差值和平均值均与最优解相同。TLBO、TLBOGC、GWO和ABC算法均陷入了局部最优,而ETLBO和LETLBO算法在低维空间和高维空间中均可以搜索到最优解,但通过均值和方差两项指标来看算法的稳定性相对较差。

从函数f4的优化结果可知,几种优化算法均陷入了局部最优。其中TLBOGC、ABC和AITLBO算法的优化结果相对较好,而AITLBO算法所得均值和方差均优于其他几种算法的优化结果。

从函数f5的优化结果可知,TLBOGC和AITLBO算法的优化结果明显优于其他几种算法的结果。在低维空间中两种算法都可以搜索到最优解,但AITLBO算法优化得到的均值和方差明显优于TLBOGC算法。在高维空间中,两种算法的优化精度都有所下降,但是AITLBO算法所得结果明显优于其他几种算法所得结果。

从表1和表2中5个函数的优化结果整体来看,AITLBO算法的寻优精度和稳定性明显优于其他几种算法。

4 结束语

针对教-学优化算法过早收敛,容易陷入局部最优的问题,提出了一种改进教-学优化算法(AITLBO)。AITLBO算法避免了在进化过程中较差学生对较优学生的影响,并引入了自我反思学习提高了算法对局部信息的开发能力。利用优化算法5个标准测试函数对AITLBO算法与其他几种优化算法进行寻优效果比较,仿真结果表明AITLBO算法的寻优性能得到了有效的提升,验证了算法的有效性和稳定性。

猜你喜欢

学习策略局部阶段
日常的神性:局部(随笔)
Open science:The science paradigm of the new era
关于基础教育阶段实验教学的几点看法
《瑞雪》(局部)
凡·高《夜晚露天咖啡座》局部[荷兰]
在学前教育阶段,提前抢跑,只能跑得快一时,却跑不快一生。
丁学军作品
Exploration of Learning Strategies from the Study on Language Acquisition Process
不同的阶段 不同的方法
AdvancedTeachingStrategiesofCollegeEnglishVocabulary