APP下载

基于反向学习的人工蜂群算法

2022-02-23王剑,王冰,葛孟珂

王剑,王冰,葛孟珂

摘要:提出基于反向学习的人工蜂群算法(简称OABC算法).在人工蜂群算法的跟随蜂阶段,种群依概率进行反向学习代替跟随蜂搜索方案.保留标准人工蜂群算法中雇佣蜂和偵察蜂阶段以保证种群的探索能力以及种群的多样性,增设参数控制一般的反向学习过程中对位搜索范围,充分利用种群信息和个体信息优化种群,提高对位点的有效性,从而提高反向学习的成功率.仿真实验结果表明,OABC算法有效提升了算法寻优速度和收敛精度.

关键词:人工蜂群算法;反向学习;对位邻域;函数优化

[中图分类号]TP301.6[文献标志码]A

An Improved Artificial Bee Colony Algorithm with

Opposition-based Learning

WANG Jian,WANG Bing*,GE Mengke

(College of Mathematical Sciences;Mudanjiang Normal University,Mudanjiang 157011,China)

Abstract:An improved artificial bee colony algorithm with opposition-based learning(OABC algorithm for short) is proposed.In the following bee phase of the artificial bee colony algorithm,the population implement opposition-based learning according to probability instead of following bee search,retains the employed bee phase and scout bee phase in the standard artificial bee colony algorithm to ensure the exploration ability and diversity of the population,and adds parameters to control the contraposition search range in the general opposition-based learning process,It makes full use of population information and individual information to optimize the population,improves the effectiveness of counterpoint,and improves the success rate of opposition-based learning.Simulation results show that the OABC algorithm effectively improves the optimization speed and convergence accuracy of the algorithm.

Key words:artificial bee colony algorithm;opposition-based learning;counterpoint neighborhood;function optimization

人工蜂群算法(artificial bee colony,ABC)是由土耳其学者 Karaboga[1]于2005年提出的.ABC算法因其过程简单、计算容易、需要调整的参数较少以及收敛速度具有竞争力等优点而被广泛关注和研究.[2-7]学者们对其所做的改进方式各不相同,其中设计多阶段算法是一种有效的方式.反向学习(opposition based learning,OBL)算法是多阶段算法的代表之一,其关键思想在于充分利用适应度信息,选择较好的个体组成种群.为使初始解具有多样性,较均匀地分布在搜索空间,Rahnamayan[8]等人首先将反向学习应用在差分进化算法中,并得到不错的效果.在改进人工蜂群算法方面,反向学习多应用于种群初始化.暴励[9]等采用反向学习方法产生初始解.Gao[10]等人在种群初始化阶段采用基于混沌序列的反向学习方法,研究参数的细微变化对初始种群分散程度的影响;分析搜索维数对算法性能的影响,在搜索方程中加入了优秀个体信息,增强算法的开发能力;利用随机个体信息来保证种群的多样性.这些改进方式使得ABC算法的性能有所提升,但在处理具体优化问题时,反向学习策略对人工蜂群算法的收敛速度和收敛精度的平衡作用还有很大的提升空间.

本文基于反向学习的人工蜂群算法(简称OABC算法),对一般的反向学习策略做了调整,并将此策略应用在跟随蜂阶段,使得跟随蜂全体或是执行反向学习策略或是执行标准ABC算法中跟随蜂策略.通过反向学习策略,群体能够充分利用种群信息来寻找最优值的潜在区域,在一定程度上提高算法的搜索精度.基于反向学习的人工蜂群算法仍然保留标准ABC算法跟随蜂和侦察蜂搜索机制,保证种群的探索能力和种群的多样性,以此种方式来平衡算法的探索和开发能力.测试结果表明,基于反向学习的人工蜂群算法在精度和速度方面均优于ABC算法.

1标准人工蜂群算法

人工蜂群算法区别于其他群智能算法最显著的特点在于蜂群角色的转换,在ABC算法中,蜜源的位置代表空间中的解,花粉量代表解的适应度.蜜蜂分为三类,分别是雇佣蜂、跟随蜂、侦察蜂,其中雇佣蜂和跟随蜂各占蜂群数量的近一半,雇佣蜂记录当前最优解,跟随蜂负责在蜜源附近搜索新的解,侦察蜂负责当前蜜源枯竭时随机选取新的蜜源,进而避免陷入局部最优.

1.1蜂群初始化

对算法的基本参数进行设定.主要有蜜源i

(i=1,2,…,SN,SN为雇佣蜂或跟随蜂的数量),蜜源迭代阈值limit,种群最大进化次数MAXFE.设目标函数维度为D,即每个蜜源是一个D维向量,在某个蜜源i附近进行第t次采蜜的位置表示为Xti=xti1,xti2,…,xtiD,xtid∈(mind,maxd).其中,mind,maxd分别表示第d维搜索空间的下限和上限,d=1,2,…,D.蜜源i的初始位置由(1)式生成:

x0id=mind+rand(0,1)(maxd-mind).(1)

初始化蜜源位置由(1)式对每个维度d随机生成.

1.2雇佣蜂阶段

在搜索开始阶段,雇佣蜂在蜜源i的附近根据式(2)产生一个新蜜源:

xtid=xtid+φ(xtid-xtjd).(2)

其中,d为[1,2,…,d的随机数,代表着随机对某一维度进行搜索.j=1,2,…,SN,且j≠i,即j为不同于i的蜜源,φ为[-1,1]的均匀分布随机数,决定个体信息受其他个体影响的程度.通过(2)式得到新的蜜源后,计算其适应度fit,利用贪婪选择策略对新旧蜜源择优选取.为不失一般性,以最小化优化问题为例,适应度函数为:

fiti=1/(1+fi),fi≥0,

1+abs(fi),fi<0..(3)

其中,fi为目标函数值.

1.3跟随蜂阶段

所有雇佣蜂获得各自优质蜜源位置信息后,回到蜂巢,分享蜜源信息,跟随蜂依据(4)式计算概率,进行跟随.

Pi=fiti∑SNi=1fiti.(4)

跟随蜂采用轮盘赌的方式决定其所跟随的雇佣蜂,即首先按照均匀分布在[0,1]生成一个随机数r,然后选择首个满足r

1.4侦察蜂阶段

当某个蜜源经过多次开采却没有得到更新时,即没有得到更好的解,而迭代次数达到蜜源开采阈值limit时,需放弃当前蜜源,雇佣蜂转变为侦察蜂,按照(1)式随机生成一个新的蜜源,同时对应的traili置零.

当达到指定进化次数后,整个蜂群采蜜工作结束,输出最终数据.

2基于反向学习的人工蜂群算法

2.1一般的反向学习机制

Rahnamayan[3]等人提出基于反向学习的差分进化算法,首次给出了反向学习的概念,其中对位数及对位点的定义如下:

定义1(对位数)对于给定的一个实数x∈[a,b],其对位数xop定义为

xop=a+b-x.(5)

同样地,在多维空间中对其进行推广.

定义2(对位点)设X=(x1,x2,…,xD)为D维空间中的一个点,其中xi∈[ai,bi],则其对位点Xop=(xop1,xop2,xop1…,xopD),各分量为

xopi=ai+bi-xi.(6)

根据对位点的定义,对更一般的反向优化过程可简述为:对于解空间中的所有解(即当前种所有个体群),进行对位操作产生同等数目的对位解(即生成对位种群),在两组解中选择出前SN(种群规模的一半)个优秀解组成新的一组候选解(即新的种群),进而提高了下一次寻优的初始解质量.一般的反向学习操作为:

xopj=rand(0,1)(minj+maxj)-xj.(7)

其中minj和maxj分别表示第j维搜索空间的下限和上限.

2.2依概率集体反向学习

蜜蜂是一种群居性动物,单个的蜜蜂具有较为简单的觅食行为,但在整个蜂群中,每个蜜蜂个体都会有社会性学习行为,从而能够采到更好的蜜源.然而蜜蜂在学习时,并没有充分利用蜂群整体的信息,僅利用个别个体信息指导蜜源的搜索.针对这个问题,本文提出了OABC算法,全体跟随蜂以一定的概率进行反向学习;加设动态扰动参数控制对位点邻域的范围,在保证一般的OBL扩大搜索区域优势的前提下,利用个体与群体信息,提高对位点的有效性,进而提高算法性能.

跟随蜂阶段反向学习过程对位搜索策略为:

Xopij=rand(0,R)(minj+maxj)-Xij.(8)

R=R1,it≤MaxIt/3

R2,MaxIt/3

R3,it≥2MaxIt/3.(9)

其中,Xij为第i个个体的第j维分量,Xopij为Xij关于种群几何中心的对位点,minj,maxj为当前种群第j维的下限和上限,rand(0,R)表示[0,R]间的均匀分布随机数,it为当前迭代次数,Max It为最大迭代次数.二维空间中操作过程见图1.阴影区域Xop*i即为对位点所处范围.图1跟随蜂阶段对位搜索示意图

OABC算法基本思想在于某一代跟随蜂阶段并未选择蜜源进行发掘,而是进行对位邻域反向学习,在新的反向学习过程中,充分利用蜂群信息(maxj以及minj)和个体信息(Xij)来确定对位点邻域的范围,并设置随机范围参数R,使得随着进化的进程,对位搜索的范围逐渐缩小,提高了对位点仍处于种群内的概率,从而提高收敛速度.在算法初期,R取值较大,对位邻域的搜索范围相应较大,尽管对位点优于当前点的概率可能没有得到提高,但增加了找到更具潜力区域的可能性.随着迭代的进行,R逐渐变小,这样就保证算法在对位点附近搜索,使得新的种群在潜力区产生.当R足够小后,个体仅向当前个体关于种群几何中心的对位点学习,并且不断的优化使得对位点在当前个体足够小的邻域内,亦即可看作是一次蜜源的开发,从而提高算法的开发能力.标准ABC在探索方面有着出色的表现,因此OABC算法仍然保留标准ABC算法的引领蜂和侦察蜂阶段来保证算法的探索能力.

2.3算法流程

OABC算法沿用标准的ABC算法框架,主要不同点在于跟随蜂阶段以一定的概率执行反向学习,本文仅给出跟随蜂阶段伪代码,标准ABC算法参阅文献[14].

3仿真实验结果与分析

3.1测试函数与参数设置

验证OABC算法的性能,比较OABC算法和ABC算法的性能.表1给出了本文所用测试函数的编号、名称、搜索空间范围和最优值.U表示单峰函数,M表示多峰函数,S表示可分函数,N表示不可分函数.

确定算法发挥最佳性能时Jr的选取,首先研究进行反向学习的控制参数Jr对OABC算法性能的影响.分别用Jr=0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0对前6个基准函数进行测试.ABC算法可以看作是OABC算法的一种特殊情况,即当Jr=0时,算法的跟随蜂阶段进行反向学习的概率为0,也就是说在所有代搜索中,跟随蜂完全执行标准ABC跟随蜂的操作,此时整个算法即为标准ABC算法.

所有的测试均进行FES=105次函数评价,种群规模为100(SN=50),最大循环代数设置为Max It=1 000,蜜源迭代阈值limit=0.6*ndim*SN,其中ndim为维度,邻域扰动参数R1=1,R2=10-2,R3=10-7.每个算法独立运行30次,通过实验获取每个测试函数的平均值(Mean)和标准差(SD).平均值反映在一定的评价次数下算法所能到达的平均精度,体现算法的收敛性能;标准差反映算法的稳定性.

3.2实验结果及分析

OABC算法的参数Jr对新的候选解搜索是否充分利用种群整体信息起着重要的控制作用.当参数Jr从零增加到一定值时,OABC算法提高了利用种群整体信息的能力,使得开发能力增强,探索能力相对降低.表2和表3给出了前6个函数在不同Jr值下的优化结果.

将6个函数的测试结果根据Jr的变化绘制成图,通过图2-图7可以观察到:

(1)对于六种函数优化,随着参数Jr值的增加,优化函数的最优均值首先减小,表示解变好,然后在某一点开始增大,表示解变差.

(2)Sphere函数、Schwefel2.22函数、Rosenbrock函数以及Ackley函数均在Jr=0.2时取得最小值,Quartic函数虽然不在0.2处取得最小值,但其优化幅度已经大幅降低,表明额外的反向学习不再对提升算法的收敛性能有明显作用.Rastrigin函数在Jr=0.1时取得最优值,在Jr=0.2时的最优值也优于标准ABC最优值.

(3)当Jr=1.0时大部分最优值都要高于标准ABC最优值,这是因为种群信息利用过度,算法的探索能力下降,整体易陷入初期种群的几何中心,致使收敛精度下降.因此,此算法进行反向学习的参数取Jr=0.2.对其余四种函数进行优化,并将十组数据整合,见表4.

实验数据表明,在测试得到的十组数据中,OABC算法的结果均要优于标准ABC算法,表明增设邻域控制参数的反向学习方法能够提升标准ABC算法的性能;种群整体信息对算法的提升起着重要的作用,甚至是对Griewank函数的优化已经取得了最优值.OABC算法具有寻优能力,对单峰函数Sphere,Schwefel2.22,Quartic,Rosenbrock以及多峰函数Rastrigin,Ackley,Weierstrass,Michalewicz,Himmelblau均有不同程度的提升,验证了OABC算法在搜索精度方面的有效性.

进一步研究改进方案对算法收敛速度的影响,将几种函数优化过程绘制成图,见图8-图13.从图中能观察到:

(1)算法在初期的收敛趋势与标准ABC算法趋势非常相似,这是因为在算法初期,完全采用一般的反向学习,并没有提高对位个体更优的几率,主要保证了能够探索到解的潜在区域,因此收敛的趋势是基本相同的.

(2)Sphere函數、Rastrigin函数、Griewank函数以及Ackley函数在进化到350代左右时,收敛速度迅速提升,这与设定的扰动控制参数R相关.R的下降使得搜索在潜在区域更小的范围内进行,从而有效地提高了收敛速度.Quartic函数和Rosenbrock函数并没有出现类似的情况,这可能与函数的性质有关,但仍可以看到其最优值仍在变化,故所提出的改进方式仍具有寻优潜力.

4总结

本文提出基于反向学习的人工蜂群算法(简称OABC算法).OABC算法在一般的反向学习基础上,设置对位邻域扰动控制参数,调整反向学习的范围,并在标准ABC算法跟随蜂阶段依概率执行,强化个体对种群信息的利用,从而提高算法的开发能力,且没有增加额外的评价次数.OABC算法为保证算法的探索能力,仍然采用标准ABC算法的雇佣蜂和侦察蜂策略.几种基准函数的仿真实验表明,OABC算法能够平衡算法的开发和探索能力,更容易找到最优解,收敛精度更高,收敛速度更快.

参考文献

[1]Karaboga D.An idea based on honey bee swarm for numerical optimization,Technical Report-TR06 [R].Kayseri:Erciyes University,2005.

[2]Guopu Zhu,Sam Kwong.Gbest-guided artificial bee colony algorithm for numerical function optimization[J].Applied Mathematics and Computation.2010,217(7):3166-3173.

[3]罗钧,李研.具有混沌搜索策略的蜂群优化算法[J].控制与决策.2010,25(12):1913-1916.

[4]毕晓君,王艳娇.加速收敛的人工蜂群算法[J].系统工程与电子技术,2011,33(12):2755-2761.

[5]Li Z,Wang W,Yan Y,et al.PS-ABC:A hybrid algorithm based on particle swarm and artificial bee colony for high-dimensional optimization problems[J].Expert Systems with Applications,2015,42(22):8881-8895.

[6]王志刚,尚旭东,夏慧明,等.多搜索策略协同进化的人工蜂群算法[J].控制与决策,2018,33(2):235-241.

[7]Cui L,Zhang K,Li G,et al.Modified Gbest-guided artificial bee colony algorithm with new probability model[J].Soft Computing,2018,22(7):2217-2243.

[8]S.Rahnamayan,H.R.Tizhoosh,MA.Salama,Opposition-based differential evolution[J].IEEE Transactions on Evolutionary Computation,2008,12(1): 64-79.

[9]暴勵,曾建潮.一种双种群差分蜂群算法[J].控制理论与应用,2011,28(2):266-272.

[10]Weifeng Gao,Sanyang Liu.Improved artificial bee colony algorithm for global optimization[J].Information Processing Letters.2011,111(17):871-882.

[11]Weifeng Gao,Sanyang Liu.A modified artificial bee colony algorithm[J].Computers & Operations Research,2012,39(3):687-697.

[12]Weifeng Gao,Sanyang Liu,Lingling Huang.A global best artificial bee colony algorithm for global optimization[J].Journal of Computational and Applied Mathematics,2012,236(11):2741-2753.

[13]Wei-feng Gao,San-yang Liu,Ling-ling Huang.A novel artificial bee colony algorithm based on modified search equation and orthogonal learning[J].IEEE transactions on cybernetics.2013,43(3):1011-1024.

[14]Karaboga D,Akay B.A comparative study of artificial bee colony algorithm[J].Applied Mathematics and Computation,2009,2(14):108-132.

编辑:琳莉