引入变异算子的改进人工鱼群算法

人工鱼群算法(AFSA)是模仿鱼类行为提出的一种基于动物自治体的优化方法,是群体智能思想的一个具体应用,它解决问题时不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各智能人工鱼个体的局部寻优行为,最终使全局最优值突现(涌现)出来。

基本AFSA有一个比较严重的缺陷是后期收敛速度比较慢,解的精度不高,因此提出了引入变异算子的改进人工鱼群算法。引入变异算子的改进人工鱼群算法对历史最优鱼引入高斯变异算子,突变时有利于跳出局部极佳,同时也进行了局部搜索;对鱼群中其它人工鱼个体引入差分变异算子,引导鱼群向历史最优鱼靠近,提高收敛速度,同时增加了人工鱼的多样性,也有利于全局搜索。变异后的全局最优鱼如进化成功,则更新后返回,否则重新变异最多M次。当然这个新的变异操作不是每次都执行的,只有在公告板连续多个迭代过程没有改变或变化极小的的次数达到最大限定值时。

引入变异算子的改进人工鱼群算法的算法设计流程如下:

(1)初始化种群,在可行域内随机生成nPop条人工鱼,形成初始鱼群;同时选择最优个体,记录到公告板。

(2)行为选择:各人工鱼分别模拟追尾行为和聚群行为,评价行动后的适应度,选择优者的行为实际执行,缺省行为方式为觅食行为。

(3)更新公告板:在种群所有个体都执行各自行为后,选择最优,如果优于公告板的个体,则替换更新。

(4)变异条件判断:若公告板连续多个迭代过程没有改变或变化极小的次数达到最大阈值,则执行步骤(5);否则执行步骤(6)。

(5)变异操作:用历史最优鱼替换目前群体的最差鱼形成中间种群,在中间种群对历史最优鱼进行高斯变异,其它鱼按照差分变异。计算最优值与公告板比较,若更优,表明变异成功,更新公告板,同时置num=0,执行步骤(6);否则,重新变异,若变异M次仍不成功就采用最后一次的变异,执行步骤(6)。

(6)终止条件判断:判断是否已达到预置的最大迭代次数或判断最优值是否达到了满意的误差界内,若不满足,执行步骤(2),进行下一代鱼群优化过程;否则算法结束,输出公告板中的最优个体。



发表评论

You must be logged in to post a comment.