基于适应度分组的多策略人工蜂群算法

2022-09-16 06:34周新宇胡建成吴艳林钟茂生王明文
模式识别与人工智能 2022年8期
关键词:蜜源适应度全局

周新宇 胡建成 吴艳林 钟茂生 王明文

在科学研究和工程应用中,很多实际问题可转化为优化问题进行求解,但其中大部分问题都是高度复杂的,通常有非凸、多峰、强约束等特点,致使一些经典的最优化方法往往难以求解[1-2].近年来,一些基于进化优化的方法表现出良好的求解性能,它们对优化问题的数学性质要求不高,甚至可作为一类黑盒优化工具直接使用.在这类方法中,进化算法是核心,它通过模拟自然界中的生物进化行为实现寻优.作为一类算法,进化算法包含多种不同的算法范例,常见的有:遗传算法(Genetic Algorithm, GA)[3]、粒子群优化算法(Particle Swarm Optimiza-tion, PSO)[4]、差分进化算法(Differential Evolution, DE)[5]、人工蜂群算法(Artificial Bee Colony, ABC)[6]等.

ABC模拟自然界中蜂群的智能采蜜行为,通过不同种类蜜蜂的分工协作寻找含量最多的蜜源地,即找到优化问题的最优解.相比GA、PSO、DE,ABC的性能相当,具有竞争力[7],并且结构简单、控制参数较少.近年来,ABC受到相关领域中众多研究人员的密切关注,相继提出很多关于ABC的算法改进和应用方面的研究工作.目前,ABC已成功应用于求解多种不同的实际优化问题,包括:流水车间调度问题[8]、服务计算优化问题[9]、投资组合优化问题[10]、人群疏散路径规划问题[11]、特征选择问题[12]、图像分割问题[13]、网络负载均衡问题[14]等.

然而,ABC在求解复杂优化问题时,性能受到严重挑战,主要表现为求解精度不高、收敛速度较慢.为此,研究人员提出很多相关改进策略,并指出导致ABC性能受限的一个主要原因是其解搜索方程的勘探能力过强,而开采能力不足.这些相关改进策略可大致分为两类:1)如何利用种群中的最优个体或精英个体设计新的解搜索方程.Zhu等[15]提出GABC(Gbest-Guided ABC, GABC),在解搜索方程中把种群的最优个体Gbest添加为引导项.周新宇等[16]提出邻域搜索的ABC,在环形邻域拓扑结构中选择最优个体进行开采,利用邻域信息引导算法搜索.Cui等[17]设计基于精英个体引导的解搜索方程,把具有较好适应度的若干个体视为精英个体,再从中任选一个精英个体作为解搜索方程的目标个体.2)如何利用不同的解搜索方程设计多策略机制.Wang等[18]提出多策略集成的改进ABC,采用3种不同的解搜索方程,用于构建策略候选池,在初始化阶段为个体随机分配一种解搜索方程,再根据子代个体质量动态选择不同的解搜索方程.Xiang等[19]提出ABCG,在雇佣蜂阶段引入引力模型,选择引力最大的邻域个体生成后代个体,而在观察蜂阶段采用随机引导方式、反向学习、重新初始化三种策略.Chen等[20]将3种解搜索方程集成到ABC中,提出自适应多策略机制,每个个体可自适应地选择其中的一种策略.

上述两类策略可有效提高ABC性能,并为设计新的策略提供有益借鉴,但这些工作还存在一定的局限性:1)虽然利用精英个体引导搜索可加快算法的收敛速度,但未考虑种群中占多数的非精英个体,在一定程度上容易导致种群陷入局部最优;2)大部分的多策略机制是以算法的历史经验选择策略,即把以往迭代的策略成功率作为后续策略选择的概率,但当问题的适应度地形非常崎岖时,这种历史经验往往不准确.因此,本文提出基于适应度分组的多策略ABC算法(Multi-strategy ABC Based on Fitness Grouping, MABC-FG).一方面,在利用精英个体引导搜索的同时,考虑种群中占多数的非精英个体,设计4种精英个体与非精英个体结合的解搜索方程;另一方面,从个体层次出发选择策略,根据适应度对种群进行分组,为不同分组的个体分配具备不同搜索能力的解搜索方程,使不同个体产生不同的搜索行为,平衡算法的勘探能力和开采能力,达到有效提高ABC性能的目的.为了验证本文算法性能,在CEC2013 (2013 IEEE Congress on Evolutionary Computation)、CEC2015 (2015 IEEE Congress on Evolu- tionary Computation)测试集及调频声波合成问题上进行实验,结果表明本文算法性能较优.

1 经典人工蜂群算法

经典ABC[21]是根据蜜蜂寻找蜜源的搜索过程提出的一种进化算法.在算法中有3种蜜蜂:雇佣蜂、观察蜂、侦察蜂,这3种蜜蜂相互分工和合作,寻找更好的蜜源.首先,雇佣蜂负责在蜜源周围搜索新的蜜源,并且完成搜索后将蜜源位置、蜜量等信息分享给观察蜂.然后,观察蜂根据雇佣蜂分享的信息按照一定的概率选择某一个蜜源继续进行开采,如果该蜜源的蜜量越多,被选择的概率越高.最后,如果某一蜜源连续limit次仍未更新,该蜜源就会被抛弃,侦察蜂负责重新随机搜索一个新的蜜源代替被抛弃的蜜源.值得注意的是,雇佣蜂的数目、观察蜂的数目和蜜源的数目是相同的,侦察蜂只有一只,蜜源对应优化问题的候选解,蜜源的蜜量对应优化问题的适应度值.

经典ABC采用随机初始化种群开始迭代搜索,设蜜源的规模为SN,其中,蜜源

Xi=(xi,1,xi,2,…,xi,D)

表示一个候选解,第i个蜜源的第j个维度

(1)

1)雇佣蜂阶段.在该阶段,每只雇佣蜂在对应的蜜源Xi处,根据

vi,j=xi,j+φi,j(xi,j-xr,j)

产生一个新的蜜源Vi=(vi,1,vi,2,…,vi,D),其中,Xr表示种群中随机选择的一个蜜源,r=1,2,…,SN,满足i≠r,φi,j表示[-1,1]内均匀分布的随机数.依据贪婪选择机制,当候选蜜源Vi的蜜量更多,即适应度值更优,替换蜜源Xi.

2)观察蜂阶段.所有雇佣蜂完成搜索后,观察蜂根据收到的信息,选择一个蜜源继续进行开采.第i个蜜源被选择的概率为:

(2)

其中,fiti表示第i个蜜源的适应度,

(3)

fi表示第i个解的目标函数值.适应度越高的蜜源被选择的概率越大.

3)侦察蜂阶段.在上面两个阶段完成之后,如果某一蜜源连续limit次开采仍未更新,说明该蜜源已被开采耗尽.在这种情况下,该蜜源将被舍弃,并根据式(1)产生一个新的蜜源替换它.

2 基于适应度分组的多策略人工蜂群算法

2.1 适应度分组机制

从多策略集成的ABC的相关研究中,本文发现这些算法通常对种群中的每个个体都一视同仁,但是从个体层次上看,个体之间存在优劣差异,这种差异可根据适应度值衡量,这种差异也可粗略地在适应度地形的位置分布上得到体现.一般而言,较好的个体可能离局部最优解或全局最优解更近,而较差的个体可能离局部最优解或全局最优解更远.因此,较好的个体更适合进行开采,而对于较差的个体应更注重勘探.因此,本文从个体层次出发,在设计多策略机制时,根据适应度将种群分成3个具有不同特性的组.具体地,本文按照个体的适应度对种群排序,适应度最好的个体排在第一位,适应度最差的个体排在最后一位.将种群中前三分之一的个体划分到A组,三分之一到三分之二的个体划分到B组,最后三分之一的个体划分到C组.此过程如图1所示.

图1 种群划分示意图

根据上述种群划分过程可得出如下结论:1)A组中个体的适应度值均优于其它两组中个体,此时A组中的个体很可能离局部最优解或全局最优解更近,因此A组应注重开采;2)C组中个体的适应度值均差于其它两组中的个体,相对而言,C组的个体很可能离局部最优解或全局最优解更远,因此C组应注重勘探;3)B组中个体的适应度值比A组差,但比C组好,因此对于B组中的个体而言,应注重开采与勘探的平衡.综合来看,A组注重开采,B组注重开采与勘探的平衡,C组更注重勘探.通过这种划分方式,不同分组中的个体可表现出不同的搜索行为,对于整个种群而言也能有效平衡勘探与开采.需要注意的是,考虑到观察蜂是负责开采更好蜜源的这一特性,在观察蜂阶段不使用适应度分组机制,而继续只使用具有较强开采能力的解搜索方程.为了完成这一目标,本文为观察蜂阶段专门设计一个解搜索方程.

为了更直观地说明各组成员的位置分布特点,以二维的Shekel′s Foxholes函数为例具体说明.该函数有24个局部极值点和1个全局最优点

f(-32,-32)=0.998,

搜索范围为[-65.536,65.536]2,具体定义可参考文献[22].此例中种群规模为30.

图2分别表示算法第1、5、20代的种群分布图,图中△表示A组个体,▲表示整个种群的最优个体,○表示B组个体,*表示C组个体.由图可看出,在第1代,3组个体在搜索空间中随机分布.第5代后,算法已找到全局最优解,大多数A组个体和B组个体已靠近极值点,C组也聚集在极值点附近.在第20代,A组个体已全部聚集在全局最优点,C组个体仍分散在各个极值点,使整个种群保持较好的勘探能力.

(a)第1代

通过该例可知,A组能快速找到最有潜力的搜索区域,B组跟随A组进行细粒度搜索,C组负责在全局区域搜索,这三组相互配合、缺一不可.

2.2 多策略机制

针对每个分组的不同特性,本文引入多策略的思想,为不同分组的个体设计具备不同搜索能力的解搜索方程,具体操作如下.

针对A组个体注重开采的特性,设计的解搜索方程如下:

vi,j=xi,j+α(xbest,j-xi,j)+α·rand·(xi,j-xr1,j).

(4)

其中:α表示新引入的扰动参数,

MaxFEs表示适应度函数的最大评价次数(Maximum Number of Function Evaluations),FEs表示已使用的评价次数;Xbest表示全局最优个体,Xr1表示随机选择的一个个体,

i∈A,r1=1,2,…,SN,i≠r1≠best;

rand为[0,1]内均匀分布的随机数;j=1,2,…,D为随机选择的一个维度.式(4)的目的是使搜索范围集中在精英个体周围,并且为了防止陷入局部最优,在种群中随机选择一个个体作为扰动个体,提供一定的多样性.与此同时,引入扰动参数α,目的是为了在进化过程中动态平衡勘探与开采.在算法初始阶段,α值接近于1,此时个体的搜索范围较大,适合进行全局搜索,可增加种群多样性.随着迭代次数的增加,搜索范围会适当减小,有利于加快种群收敛.但注意到,当α接近于0时,会使Vi接近于Xi,即父代几乎将全部信息遗传给子代,不利于种群进化.因此,为了保证个体在算法后期的搜索范围不至于过小,本文将α的最小值设置为0.1.

针对B组中的个体兼顾勘探与开采的特性,解搜索方程如下:

(5)

其中,Xelite1∈A,Xr2=1,2,…,SN,i≠r1≠r2≠elite1,jrand表示随机选择的一个维度,α表示扰动参数,CR表示控制参数.式(5)中引入A组中的个体引导搜索.

此外,为了使B组具有更好的全局搜索能力,在种群中随机选择两个个体作为扰动项,引入控制参数CR,使个体每次迭代以一定的概率更新多个维度.显然相对A组的解搜索方程,该解搜索方程更偏向于勘探.

针对C组中的个体注重全局勘探的特性,解搜索方程设计如下:

vi,j=xi,j+rand·(xelite1,j-xi,j)+

α·rand·(xelite2,j-xw,j),

(6)

其中,Xelite1∈A,Xelite2∈A,Xw∈C,i≠w≠elite1≠elite2,α表示扰动参数,与式(4)相同.为了更有效地利用劣势个体的信息,C组中每个个体每次迭代均会更新所有维度,同时为了防止后期收敛过慢,还引入A组中的个体引导搜索.

ABC中雇佣蜂主要负责勘探新的蜜源,观察蜂负责针对适应度较好的蜜源进行局部开采,它们具有不同的分工.在经典ABC中,这两个阶段使用同一解搜索方程.在经典解搜索方程中,受随机选择的个体影响,种群在搜索过程中具有很强的随机性,影响算法的整体性能.为了克服该缺点,本文在观察蜂阶段设计解搜索方程,引入全局最优个体和精英个体,有利于目标个体移动到适应度更好的搜索区域,具体如下:

vi,j=xi,j+rand·(xelite,j-xi,j)+

rand·(xbest,j-xr1,j),

(7)

各个变量含义同上,需要注意的是

elite≠best≠r1≠i.

为了加强观察峰阶段的局部开采能力,引入全局最优个体和精英个体作为扰动个体引导搜索,使目标个体向精英个体和全局最优个体所在区域移动,加强对适应度值较好的区域进行搜索,并且为了防止算法太过于贪婪,引入随机个体,增加一定的多样性.

总之,在观察蜂阶段,通过全局最优个体、精英个体和随机个体这3种不同个体之间的协同合作,增强算法的局部开采能力,同时也确保算法具有一定的全局勘探能力.

2.3 算法步骤

本文算法的伪代码如下.

算法MABC-FG

输入种群规模SN,控制参数limit,

维度控制参数CR,

适应度函数的最大评估次数MaxFEs

输出全局最优个体Xbest

对输入参数进行初始化.

由式(1)产生初始种群,计算每个个体的适应度值.

令triali=0,FEs=SN.

while (FEs<=MaxFEs) do

//雇佣蜂阶段

根据个体的适应度值将种群划分为3组.

fori=1 toSNdo

根据个体Xi所在的分组,选择式(4)~式(6),产生候选个体Vi.

如果f(Vi)

否则,令triali=triali+1.

end for

FEs=FEs+SN.

//观察蜂阶段

按式(2)和式(3)计算个体被选中的概率pi.

fori=1 toSNdo

ifpi>rand(0,1) then

根据式(7)产生候选个体Vi.

如果f(Vi)

否则,令triali=triali+1.

end if

end for

FEs=FEs+SN.

//侦察蜂阶段

fori=1 toSNdo

iftriali>limitthen

根据式(1)重新生成Xi,令triali=0.

FEs=FEs+1.

end if

end for

end while

3 实验及结果分析

在测试函数方面,本文选取2套权威的测试函数:CEC2013测试集[23]和CEC2015测试集[24].这两套测试函数都是求解难度较高的测试集,涵盖偏移、旋转和复合等多种复杂测试问题,常用于验证优化算法的性能.

为了公平起见,本文将各算法中用到的公共参数进行统一设置,其余参数均参照相应算法的原始文献设置.实验参数设置如下:测试函数的维度D=30,50,对应的两套测试函数的最大评价次数MaxFEs=10000D.在所有实验中,每种算法独立运行30次,给出30次运行的平均结果和标准差.实验结果分析采用Wilcoxon秩和检验和Friedman检验,显著性水平均设置为0.05.

3.1 参数敏感性分析

在本文提出的多策略机制中,针对B组个体的特性,引入参数CR控制子代个体可更新维度.一般而言,越小的CR值会使子代个体可更新的维度越少,从父代个体中获取越多的信息.但越大的CR值会使子代可更新的维度越多,搜索范围也会越大.因此,CR值的选取会对算法性能具有一定影响.

本节选取CR=0.1,0.3,0.5,0.7,0.9这5个典型值进行测试,均在CEC2015测试集上进行实验,测试函数维度设置为30.实验结果如表1所示,表中黑体数字表示最优值,Best表示最优值的数量,同时给出Friedman检验的结果.

由表1可看到,当CR=0.1和CR=0.7时,算法性能最优.但是:当CR=0.1时,算法在7个函数上取得最优值;当CR=0.7时,算法只在3个函数上取得最优值.可能的原因是,当CR=0.1时,B组中个体可从父代中继承更多的维度,而B组中个体都是适应度值相对较好的个体,有较好的引导作用,能使算法的性能更优.综合考虑下,本文设置CR=0.1.

表1 CR不同时本文算法在CEC2015测试集上的实验结果

种群规模的大小也影响算法性能,种群规模越大,越适合全局勘探;反之种群规模越小,越适合局部开采.因此,选择一个合适的种群规模至关重要.一般而言,不同的改进ABC通常会采用不同的SN,本文选择SN=20,30,40,50,100这5个典型值.具体实验结果如表2所示,表中黑体数字表示最优值.

由表2可看出,SN=50时,算法在10个函数上取得最优且综合排名也是最优,而SN=20和SN=100时,算法只在1个函数和3个函数上表现最优.这是因为当种群规模过大时,算法会过度偏向于勘探,而种群规模过小时,算法会过度偏向于开采,使算法性能下降.当SN=50时,种群规模适中,有利于平衡算法的勘探与开采.综上所述,本文设置SN=50.

表2 SN不同时本文算法在CEC2015测试集上的实验结果

参数limit控制侦察蜂阶段的执行频率,limit越大,侦察蜂阶段的执行频率越低,种群越容易陷入局部最优.limit越小,侦察蜂阶段的执行频率越高,影响算法的收敛.所以limit取值对算法性能也会有一定的影响.与种群规模SN类似,不同的改进ABC通常会采用不同的limit,本文设定limit=100,200,SN·D.具体实验结果如表3所示,表中黑体数字表示最优值.由表可知,当limit=200时,算法在8个函数上取得最优,当limit=100和limit=SN·D时,算法分别在7个函数和5个函数上取得最优.从结果上看,当limit=100和limit=200时,算法整体性能相当,但是在F06~F15复杂函数上,当limit=200时,算法取得7个最优值,而当limit=100时,算法取得5个最优值.这说明当limit过小时,侦察蜂阶段执行的频率过高,会破坏算法已获得的搜索经验算法,降低算法求解复杂问题的性能.从整体的排名上看,limit=200时排名第一,说明limit=200使算法的整体性能更优,因此,本文设置limit=200.

表3 limit不同时本文算法在CEC2015测试集上的实验结果

3.2 策略有效性验证

相比ABC,本文主要提出两点改进:在雇佣蜂阶段采用基于适应度分组的多策略机制;在观察蜂阶段采用基于全局最优个体与精英个体的解搜索方程.为了分别验证这两点改进之处对算法性能的影响,设计如下对比算法:1)在ABC的基础上,仅将基于适应度分组的多策略机制引入雇佣蜂阶段,而其它部分与ABC保持相同,该对比算法记为MABC-FG-1;2)在ABC的基础上,仅将基于全局最优个体和精英个体的解搜索方程引入观察蜂阶段,而其它部分与ABC保持相同,该对比算法记为MABC-FG-2.此外,ABC作为对比基准也加入对比实验.

实验在CEC 2015测试集上进行,测试函数维度设置为30.结果如表4所示,表中符号“+”、“-”、“≈”分别表示MABC-FG优于、弱于、相似于对比算法.由表可看出,MABC-FG-1没有在一个函数上优于MABC-FG,这是因为MABC-FG-1的观察蜂阶段仍使用经典解搜索方程,不能确保随机选择的个体好坏,使MABC-FG-1在3个函数上弱于MABC-FG.MABC-FG在9个函数优于MABC-FG-2.由此说明,适应度分组机制能显著提高种群的搜索效率.注意到MABC-FG-2的总体表现不如ABC,这是由于观察蜂阶段的主要作用是开采精英个体,而MABC-FG-2的雇佣蜂阶段依旧使用经典解搜索方程产生候选个体,随机性较强,找到的个体往往适应度不好.

表4 策略有效性验证结果

总之,MABC-FG的综合表现优于仅有一点改进之处的对比算法,这也说明MABC-FG的两点改进之处是一个整体、缺一不可.尽管上述实验可验证本文策略的有效性,但还不足以说明MABC-FG性能较优.

3.3 实验结果对比

本节选择近年来提出的5个相关改进ABC作为对比算法:1)LL-ABC[10].基于方向信息和精英机制的ABC.2)ABCG[19].基于引力模型的ABC.3)iqABC(Improved Quick ABC)[25].4)MGABC[26].基于多精英引导的ABC.5)ECABC[27].基于精英群引导和广度-深度搜索结合的ABC.LL-ABC、iqABC、MGABC都涉及对解搜索方程进行改进,ECABC、ABCG都融入多策略的思想.

当D=30,50时,各算法在CEC2013测试集上的实验结果如表5和表6所示.由表5可看出,当D=30时,MABC-FG在绝大多数函数上的性能最优.从Freidman测试结果可看出,MABC-FG的综合表现排名第一.具体来说,在F01~F05单峰函数上,MABC-FG在F05上弱于MGABC、ABCG和ECABC,在F01和F02上弱于MGABC.这是因为MGABC在侦察蜂阶段完成之后,增加一个对全局最优个体进行邻域搜索的过程,有效提高算法的开采能力.而MABC-FG利用不同组之间的分工合作进行搜索,并未完全依赖于全局最优个体.客观来说MABC-FG的开采能力稍弱于MGABC.对于单峰函数,因为函数只有一个全局最优解,适应度地形较平滑,使MGABC在该类问题上表现较优.在F06~F20多峰函数中,MABC-FG在F07、F09、F12、F13、F15、F20函数上最优,在其余的函数上也有较优性能.在F21~F28组合函数上,MABC-FG在F23、F24、F25函数上最优,在其余的函数上也表现不错.这是因为MABC-FG中的基于适应度分组机制发挥重要作用,在该机制中C组个体的作用主要是进行勘探,可提高算法跳出局部最优解的能力,并且A组的个体专注于开采,有利于提高算法的开采能力.所以在多峰问题和复杂问题上,MABC-FG具有较优性能.总之,MABC-FG在这三种类型的函数上都具有很强的竞争力.

表5 D=30时各算法在CEC2013测试集上的实验结果

表6 D=50时各算法在CEC2013测试集上的实验结果

由表6可看出,当D=50时,MABC-FG综合表现依旧排名第一,即在绝大多数函数上仍保持领先.此外,从Freidman测试结果可看出,MGABC综合性能排名第二.MGABC使用多精英引导机制,具有较强的开采能力,在高维问题上性能较优.LL-ABC综合性能排名第三,这可能是由于方向信息能明确种群个体每步移动的优劣,判断下一步个体走向,特别在高维问题上表现明显.

为了进一步验证MABC-FG的性能,在CEC2015测试集上继续实验,当D=30,50时的实验结果如表7和表8所示.

表7 D=30时各算法在CEC2015测试集上的实验结果

表8 D=50时各算法在CEC2015测试集上的实验结果

由表7可看出,MABC-FG的综合排名依旧第一,在F01和F02单峰函数上,MABC-FG在F01函数上除了与MGABC性能相当,优于另外四种算法,在F02函数上,MABC-FG弱于LL-ABC和iqABC.在F03~F05多峰函数上,MABC-FG的实验结果全部优于或相似于其它算法.在F06~F15复杂函数上,MABC-FG也具有较优性能,仅在F14函数上弱于ABCG、LL-ABC和iqABC.此外,ECABC和MGABC没有在一个函数上优于MABC-FG.这是因为MABC-FG是从个体层面上设计多策略机制,不同分组都具有不同特性,在处理复杂问题时,不同分组分工明确、相互合作,提升性能.

由表8可看出,MABC-FG在D=50时依旧保持领先地位.Friedman检验结果中MABC-FG综合表现排名第一,即随着问题维度的提升,MABC-FG依然具有较好性能.

由表5~表8的统计结果可看出,无论是在单峰函数上还是多峰函数上,MABC-FG综合表现最优,尤其在CEC2015测试集上更明显.这说明雇佣蜂阶段使用的基于适应度分组的多策略机制和在观察蜂阶段设计的由全局最优个体和精英个体引导的解搜索方程相互配合,能明显提升ABC的性能.

总之,上述实验验证MABC-FG的性能具有较强的竞争力,原因如下:1)雇佣蜂阶段将种群按照适应度分为A、B和C组,A组负责寻找优秀个体,B组负责使种群向精英群体移动,C组负责全局勘探并逐步向A组移动,同时C组能有效增加种群多样性,三组分工明确、相互配合,能有效平衡勘探与开采.2)观察蜂阶段使用全局最优个体和精英个体引导种群搜索,这些个体由于具有良好的适应度,因此其区域具有很高的开采价值,在这些区域搜索能提高搜索效率.

3.4 运行时间对比

相比ABC,MABC-FG主要是在雇佣蜂阶段对种群中的个体进行排序,会消耗一定的计算资源.为了更准确地评估MABC-FG的运行时间,本节给出算法的时间复杂度和实际CPU运行时间.设种群规模为SN,问题维度为D,在一次迭代过程中,对种群个体进行适应度排序的时间复杂度为O(SN·log(SN)).因为ABC的时间复杂度为O(SN·D),所以MABC-FG的整体时间复杂度为

O(SN·log(SN)+SN·D).

考虑到D通常情况下会远大于log(SN),则MABC-FG和ABC的时间复杂度均为O(SN·D).

进一步分析MABC-FG的运行时间,记录其在CEC2013测试集上的实际CPU运行时间,并与3.3节的五种算法进行对比.为了确保公平对比,所有算法均在每个测试函数上独立运行30次,以平均CPU运行时间作为最终结果.

算法运行平台的配置信息如下:CPU Inter(R)Core i7-10700H,内存16 GB,操作系统Microsoft Windows 10 Professional,编程语言Java.

各算法的CPU运行时间如表9所示,表中Avg.为算法在28个测试函数上的总体平均时间,最后一行为总体平均时间的排名情况.由表可得,MABC-FG、iqABC、ECABC排在前三位,而LL-ABC、MGABC、ABCG排在后三位.从实验结果可知,MABC-FG无论在单峰函数、多峰函数、复杂函数上运行时间都较短,并且这种优势在复杂函数上更明显.这是因为MABC-FG并未引入过多的造成额外计算开销的操作.综上可知,MABC-FG在运行时间上同样也具有竞争力.

表9 D=30时各算法的CPU运行时间

3.5 在调频声波合成问题上的应用

本节选择一个实际优化问题测试MABC-FG.调频(Frequency Modulation, FM)声波合成在音乐领域中具有重要作用,调频合成器是一个6维高度复杂的多峰优化问题,数学表达式如下:

y(t)=a1sin(ω1tθ+a2sin(ω2tθ+a3sin(ω3tθ))),

y0(t)=

1.0sin(5.0tθ-1.5sin(4.8)tθ+2.0sin(4.9tθ)),

其中,θ=2π/100,X={a1,ω1,a2,ω2,a3,ω3}为问题的决策向量,ai和ωi的取值范围为[-6.4,6.35],i=1,2,3.

该问题优化的目标是y(t)尽可能接近y0(t),适应度函数为:

可以看出,函数的最优解f(Xbest)=0.在本次实验中,D=6,其余的参数设置和3.3节相同,记录30次运行结果.具体实验结果如表10所示,表中黑体数字表示最优值.由表可看到,MABC-FG的平均误差最小,综合表现最优.

表10 D=50时各算法在FM问题上的实验结果

4 结 束 语

为了克服经典ABC仅采用一种解搜索方程和对所有个体都一视同仁的缺点,本文提出基于适应度分组的多策略人工蜂群算法(MABC-FG).首先,根据个体适应度的大小将种群分为三组,针对每组特性,为每组个体设计不同特征的解搜索方程,更好地平衡整个种群的勘探和开采能力.此外,适应度较差的分组还兼有保持种群多样性的作用,各组之间并非相互独立,在勘探或开采的同时也向更优个体学习.与此同时,观察蜂阶段使用全局最优个体和精英个体引导种群快速向适应度值较好的区域移动,确保该区域被充分开采.为了验证MABC-FG的性能,设计5组不同的实验,验证本文策略的有效性,并通过对比实验验证本文算法具有较强的竞争力.今后将考虑把本文算法应用于求解更多的实际优化问题,如图像分割问题等.

猜你喜欢
蜜源适应度全局
领导者的全局观
林下拓蜜源 蜂业上台阶
给力的全局复制APP
指示蜜源的导蜜鸟
启发式搜索算法进行乐曲编辑的基本原理分析
基于改进演化算法的自适应医学图像多模态校准
蜜蜂采花蜜
再撑一下
基于人群搜索算法的上市公司的Z—Score模型财务预警研究
统筹全局的艺术