文档介绍:基于变异机制的人工蜂群算法
夏真友 魏建香 安元 摘要:针对人工蜂群算法存在的收敛速度慢、易陷入局部最优的缺点,利用变异方法来取代传统的选择模型。对4个标准测试函数的仿真表明本文提出的随机选择算法不仅能延长算法的收敛速度还能在数。根据前后蜜源的花蜜数量选择较优的蜜源替代初始标记的蜜源,并继续在标记蜜源附近用(1)式搜索新蜜源,并与初始标记蜜源比较,按照上述的方法反复循环迭代,直到达到算法的终止条件。
2 基于随机选择的人工蜂群算法
众所周知ABC的优化效果较好,但由于算法本身选择方式的局限性使其算法容易陷入局部最优,在迭代的进程中【4】每代的最差解都必定会参与到新解的产生之中从而直接影响了算法的收敛速度且易使算法发生早熟。为此,该文在最差蜜源的选择和对算法的早熟方面做了比较好的改进[5]。
最差蜜源的替换
在ABC迭代的过程中,由于每代的最差蜜源按(1)式进行交叉操作而产生新的蜜源,但是最差蜜源却几乎不可能对产生的最优蜜源做出贡献[6],这就影响了算法的收敛速度。因此可用一个新的蜜源代替最差蜜源取消最差蜜源的破话作用。为此采取如下公式进行代替:
[Vij=xij*(c+d)+xkj(1-c-d)] (2)
式中:[Vij]为新蜜源的位置,[xij]为最差蜜源的第[j]维位置,[xkj]为随机选择的不等于[i]的最差蜜源的第[j]维位置,[c]和[d]为[0,1]间的随机数。在原来公式的基础上又增加了一个随机数【6】,使得蜜源在相互交换时的变化更大,从而大大的增加了蜜源变异的可能。
对算法早熟的解决
由于ABC采用轮盘赌的选择策略,就不可避免的会早熟和陷入局部最优,为解决这个问题,该文在随机选择的基础上又引入了变异的思想[7]。
1)变异机制的引入
虽然ABC在优化问题上的运用方面取得了较好的效果,但易陷入局部最优。为有效解决这个问题而引入变异【8】的思想。 ABC之所以会早熟就是因为在当前蜜源中找不到比此蜜源较优的蜜源,而陷入局部最优并过早收敛。为了能找到较优的蜜源可以引入若干新的蜜源以替代原来被搜索过的蜜源;即改变整个蜜源的结构。伪代码如下:
if (Fitness(n)—Fitness(n-1)==0 i++; end
if(i>limit) 把原蜜源中最差的10%蜜源替换掉同时 i清零End
适应度函数Fitness(n)【8】为所有蜜源的Fitness(n)的平均值。
2)变异时替换蜜源的量的大小和limit的值
文中算法产生变异时选择替换的蜜源数是整个种群的10% ,limit的值为50,具体还要由具体实验来决定[9]。
3 实验仿真和结果分析
为了验证本文的一系列设想,进行了大量的仿真测试。实验仿真是在Inter(R) Pentium(R) D,CPU 、,。为便于描述以VABC代表新提出的ABC,为了验证本文提出的VABC的优化效果选用函数优化领域广泛采用的4个标准测试函数进行测试。前3个的理论最优值都为0,最后一个的最优值为-,把本函数与原ABC的运行效果进行比较。
A