摘要

人工蜂群(ABC)算法是受蜜蜂智能觅食行为启发而产生的一种流行的群体智能技术。然而,ABC擅长勘探,但不擅长开发,其收敛速度在某些情况下也是一个问题。为了提高ABC算法的性能,提出了一种结合手榴弹爆炸法和柯西算子的新型ABC算法,即ABCGC。创业板嵌入旁观者阶段,提升ABCGC的开发能力,加速收敛;同时,将Cauchy算子引入到侦察蜂阶段,帮助ABCGC逃离局部最优解,进一步提高其探测能力。使用两组著名的基准函数来验证ABCGC的更好性能。实验证明,ABCGC明显优于ABC和其他竞争对手;特别是在大多数情况下,它更快地收敛到全局最优解。这些结果表明,ABCGC通常在开采和勘探之间实现了良好的平衡,可以有效地作为全局优化的替代方案。

1.简介

处理优化问题的算法可以根据其特征(如基于种群、随机、确定性和迭代)分为不同的组。一种使用一组解决方案并试图改进它们的算法称为基于人群的算法[1]. 两类重要的基于种群的优化算法是进化算法和基于群体智能的算法[2]. 群智能是一种基于自组织系统集体行为的创新人工智能技术[]. 最新的基于种群的方法之一是人工蜂群(ABC)算法[4]它模拟蜜蜂群在自然界寻找优质食物来源的智能行为。卡拉博加[4]首先在2005年提出ABC用于数值优化,然后是卡拉博加和他的合作者[59]应用它训练前馈神经网络,解决整数规划问题、数据聚类问题、约束优化问题和实际参数优化问题。他们的结果[2,46,811]证明了ABC算法概念简单,参数少,易于实现,比遗传算法(GA)、粒子群算法(PSO)、蚁群算法(ACO)和差分进化算法(DE)等基于种群的算法更有效。因此,作业成本法引起了人们的极大兴趣,并已成功地应用于各个领域[120].

勘探和开发是稳健搜索过程中极为重要的机制。探索是搜索空间以找到有希望的新解决方案的能力,而开发是在一个好的解决方案附近找到最佳方案的能力[9]. 不幸的是,ABC善于探索,但不善于开发,在某些情况下,其收敛速度也是一个问题[1218],所以它有很多变体[1,,79,1220]近年来,有人建议进一步提高ABC的绩效。例如[13]通过在解搜索方程中加入全局最优解的信息,引入了一种基于全局最优解指导的ABC算法(GABC),提高了算法的利用率;[14]提出了一种新的鲍威尔方法ABC(PABC);即修改了旁观者阶段的搜索方程,并进一步将Powell方法用作局部搜索工具,以提高搜索能力;[15]设计了一种结合最佳解、混沌系统和基于对立学习方法(ABCbest)的改进ABC,其中初始种群和侦察蜂是通过混沌系统与基于对立的学习方法相结合生成的,每只蜜蜂只搜索前一次迭代的最佳解,以提高利用率;[16]提出了一种基于改进搜索方程和正交学习(CABC)的新的ABC算法,该算法利用改进的搜索方程生成候选解,以提高ABC算法的搜索能力,正交实验设计用于形成变体ABC的正交学习策略,以从搜索体验中发现更多有用的信息;[17]开发了一种裸骨ABC(BABC),它使用高斯搜索方程在围观蜜蜂阶段产生一个新的候选个体,并将参数自适应策略和基于适合度的邻域机制集成到被雇佣蜜蜂阶段,以获得更好的性能;此外,该框架已应用于GABC[13],ABCbest[15]和CABC[16]相应的高级ABC分别称为BGABC、BABCbest和BCABC。实验表明,ABC变体具有竞争力和有效性。注意,大多数基于ABC改进的论文都试图提高本地搜索能力(即开发能力)[21]. 然而,对于所有优化问题,没有具体的算法能够实质上实现最佳解决方案。有些算法只能为某些特定问题提供比其他算法更好的解决方案。因此,寻找一种改进的或新的优化方法是非常必要的。

为了改善ABC在开发和探索之间的不平衡以及收敛速度方面的性能,我们注意到手榴弹爆炸法(GEM)[2225]它模拟了手榴弹爆炸的机制,通常比GA和ABC等其他方法更快地收敛到全局最小值。因此,首先提出了受创业板启发的两种ABC改进版本,即GABC1和GABC2,以增强基本ABC在[18]. 创业板嵌入GABC1的雇佣蜜蜂阶段,而嵌入GABC2的旁观者蜜蜂阶段。实验表明,在大多数情况下,GABC1的性能与GABC2相似或更好,但GABC2的性能比GABC1更稳健、更有效;他们的表现明显优于竞争对手。此外,基于Cauchy随机数的变异算子[26]即Cauchy算子,由于其跳转更长的概率更高,因此适用于全局搜索。因此,提出了一种将ABC、GEM和Cauchy算子相结合的混合算法ABCGC用于全局优化。创业板嵌入旁观者阶段,大大增强了ABCGC的开发能力,加速了收敛;同时,在侦察蜂阶段引入Cauchy算子,帮助ABCGC跳出局部最优,进一步提高其探测能力。为了评估该算法的性能,在ABCGC、ABC和8个ABC变体中测试了一组22个众所周知的基准函数。此外,使用一组6个经典函数将ABCGC与ABC和其他5种最先进的算法进行比较。此外,在相同的6种功能下,分析了每种修改对ABCGC性能的影响。

本文的其余部分组织如下。基本ABC在第节中介绍2.在第节中详细描述了该算法。第节对ABCGC、ABC和其他几种比较算法的性能进行了比较和讨论4最后,第节给出了结论和未来工作5

2.人工蜂群算法

一个蜜蜂群落设法发现了自然界中质量最高的食物来源。因此,ABC[4]借鉴蜜蜂智能觅食行为的概念,在优化问题中发现好的解决方案。在美国广播公司,人工蜜蜂群体包括三个群体:雇佣蜜蜂、旁观者和侦察蜜蜂。蜂群的前半部分由雇佣的蜜蜂组成,后半部分包括旁观者。被雇佣的蜜蜂搜索食物来源并分享这些食物来源的信息,以招募旁观者蜜蜂。旁观者蜜蜂根据与食物来源质量成比例的概率选择所有受雇蜜蜂找到的食物来源,并进一步开发选定的食物来源。童子军蜜蜂是从少数雇佣的蜜蜂中转换而来的,这些蜜蜂通过预定的周期放弃食物来源,称为限制并搜索新的。食物来源的位置代表优化问题的可能解决方案,食物来源的盈利能力与相关解决方案的质量(适合度)相对应。每一种食物来源都是由一只受雇的蜜蜂或旁观者开发的。换句话说,食物来源的数量等于雇佣蜜蜂的数量。

在优化开始时,初始填充包含解是随机生成的。是食物来源的数量。每种溶液(食物来源)()是一个-维向量和let代表人口中的第个食物来源,其中表示优化参数的数量(维度)。然后,位置的数量会经历重复的循环,,和最大循环数()被雇佣蜜蜂、旁观者和侦察蜜蜂的搜索过程。

在ABC中,适应度函数定义为哪里是解的目标函数值是的适应值

围观蜜蜂选择食物来源的概率可以表示为

在受雇蜜蜂发现或旁观者蜜蜂选择食物来源后他们利用邻近的食物来源仅通过更改的一个参数来确定即,,而其余的保持与相同的值由生成哪里是随机选择的索引必须不同于,是随机选择的维度,并且是范围内的随机数至1。请注意,在一只被雇佣或围观的蜜蜂确定其当前相关食物来源附近的新候选食物来源后(),贪婪的选择机制[811]在新食物源和旧食物源之间应用;也就是说,如果新的食物来源比旧的更好,它就会被替换掉。否则,旧的将保留在内存中。

如果废弃的食物来源据英国《每日邮报》报道,一只侦察蜂产生了一种新的食物来源哪里是变量的上下限分别为。

算法中概述了ABC的主要步骤和一些相关伪码1

步骤  1.预设控制参数值:D类,,,
步骤  2.使用(4)
步骤  .使用以下方法评估人口(1)
步骤  4
步骤  5.重复
步骤  6.为雇佣的蜜蜂生产新的食物来源并对其进行评估,
   然后应用贪婪选择过程蜜蜂就业期以下为:
    对于
     生产新的食物来源(基于,)使用()
     计算食物来源的适合度使用(1)
     在新旧食物来源之间进行贪婪选择
    结束
步骤  7.使用以下公式计算食物来源的概率值(2)
步骤  8.从食物来源为围观蜜蜂生产新的食物来源根据选择
   并对其进行评估,然后应用贪婪选择过程旁观者蜜蜂阶段以下为:
    对于
     如果
      生产新的食物来源(基于,)使用()
      计算食物来源的适合度使用(1)
      在新旧食物来源之间进行贪婪选择
     结束条件为
    结束
步骤  9.确定侦察蜂的废弃食物来源(如果存在),
   并用一个新的随机生成的替换它(4)侦察蜂阶段
步骤  10.记住迄今为止取得的最佳食物来源
步骤  11
步骤  12.直到

3.建议的算法ABCGC

在本节中,提出了基于GEM和Cauchy算子的基本ABC的改进版本ABCGC,以提高其性能。该算法遵循ABC的一般过程。ABCGC和ABC的本质区别在于它们的围观蜂和侦察蜂分别采用不同的开发和探索策略。也就是说,除步骤外,ABCGC的主要步骤与ABC相同.图1可视化ABCGC的框架。

3.1. 围观蜂的新开发策略

在美国广播公司,在一只旁观者蜜蜂选择食物来源后,它进一步开发了邻近的食物来源通过只更改一个参数来确定; 即,由生成(). 在(),修改自基于与相邻解中随机选择的位置的比较从中可以看出(),两者之间的差异是随机选择维度中的位置差是一个关键参数,因为它直接影响新食物来源的位置。然而,随机选择的维度可能并不总是引导ABC朝向食物源的更高拟合位置,导致收敛缓慢,甚至使搜索容易陷入局部最优。那么,在所有维度中,哪一个维度是围观蜜蜂更新新候选食物来源的最佳选择?

由Ahrari等人首次提出的GEM[22]2009年,受手榴弹爆炸机制的启发,物体被榴弹碎片击中。计算出每一片榴弹碎片撞击物体所造成的伤害。区域内每件物品的高损伤值表示该区域内有贵重物品。为了加强伤害,下一枚手榴弹被扔到伤害最大的地方。这个过程将导致找到投掷手榴弹的最佳地点。Ahrari等人[2225]使用一组经典的基准函数和一些随机生成的多模态函数来测试GEM的性能;结果表明,这种简单而稳健的方法通常可以很快地发现高拟合区域,并收敛到全局最小值的精确位置。

因此,将GEM引入到ABC的围观蜜蜂阶段,以选择最佳搜索维度,而不是为每个围观蜜蜂随机选择一个搜索维度,希望它们共同朝着最佳位置移动。在这里,由撞击造成的整体伤害被视为解决方案的“适用性”。请注意,每枚手榴弹的弹片数量应该足够大,以便可以探索更远的区域以获得新的高拟合区域,并且算法不会陷入局部最优。为了消除设置GEM参数的需要,只有一枚手榴弹,让手榴弹扔出去每个周期的弹片碎片。

在ABCGC的每个周期中,碎片被抛向所有维度(即每个维度仅被一枚碎片利用),以收集手榴弹当前位置周围的信息(旧食物来源);同时,每个围观蜜蜂计算每个弹片投掷的候选食物源,并评估相应的每种弹片的损伤值(适合度),然后决定损伤最大的新候选食物源(适合度最高),这意味着所选的最优搜索维度更快地偏向全局或近全局最优位置。因此,在ABCGC中,根据围观蜜蜂的最优搜索维,生成了一个新的候选解哪里是随机选择的索引;表示最佳搜索维度;是范围内的随机数至1;表示新的候选食物来源只是改变了旧食物来源的价值在尺寸上即,,而其余的保持与相同的值;含义与也表明获得维度的最大适应度而不是其他维度。

同样,在一只围观蜜蜂在其当前相关食物来源附近确定了一个新的候选食物来源后(5)和(1)在新旧食物源之间应用贪婪选择机制。

根据上述解释,步骤的伪码算法中给出了ABCGC的2(与ABC的主要区别以粗体突出显示)。

步骤  8为每只观测者蜜蜂在每种相关食物的各个维度上生产和评估新的食物来源
   根据信源的概率确定最优搜索维数()和最好的新
   候选食物来源使用(5)和(1),然后应用贪婪选择过程旁观者蜜蜂阶段以下为:
     对于
        如果
          对于  
         生产新的食物来源        (基于  ,)使用()
         计算食物来源的适合度使用(1)
        如果  
             
             
             
        其他的
            如果  
          
          
          
            结束条件为
        结束条件为
          结束
          在新旧食物来源之间进行贪婪选择
        结束条件为
     结束

3.2. 侦察蜂采用的新探索策略

虽然搜索很容易陷入局部最优,但Cauchy算子确保搜索在全局范围内执行,不会过早陷入局部最优[30]. 例如[26]将进化规划与Cauchy算子相结合,新的进化规划显著优于高斯变异的经典进化规划;[31]应用贝叶斯技术增强粒子群算法在利用过去粒子位置时的搜索能力,并使用柯西算子探索更好的解;[32]将混沌和柯西算子引入到改进的基于生物地理学的优化算法中,以搜索核心骨干网络的最优解。他们的结果证实,柯西算子具有较高的跳跃概率,适合于全局搜索。2显示了标准柯西分布和高斯分布的概率密度函数。在间隔上,高斯函数具有较大的概率,但其概率在区间上几乎为0。柯西分布的形状与高斯分布相似,但在其长尾区域内概率更大,因此柯西分布在远离原点处生成随机数的可能性高于高斯分布。换句话说,与高斯分布随机数相比,基于柯西分布的随机数探索的搜索空间相对更广。因此,将柯西算子引入到ABC的侦察蜂阶段,以生成更广泛的解,而不是为每只侦察蜂随机生成一个解。这将有助于ABC摆脱局部最优,进一步提高全球勘探能力。

在ABCGC,如果被遗弃的食物来源是据英国《每日邮报》报道,一只侦察蜂产生了一种新的食物来源哪里是标准柯西分布,表示以0为中心的柯西分布的随机值,标度参数等于1。具体地说,定义为

基于上述考虑,步骤算法中列出了ABCGC的(与ABC的主要区别以粗体突出显示)。

步骤  9.确定侦察蜂的废弃食物来源(如果存在),并将其替换为  新生产的
   基于Cauchy算子使用(6)和(7)   侦察蜂阶段

4.实验与讨论

在优化领域,通常使用不同的基准问题比较不同的算法[33]. 为了验证ABCGC的性能,在提出的算法ABC和8种改进的ABC算法中测试了22个著名的基准函数。此外,使用一组6个经典函数将ABCGC与ABC和其他5种最先进的算法进行了比较;此外,在相同的6个函数上分析了每种修改对ABCGC性能的影响。1显示了本文中使用的各种算法的列表。

ABCGC是在MATLAB 7.0.4.365版(R14)中开发的,ABC的MATLAB代码可从卡拉博加的网站下载(http://mf.erciyes.edu.tr/abc/software.htm). 为了进行公平的比较,我们在所有实验中选择了相同的不同方法的参数设置。在ABC、ABCG、ABCC和ABCGC中,雇佣蜜蜂和旁观者蜜蜂分别占群体的50%,侦察蜜蜂的数量被选为一个。所有实验重复50次,并在装有Intel Core i5-3317U 1.70的便携式计算机上运行GHz CPU和4Windows 7下的GB RAM。记录了相同条件下不同算法得出的函数值的平均值和标准偏差。由于所有函数都是最小化问题,所以值越小越好。粗体显示的结果表示不同算法为每个函数获得的最佳值。

4.1. ABC算法的比较

ABCGC、ABC和8个ABC变体用于最小化中给出的一组22个众所周知的基准函数[14,16,17]. 桌子2显示这些函数的详细信息。不同的功能有不同的特点。如果一个函数只有一个最优值,那么它就是单峰函数,而多峰函数有多个局部最优值[2]. 使用多模态函数测试算法摆脱局部极小的能力。如果函数可以重写为一个变量的函数之和,则该函数是可分离的[10],而由于变量之间的复杂相互关系,不可分离的函数不能以这种形式重写。因此,不可分离函数比可分离函数更困难,如果函数是多模态的,则困难会增加。在表格中2,Cha表示函数的特征;U、 Cha列中的M、S和N分别表示函数是单峰的、多峰的、可分离的和不可分离的。是单峰的。更具体地说,是连续函数;是一个不连续函数;是一个有噪声的函数,并且是单峰的但在高维情况下可能有多个极小值。是多模态的,并且它们的局部极小值的数量随着问题的维数呈指数增长。ABCGC遵循相同的参数设置;也就是说,,函数求值的最大数量,以及分别固定为100、200、200000、60和200。比较算法的结果都是直接从[14,17]. 4显示了比较结果。

如表所示4,所有算法都很容易找到这是一个区域而不是一个点。PABC和ABCGC均达到BABC、BGABC、PABC、ABCbest、BABCbest、CABC、BCABC和ABCGC获得.BABC、BGABC、PABC、BABCbest、BCABC和ABCGC找到以下最小值BABC、BGABC、BABCbest、BCABC和ABCGC达到.打开、BABC、BGABC、BABCbest和BCABC的平均值相同,且优于其他算法,ABCGC排名第二。打开、BABC、BGABC、BABCbest、CABC和BCABC的平均值相同,性能优于其他算法,ABCGC排名第五。打开、BABC、BGABC、PABC、BABCbest、CABC和BCABC的平均值相同,且优于比较算法,ABCGC排名第四。BCABC在以下方面表现最佳ABCGC排名第五。打开、BABCbest、CABC和BCABC的平均值相同,且优于其他算法,ABCGC排名第七。打开、BABC、BGABC、PABC、ABCbest、BABCbest、CABC、BCABC和ABCGC的平均值相同,表现优于ABC和GABC,但ABCGC具有最小的标准偏差。然而,只有ABCGC才能获得,,、和注意ABCGC得出的值为0,其平均值为大大超过了其他方法获得的值;此外,ABCGC在以下方面明显优于竞争对手,,,、和综上所述,在22项功能中,ABCGC的性能分别与ABC、BABC、GABC、BGABC、PABC、ABCbest、BABCbest、CABC和BCABC相似或更好。这些结果清楚地表明,该算法在几乎所有功能上都大大优于九种比较算法。

上述结果是合理的。在ABCGC中,旁观者蜜蜂总是在每个循环中选择最佳搜索维度,而不是随机选择的维度,这对于局部搜索和微调非常有用;另一方面,ABCGC具有全局搜索能力,可以防止搜索因侦察蜜蜂探索更大的解空间而过早收敛,以及由雇佣蜜蜂和旁观者执行的邻居解生成机制。总的来说,开发和勘探之间有一个很好的平衡;因此ABCGC在全局优化方面具有更好的性能。

4.2. 与其他先进算法的比较

为了进一步评估所提算法的性能[29]用于比较ABCGC与ABC以及5种最先进的算法:BSO-RPTVW、IMDE(第一道工序)、IMDE(第二道工序),DFO和DFO(QA)。表中给出了这些功能的详细信息5根据函数的特点,可以将其分为三类:无局部极小值的函数、多个局部极小值函数和几个局部极小值。Sphere和Rosenbrock函数是高维单峰函数。Rastrigin、Ackley和Griewank函数是具有许多局部极小值和高度非线性性质的高维多模态函数;此外,这些函数的局部极小值的个数随着维数的增加呈指数增长。Schaffer函数是一个具有较少局部极小值的低维函数。因此,这些函数被广泛用于测试全局优化算法的性能[2,13,18,2729]. 如中所述[29],设置为100并且是5000、7500和10000分别具有10、20和30个维度,但对于具有,在这个实验中等于2000。ABC、BSO-RPTVW、IMDE(第一过程)、IMDE(第二过程)、DFO和DFO(QA)的结果引用自[29]. 6显示了比较结果。

从表6DFO和ABCGC得到了球面函数的全局最优解,其性能优于其他方法。在Rosenbrock函数中,IMDE(第一进程)和IMDE的性能达到最小值,优于所有其他算法,ABCGC排名第四。IMDE(第一过程)、IMDE、DFO和ABCGC可以找到Rastrigin和Griewank函数的全局最优值,而其他函数则无法找到。在Ackley函数上,BSO-RPTVW的性能最好,ABCGC优于其他方法,但带有,但ABCGC在功能上排名第三.ABC、BSO-RPTVW、IMDE(第一道工序)和IMDE,16例中13例。换句话说,在大多数情况下,ABCGC的性能明显优于比较算法。这些还表明,ABCGC可用于局部和全局优化,因为雇佣蜜蜂和旁观者进行的局部搜索过程与侦察蜜蜂管理的全局搜索过程之间具有良好的平衡。

4.3. 每次修改对ABCGC性能的影响

为了进一步研究每个修改的效果,将基本ABC与GEM相结合命名为ABCG(即GABC2),将带有Cauchy算子的基本ABC命名为ABCC。表中给出了一组6个函数5将其与ABC、ABCG、ABCC和ABCGC的收敛性能进行比较,以了解每个新的搜索策略对提高ABCGC性能的贡献。在文学作品中[1,2,46,818,2131,33],,、和通常设置为10,分别为10、50、100。因此,四种算法的参数设置如下:,,、和算法的收敛特性如图所示,4、和5

可以从图中观察到,4、和5ABCC在Sphere、Rosenbrock、Rastrigin、Ackley和Griewank函数上的性能与ABC相似由于ABCC产生的解决方案范围更广,其波动比ABC稍大,但ABCC的表现略好于ABC。此外,ABCG和ABCGC在三个维度的相同5个函数上的性能非常接近,它们表现出比ABC和ABCC更好的收敛性,但ABCGC略优于ABCG。更令人兴奋的是,ABCG和ABCGC都可以在260次循环后获得Rastrigin函数的全局最优解。Schaffer函数是最困难的标准测试函数之一,其全局极小值非常接近局部极小值[2]. 更有趣的是,关于Schaffer函数ABCC算法的波动性比其他算法大,性能也比ABC算法好得多;此外,ABCC在270次循环前的表现比ABCG差,但在270次周期后超过ABCG。注意,ABCGC在Schaffer函数上显著优于其他算法例如,300次循环后,ABC、ABCG和ABCC的平均值分别约为ABCGC的1000、100和300倍。关于Schaffer函数,ABC、ABCG、ABCC和ABCGC的绩效随着增加;ABCGC的表现与ABCG相似或更好,ABCC的表现也与ABC相似或更好。然而,ABCG和ABCGC的表现大大优于ABC和ABCC。总的来说,ABCGC在所有6个功能上收敛速度最快,比ABC、ABCG和ABCC表现得更稳健有效。这些结果表明,ABC法勘探效果好,但开采效果差,收敛速度慢。另一方面,ABCG和ABCGC中的围观蜜蜂采用的新的开发策略会更快地将解偏向全局或近全局最优解,而ABCC和ABCGC中的侦察蜜蜂采用的新型探索策略进一步有助于保持大的种群多样性,避免过早收敛;也就是说,新的开发和勘探战略相互配合,共同提高了ABCGC的绩效,而不是相互矛盾。

5.结论

为解决勘探开发平衡差、基本作业成本法收敛速度慢等问题,提出了一种新的全局优化混合作业成本法,即作业成本法。在该算法中,受GEM启发的新的挖掘策略使围观蜜蜂在每个循环中总是选择最优的搜索维度而不是随机选择的搜索维度,大大提高了ABCGC的挖掘能力,加快了收敛速度;同时,使用Cauchy算子的新开发策略可以为每只侦察蜂生成一个更宽的解,而不是随机生成的解,从而帮助ABCGC摆脱局部最优解,进一步提高其勘探能力。在两组著名的基准函数上进行了综合实验,以验证ABCGC的性能。结果表明,在解的质量和收敛特性方面,ABCGC算法的性能最好,总体上优于比较算法;尤其是在大多数情况下,它更快地找到全局最优解。这些都证实了ABCGC通常在开采和勘探之间实现了良好的平衡。因此,它可以有效地作为全局优化的替代方案。

在未来的工作中,需要一个自适应的方案,而不是一个固定的方案,它将在ABCGC的每个周期中动态调整每枚手榴弹的弹片数量。此外,还需要将建议的变体进一步应用于实际应用。

利益冲突

作者声明,本论文的出版不存在利益冲突。

致谢

本研究得到了中国国家科学基金(批准号61463007和21466008)、上海国家科学基金会(批准号15ZR1401600)和广西民族大学重点项目(批准号2012MDZD035)的支持。作者谨感谢编辑和匿名审稿人的善意协助、建设性意见和建议,这些大大改进了本文的表述。他们想对卡拉博加分享他的基本ABC代码表示感谢。