由6.1.4节中的阐述可以看出,趋向行为确保了细菌的局部搜索能力,但固定的步长C面临两个主要问题:
第一,步长大小不容易确定。步长太大虽使细菌迅速向目标区域移动,却也容易离开目标区域而找不到最优解或者陷入局部最优。步长过小,获得高精度计算结果的同时也带来了早熟、不熟的问题,使得算法可能陷入局部极小区域。
第二,在趋向行为的游动和翻转中,能量不同的细菌取相同的步长,无法体现出能量高的细菌和能量低的细菌的步长差异,在一定程度上降低了细菌趋向行为的寻优精度。
因此,对于收敛速度和计算精度而言,每个细菌的步长大小都起着主要决定作用。这就需要我们根据细菌和最优点之间的距离来调节步长。如果距离远则加大步长,如果距离近则减小步长。
本节算法赋予细菌灵敏度的概念以调节游动步长,即在一个趋向性步骤内细菌具有灵敏度记忆功能。每个细菌按照以下步骤进行趋向性操作:
Step1灵敏度赋值
其中,V是灵敏度,Xmax、Xmin表示变量的边界,J为适应值。(www.xing528.com)
Step2翻转:产生随机向量Δ(i),进行方向调整,按照
更新细菌位置和适应值。
Step3游动:如果翻转的适应值改善,则按照翻转的方向进行游动,直到适应值不再改善。游动步长采用式(6.6)调整。
Step4按式(6.7)线性递减灵敏度。
一般地,在迭代的开始,种群中的大部分细菌个体距离全局最优点较远,为了增加算法的全局搜索能力,游动步长C(i)应该较大。但是,随着迭代的持续进行,许多细菌个体越来越靠近全局最优值,这时,游动步长C(i)应该减小以便增加每个细菌个体的局部搜索能力。从式(6.6)和式(6.7)中很明显的看到,本节设计的移动步长变化满足上述要求。所以,本节提出的赋予记忆灵敏度的自适应移动步长可以使整个算法的收敛速度加快。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。