基于全局信息的人工鱼群算法的制作方法

文档序号:6481228阅读:276来源:国知局
专利名称:基于全局信息的人工鱼群算法的制作方法
技术领域
本发明涉及一种人工鱼群算法,确切地说就是把全局最优信息加入到人工鱼位置的更新 中去,并提出人工鱼的吞食行为和跳跃行为,属于人工鱼群算法技术领域。
背景技术
人工鱼群算法是一种新颖高效的群体智能算法,它模拟鱼群的行为进行随机的搜索,主 要利用人工鱼的觅食、聚群、追尾和跳跃等行为,通过利用鱼群中各个个体的局部信息达到 全局寻优的目的,基本的人工鱼群算法具有良好的克服局部极值、取得全局最优值的能力, 算法简单易于程序实现,具有良好的收敛性能。但是基本的人工鱼群算法也存在算法精度低、 后期收敛慢、复杂度较高等缺点。
基本人工鱼群算法的一些定义和基本行为描述-
人工鱼的个体状态可以表示为向量,=0^,...,;0,其中A('",...,")为欲求寻优的变量;人工 鱼所在的位置的食物浓度表示为N/CV),其中y为目标函数值;人工鱼个体之间的距离表示 为《=|,,-d Kis"W表示人工鱼的感知距离;5为拥挤度因子。
1) 觅食行为
设人工鱼的当前状态为;r,,在其感知的范围内随机的选择一个状态A,如果在求极大值 问题中,y,A,则向该方向前进一步
人工鱼的位置增量=0 1的随机数x人工鱼步长x (A状态的位置矢量-义,状态的位置矢 量)/距离;
反之,再重新随机选择状态x"判断是否满足前进条件;这样反复尝试trm"历Z^r次后,
如果仍不满足前进条件,则随机移动一步。
2) 群聚行为
设人工鱼的当前状态为x,,参考当前人工鱼视野范围内(邻《<&"。/)的同伴数目 及中
心位置&,如果中心食物浓度与中心伙伴数的比值大于拥挤度因子和当前人工鱼食物浓度的
乘积,表明伙伴中心有较多的食物并且不太拥挤,则向伙伴中心位置方向前进一步
人工鱼的位置增量=0 1的随机数x人工鱼步长x (x。状态的位置矢量-x,状态的位置矢
量)/距离;
否则执行觅食行为。 3)追尾行为设人工鱼的当前状态为《,参考当前人工鱼的视野范围内有最大食物浓度JO的伙伴A,如 果Y,的食物浓度与附近伙伴数的比值大于拥挤度因子和当前人工鱼食物浓度的乘积,表明x, 有较高的食物浓度并且周围不太拥挤,则向A",方向前进一步
人工鱼的位置增量=0 1的随机数x人工鱼步长x (A状态的位置矢量-义,状态的位置矢
量)/距离;
否则执行觅食行为。

发明内容
为了提高人工鱼群算法的收敛速度和后期收敛精度,本发明提出一种基于全局信息的人 工鱼群算法,将全局最优人工鱼的信息加入到人工鱼的位置更新公式中,提出了人工鱼的跳 跃行为和吞食行为,以增加基本人工鱼群算法的全局寻优能力,降低基本人工鱼群算法的运
算复杂度。
本发明的基于全局信息的人工鱼群算法的行为描述如下
(1) 觅食行为
设当前全局最优的人工鱼为;^,,,人工鱼的当前状态为《,在其感知的范围内随机的选择 一个状态义,,如果在求极大值问题中,,则向义,和最优人工鱼&,,的矢量和方向前进一 步
人工鱼的位置增量=0 1的随机数x人工鱼步长x (《状态的位置矢量+最优人工鱼& 的 位置矢量-《状态的位置矢量)/距离;
反之,再重新随机选择状态^,判断是否满足前进条件;这样反复尝试^y一""M&er次后,
如果仍不满足前进条件,则随机移动一步;
(2) 群聚行为
设全局最优的人工鱼为^^,,人工鱼的当前状态为Y,,参考当前人工鱼视野范围内(即 的同伴数目",及中心位置a,如果中心食物浓度与中心伙伴数的比值大于拥挤度因
子和当前人工鱼食物浓度的乘积,表明伙伴中心有较多的食物并且不太拥挤,则向a和;^,的 矢量和方向前进一步
人工鱼的位置增量=0 1的随机数x人工鱼步长x d状态的位置矢量+最优人工鱼;^的 位置矢量-A状态的位置矢量)/距离;否则执行觅食行为; (3)追尾行为
设当前全局最优的人工鱼为<^,,人工鱼的当前状态为A,参考当前人工鱼的视野范围内 有最大食物浓度y,的伙伴x,,如果^食物浓度与附近伙伴数的比值大于拥挤度因子和当前人 工鱼食物浓度的乘积,表明^有较高的食物浓度并且周围不太拥挤,则向;^和」^的矢量和
方向前进一步
人工鱼的位置增量=0 1的随机数x人工鱼步长x (^状态的位置矢量+最优人工鱼^ ,的 位置矢量-x,状态的位置矢量)/距离;
否则执行觅食行为;
(4) 跳跃行为
当人工鱼种群的最优值在多次迭代变化量很小或者不变的情况下,寻优结果可能陷入了 局部值,本发明引入跳跃行为,在所有人工鱼中选择某些人工鱼并且随机的设置它们的参数
某条人工鱼的下一状态=现在的状态+0 1的随机数x使状态发生改变的参数x人工鱼的
视野;
让一些人工鱼跳跃出现在的局部最优的状态,跳跃行为的引入避免算法陷入局部最优并 提高了寻求全局最优解的能力;
(5) 吞食行为
人工鱼群算法的收敛速度与人工鱼的数量成正比,人工鱼个体越多收敛速度越快,但是 随着人工鱼数目的增多,将会需求更多的存储空间,也会造成算法复杂度的增长。为解决高 复杂度的问题,本发明引入了人工鱼的吞食的行为。人工鱼群算法中目标函数值很低、弱小 的人工鱼对算法的性能影响很小,但却增加了算法的复杂度。根据自然界中弱小的鱼会被大 鱼吞食的现象,把目标函数值低于一定阈值的人工鱼淘汰掉,就像自然界中弱小的鱼会被吞 食掉一样,减少人工鱼的数量从而降低算法的复杂度,算法的性能依然良好。
按照上述人工鱼群行为的描述,本发明的基于全局信息的人工鱼群算法包括以下步骤
(1) 首先进行初始化设置,包括人工鱼群的个体数M每条人工鱼的初始位置,人工鱼 的视野Ki'犯W,最大迭代次数尝试次数7>r—""/^er,拥挤度因子5和要执行吞食行 为的阈值7Lra^e;
(2) 计算每条人工鱼的适应度值,并记录全局最优的人工鱼的状态;
(3) 对每条人工鱼进行评价,对其要执行的行为进行选择,包括觅食行为、群聚行为、 追尾行为、吞食行为和跳跃行为;
(4) 执行人工鱼选择的行为,基于全局信息和局部信息更新人工鱼的位置信息;
(5) 更新全局最优人工鱼的状态;(6)如果满足循环结束的条件就输出结果,否则就跳转到步骤(2)。
本发明对基本人工鱼群算法进行了改进,提出了一种新的鱼群寻优模式和新颖的人工鱼 行为,包括人工鱼位置更新模式的改进和两种新颖的人工鱼的行为的提出,全局信息的加入, 提高了基本鱼群算法的收敛速度和寻优精度,吞食行为的提出降低了算法的复杂度,跳跃行 为的提出增强了算法的摆脱局部极值的能力。


附图是本发明的流程示意图。
具体实施例方式
本发明的全局鱼群算法的流程如附图所示,包括如下步骤
1. 首先进行初始化设置,包括人工鱼群的个体数,每条人工鱼的初始位置,人工鱼的视
野,最大迭代次数,尝试次数,拥挤度因子和要执行吞食行为的阈值;
2. 计算每条人工鱼的适应度值,并记录全局最优的人工鱼的状态;
3. 对每条人工鱼进行评价,对其要执行的行为进行选择;
4. 执行人工鱼选择的行为,更新人工鱼的位置信息;
5. 更新全周最优人工鱼的状态;
6. 如果满足循环结束的条件就输出结果,否则就跳转到2.。
仿真结果表示,全局信息人工鱼群算法具有更好的性能,如有更快的收敛速度和熟练精度, 有更低的算法复杂度,有着更好的全局寻优能力。
权利要求
1.一种基于全局信息的人工鱼群算法,包括以下步骤(1)首先进行初始化设置,包括人工鱼群的个体数N,每条人工鱼的初始位置,人工鱼的视野Visual,最大迭代次数I_max,尝试次数Try_number,拥挤度因子δ和要执行吞食行为的阈值T_value;(2)计算每条人工鱼的适应度值,并记录全局最优的人工鱼的状态;(3)对每条人工鱼进行评价,对其要执行的行为进行选择,包括觅食行为、群聚行为、追尾行为、吞食行为和跳跃行为;各行为的描述如下A觅食行为设当前全局最优的人工鱼为Xbest,人工鱼的当前状态为Xi,在其感知的范围内随机的选择一个状态Xj,如果在求极大值问题中,Yi<Yj,则向Xj和最优人工鱼Xbest的矢量和方向前进一步人工鱼的位置增量=0~1的随机数×人工鱼步长×(Xj状态的位置矢量+最优人工鱼Xbest的位置矢量-Xi状态的位置矢量)/距离;反之,再重新随机选择状态Xj,判断是否满足前进条件;这样反复尝试try_number次后,如果仍不满足前进条件,则随机移动一步;B群聚行为设当前全局最优的人工鱼为Xbest,人工鱼的当前状态为Xi,参考当前人工鱼视野范围内的同伴数目nf及中心位置Xc,如果中心食物浓度与中心伙伴数的比值大于拥挤度因子和当前人工鱼食物浓度的乘积,表明伙伴中心有较多的食物并且不太拥挤,则向Xc和Xbest的矢量和方向前进一步人工鱼的位置增量=0~1的随机数×人工鱼步长×(Xc状态的位置矢量+最优人工鱼Xbest的位置矢量-Xi状态的位置矢量)/距离;否则执行觅食行为;C追尾行为设当前全局最优的人工鱼为Xbest,人工鱼的当前状态为Xi,参考当前人工鱼的视野范围内有最大食物浓度Yj的伙伴Xj,如果Xj食物浓度与附近伙伴数的比值大于拥挤度因子和当前人工鱼食物浓度的乘积,表明Xj有较高的食物浓度并且周围不太拥挤,则向Xj和Xbest的矢量和方向前进一步人工鱼的位置增量=0~1的随机数×人工鱼步长×(Xj状态的位置矢量+最优人工鱼Xbest的位置矢量-Xi状态的位置矢量)/距离;否则执行觅食行为;D跳跃行为在所有人工鱼中选择某些人工鱼并且随机的设置它们的参数某条人工鱼的下一状态=现在的状态+0~1的随机数×使状态发生改变的参数×人工鱼的视野;让一些人工鱼跳跃出现在的局部最优的状态;E吞食行为根据自然界中弱小的鱼会被大鱼吞食的现象,把目标函数值低于一定阈值的人工鱼淘汰掉;(4)执行人工鱼选择的行为,基于全局信息和局部信息更新人工鱼的位置信息;(5)更新全局最优人工鱼的状态;(6)如果满足循环结束的条件就输出结果,否则就跳转到步骤(2)。
全文摘要
本发明提出了一种基于全局信息的人工鱼群算法,包括以下步骤(1)首先进行初始化设置;(2)计算每条人工鱼的适应度值,并记录全局最优的人工鱼的状态;(3)对每条人工鱼进行评价,对其要执行的行为进行选择,包括觅食行为、群聚行为、追尾行为、吞食行为和跳跃行为;(4)执行人工鱼选择的行为,基于全局信息和局部信息更新人工鱼的位置信息;(5)更新全局最优人工鱼的状态;(6)如果满足循环结束的条件就输出结果,否则就跳转到步骤(2)。本发明对基本人工鱼群算法进行了改进,提出了一种新的鱼群寻优模式和人工鱼的吞食行为和跳跃行为,降低了算法的复杂度,增强了算法的全局寻优能力,提高了算法的收敛速度和收敛精度。
文档编号G06N3/00GK101515338SQ20091001964
公开日2009年8月26日 申请日期2009年3月6日 优先权日2009年3月6日
发明者江铭炎, 程永明, 袁东风 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1