改进方法学习

基于小范围淘汰的初始化方法

根据人工蜂群算法的机制我们可以看出,算法的初始化对算法的影响较大,初始化的蜜源如果在解空间中分布的不够均匀,覆盖解空间的范围小,将会限制算法在解空间中的搜索范围,导致对解空间中的一些区域搜索不到,影响算法的全局搜索能力。初始化中若蜜源分布过近会影响算法的性能。如图所示
改进方法学习个体分布不均示意图
发生如上图所示的情况,初始种群中 A,B 出现扎堆现象,A,B 的搜索范围的很大一部分发生了重叠,这将会导致多个个体对同一区域进行重复搜索,浪费搜索资源,并且还有可能导致解空间中一些其他区域因为覆盖不到而无法搜索。因此,为了使初始化的种群在解空间中分布的更加均匀,本文基于贪心算法的贪心选择思想设计了一种小范围淘汰的初始化方法,通过比较种群中距离较近的两个个体的优劣程度,淘汰掉较差的个体,避免了种群中的个体因为距离过近所产生的重复搜索现象。具体操作方法如下:
(1)初始化若干倍种群规模的蜜源;
(2)计算每一个蜜源的适应度值及蜜源两两之间的距离;
(3)找出距离最近的两个蜜源,比较两个蜜源的适应度值并剔除掉适应度值较低的那一个;
(4)重复第(3)步直至剩下种群规模规定的数量的蜜源。
这样做可以将蜜源尽可能的在解空间中分布均匀,使用更少的个体覆盖了更大范围的解空间,增强算法对解空间的全局搜索能力。

基于动态邻域扰动学习的搜索机制

为了改善人工蜂群算法搜索随机性过强,对重点区域开采能力弱的缺点,通过在算法中添加学习机制是一种较好地解决方法,学习机制的作用主要表现为种群中的个体通过向更优个体趋同的方式,以一定的方向对解空间进行搜索,以此来降低算法搜索的随机性,增强算法的局部开采能力。但是基于人工蜂群算法的特性及上文中对于算法的改进分析可以看出,直接对群体最优进行学习并不是一种最佳策略。
综上所述,提出一种基于动态邻域扰动学习的搜索机制,具体操作方法如下:
首先确定一个邻域范围 M,在对一个蜜源进行搜索时,找出种群中M 个与当前蜜源最近的蜜源和待搜索蜜源组成邻域,邻域的划分方法如图所示:
改进方法学习领域划分示意图

由上图可知,对解空间中的蜜源X 进行搜索时,首先根据设定好的邻域范围M,找到M个与当前蜜源距离最近的蜜源,将这些蜜源与X 划分在一起,组成 X 的邻域。基于此邻域对 X 执行如下的搜索方式:
判断当前蜜源 X 是否是为此邻域中的最优蜜源,如果是,则采用下式对蜜源进行搜索:
改进方法学习不是则采用下式对蜜源进行搜索:
改进方法学习其中: Xnear表示邻域中的随机一个蜜源,Xnearbest表示当前邻域中的最优蜜源,Gbest表示当前种群中的最优蜜源, Xnear,j - Xi,j用来决定蜜蜂的搜索范围,Xnear,j- Xi,j决定了当前蜜源的搜索方向,根据公式可以看出如果蜜源 X 所处邻域中有比X更优秀的蜜源,则引导蜜蜂向当前邻域中的最优蜜源的方向进行搜索,如果蜜源X
是当前邻域中的最优蜜源,则引导X向着群体最优的方向进行搜索。

在采用本文提出的动态邻域学习机制进行搜索时,在每一次迭代过程中,每一个蜜源所处的邻域都会不停地变化,但是邻域范围始终围绕在当前所搜索的蜜源附近,搜索范围始终保持一个合理水平,搜索精细程度大大提高。通过个体向邻域最优学习,邻域最优向群体最优的学习的方式,使群体最优的信息通过邻域最优在整个解空间中扩散,指导每一个个体进行搜索,降低搜索的随机性,同时又控制了每一个个体对群体最优的学习程度,有效避免了过度学习所造成的陷入局部最优现象。为了对搜索方式中存在的不足进行进一步改善,本文在搜索公式中加入了高斯扰动因子:
改进方法学习其中 Gaussian 表示高斯随机数,range 代表范围控制参数,range 的取值需要将上式的值控制在 1 以下。本文采用了此扰动因子分别对搜索公式中的搜索范围项 Xnear,j - Xi,j与搜索方向项 Xnearbest,j - Xi,j进行了扰动。针对这两项中存在的不足,利用了高斯随机数分布的两个特性对其进行了改善。高斯随机数分布如图 所示:
改进方法学习
如上图所示,高斯随机数是一种正负对称,且分布概率从零开始,由近及远逐渐降低的随机数,本文对于上文中提到的搜索公式进行高斯扰动的目的正是利用了高斯随机数分布的这两个特点。具体的作用如图所示

改进方法学习如上图所示,对于搜索范围项的扰动主要利用了高斯随机数分布越靠近 0 概率越大的特
性,通过对搜索范围项进行高斯扰动,使得算法在搜索过程中对搜索范围内不同位置的搜索概率呈现出一种自蜜源位置开始,由近及远逐渐降低的态势,增大对蜜源附近的搜索概率,降低对远离蜜源的区域的搜索概率。通过加入扰动,集中了更多的搜索资源对蜜源附近进行了精细搜索,提高了搜索精度,降低搜索过程中漏掉、错过优秀解的情况。有效的避免了陷入局部最优解。
对于学习项的扰动主要利用了高斯随机数分布正负对称的特性,高斯随机数是一种正负分布对称的随机数,通过对蜜源学习的方向进行高斯扰动,每一个蜜源在对更优个体进行学
习的同时,还会受到负半部分的高斯随机数的影响,产生反向学习现象,即个体向着更优个体的反方向搜索的现象。这样的好处在于:如果在搜索过程中产生过度学习而陷入局部最优解的情况时,通过反向学习,还有可能跳出局部最优而重新回到最优解附近。避免了陷入局部最优无法跳出的情况。
通过在搜索公式中加入高斯扰动,降低了搜索过程中陷入局部最优的可能,同时克服了陷入局部最优而无法跳出的现象,配合动态邻域学习方式,极大地增强了算法在解空间中的寻优能力。

引入回溯机制的侦查蜂策略

人工蜂群算法中的侦查蜂策略是为了在当前开采的蜜源已经无法搜索到更优解时,放弃
当前蜜源,重新初始化一个新蜜源的策略。通过重新初始化这种方法,引入更多的种群多样性,增强算法的勘探能力。但是这种策略也存在不足,算法经过若干次迭代后,此时蜜源所处的位置信息包含了迭代过程中所留下了优良信息,如果直接放弃蜜源,对其进行重新初始化,蜜源又要从一个新的位置重新进行搜索,浪费了算法之前迭代过程的成果。由此可以看出,侦查蜂搜索的效率较低。基于此问题,本文提出一种引入回溯机制的侦查蜂策略。具体操作方法如下:
(1)生成一个容器,将每一次迭代所产生的群体最优个体记录下来并存储下来;
(2)在某一个蜜源无法进行开采时,以一定概率对此蜜源进行重新初始化,其余的情况使用容器中所存储的某一代的群体最优个体代替此蜜源。
通过在侦查蜂策略中引入回溯机制,一定程度上保留了算法迭代过程中所产生的优良信息,同时又引入了种群多样性。通过这样的改进,提高侦查蜂策略的搜索效率。
以上文章参考基于动态邻 域扰动学习的人工蜂群聚类算法