法律状态公告日
法律状态信息
法律状态
2015-04-29
未缴年费专利权终止 IPC(主分类):G06N3/00 授权公告日:20110817 终止日期:20140306 申请日:20090306
专利权的终止
2011-08-17
授权
授权
2009-10-21
实质审查的生效
实质审查的生效
2009-08-26
公开
公开
技术领域
本发明涉及一种人工鱼群算法,确切地说就是把全局最优信息加入到人工鱼位置的更新中去,并提出人工鱼的吞食行为和跳跃行为,属于人工鱼群算法技术领域。
背景技术
人工鱼群算法是一种新颖高效的群体智能算法,它模拟鱼群的行为进行随机的搜索,主要利用人工鱼的觅食、聚群、追尾和跳跃等行为,通过利用鱼群中各个个体的局部信息达到全局寻优的目的,基本的人工鱼群算法具有良好的克服局部极值、取得全局最优值的能力,算法简单易于程序实现,具有良好的收敛性能。但是基本的人工鱼群算法也存在算法精度低、后期收敛慢、复杂度较高等缺点。
基本人工鱼群算法的一些定义和基本行为描述:
人工鱼的个体状态可以表示为向量X=(x1,x2,...,xii),其中xi(i=1,...,n)为欲求寻优的变量;人工鱼所在的位置的食物浓度表示为Y=f(X),其中Y为目标函数值;人工鱼个体之间的距离表示为dij=||Xi-Xj||;Visual表示人工鱼的感知距离;δ为拥挤度因子。
1)觅食行为
设人工鱼的当前状态为Xi,在其感知的范围内随机的选择一个状态Xj,如果在求极大值问题中,Yi<Yj,则向该方向前进一步:
人工鱼的位置增量=0~1的随机数×人工鱼步长×(Xj状态的位置矢量-Xi状态的位置矢量)/距离;
反之,再重新随机选择状态Xj,判断是否满足前进条件;这样反复尝试try_number次后,如果仍不满足前进条件,则随机移动一步。
2)群聚行为
设人工鱼的当前状态为Xi,参考当前人工鱼视野范围内(即dij<Visual)的同伴数目nf及中心位置Xc,如果中心食物浓度与中心伙伴数的比值大于拥挤度因子和当前人工鱼食物浓度的乘积,表明伙伴中心有较多的食物并且不太拥挤,则向伙伴中心位置方向前进一步:
人工鱼的位置增量=0~1的随机数×人工鱼步长×(Xc状态的位置矢量-Xi状态的位置矢量)/距离;
否则执行觅食行为。
3)追尾行为
设人工鱼的当前状态为Xi,参考当前人工鱼的视野范围内有最大食物浓度Yj的伙伴Xj,如果Xj的食物浓度与附近伙伴数的比值大于拥挤度因子和当前人工鱼食物浓度的乘积,表明Xj有较高的食物浓度并且周围不太拥挤,则向Xi方向前进一步:
人工鱼的位置增量=0~1的随机数×人工鱼步长×(Xj状态的位置矢量-Xi状态的位置矢量)/距离;
否则执行觅食行为。
发明内容
为了提高人工鱼群算法的收敛速度和后期收敛精度,本发明提出一种基于全局信息的人工鱼群算法,将全局最优人工鱼的信息加入到人工鱼的位置更新公式中,提出了人工鱼的跳跃行为和吞食行为,以增加基本人工鱼群算法的全局寻优能力,降低基本人工鱼群算法的运算复杂度。
本发明的基于全局信息的人工鱼群算法的行为描述如下:
(1)觅食行为
设当前全局最优的人工鱼为Xbest,人工鱼的当前状态为Xi,在其感知的范围内随机的选择一个状态Xj,如果在求极大值问题中,Yi<Yj,则向Xj和最优人工鱼Xbest的矢量和方向前进一步:
人工鱼的位置增量=0~1的随机数×人工鱼步长×(Xj状态的位置矢量+最优人工鱼Xbest的位置矢量-Xi状态的位置矢量)/距离;
反之,再重新随机选择状态Xj,判断是否满足前进条件;这样反复尝试try_number次后,如果仍不满足前进条件,则随机移动一步;
(2)群聚行为
设全局最优的人工鱼为Xbest,人工鱼的当前状态为Xi,参考当前人工鱼视野范围内(即dij<Visual)的同伴数目nf及中心位置Xc,如果中心食物浓度与中心伙伴数的比值大于拥挤度因子和当前人工鱼食物浓度的乘积,表明伙伴中心有较多的食物并且不太拥挤,则向Xc和Xbest的矢量和方向前进一步:
人工鱼的位置增量=0~1的随机数×人工鱼步长×(Xc状态的位置矢量+最优人工鱼Xbest的位置矢量-Xi状态的位置矢量)/距离;
否则执行觅食行为;
(3)追尾行为
设当前全局最优的人工鱼为Xbest,人工鱼的当前状态为Xi,参考当前人工鱼的视野范围内有最大食物浓度Yj的伙伴Xj,如果Xj食物浓度与附近伙伴数的比值大于拥挤度因子和当前人工鱼食物浓度的乘积,表明Xj有较高的食物浓度并且周围不太拥挤,则向Xj和Xbest的矢量和方向前进一步:
人工鱼的位置增量=0~1的随机数×人工鱼步长×(Xj状态的位置矢量+最优人工鱼Xbest的位置矢量-Xi状态的位置矢量)/距离;
否则执行觅食行为;
(4)跳跃行为
当人工鱼种群的最优值在多次迭代变化量很小或者不变的情况下,寻优结果可能陷入了局部值,本发明引入跳跃行为,在所有人工鱼中选择某些人工鱼并且随机的设置它们的参数:
某条人工鱼的下一状态=现在的状态+0~1的随机数×使状态发生改变的参数×人工鱼的视野;
让一些人工鱼跳跃出现在的局部最优的状态,跳跃行为的引入避免算法陷入局部最优并提高了寻求全局最优解的能力;
(5)吞食行为
人工鱼群算法的收敛速度与人工鱼的数量成正比,人工鱼个体越多收敛速度越快,但是随着人工鱼数目的增多,将会需求更多的存储空间,也会造成算法复杂度的增长。为解决高复杂度的问题,本发明引入了人工鱼的吞食的行为。人工鱼群算法中目标函数值很低、弱小的人工鱼对算法的性能影响很小,但却增加了算法的复杂度。根据自然界中弱小的鱼会被大鱼吞食的现象,把目标函数值低于一定阈值的人工鱼淘汰掉,就像自然界中弱小的鱼会被吞食掉一样,减少人工鱼的数量从而降低算法的复杂度,算法的性能依然良好。
按照上述人工鱼群行为的描述,本发明的基于全局信息的人工鱼群算法包括以下步骤:
(1)首先进行初始化设置,包括人工鱼群的个体数N,每条人工鱼的初始位置,人工鱼的视野Visual,最大迭代次数I_max,尝试次数Try_number,拥挤度因子δ和要执行吞食行为的阈值T_value;
(2)计算每条人工鱼的适应度值,并记录全局最优的人工鱼的状态;
(3)对每条人工鱼进行评价,对其要执行的行为进行选择,包括觅食行为、群聚行为、追尾行为、吞食行为和跳跃行为;
(4)执行人工鱼选择的行为,基于全局信息和局部信息更新人工鱼的位置信息;
(5)更新全局最优人工鱼的状态;
(6)如果满足循环结束的条件就输出结果,否则就跳转到步骤(2)。
本发明对基本人工鱼群算法进行了改进,提出了一种新的鱼群寻优模式和新颖的人工鱼行为,包括人工鱼位置更新模式的改进和两种新颖的人工鱼的行为的提出,全局信息的加入,提高了基本鱼群算法的收敛速度和寻优精度,吞食行为的提出降低了算法的复杂度,跳跃行为的提出增强了算法的摆脱局部极值的能力。
附图说明
附图是本发明的流程示意图。
具体实施方式
本发明的全局鱼群算法的流程如附图所示,包括如下步骤:
1.首先进行初始化设置,包括人工鱼群的个体数,每条人工鱼的初始位置,人工鱼的视野,最大迭代次数,尝试次数,拥挤度因子和要执行吞食行为的阈值;
2.计算每条人工鱼的适应度值,并记录全局最优的人工鱼的状态;
3.对每条人工鱼进行评价,对其要执行的行为进行选择;
4.执行人工鱼选择的行为,更新人工鱼的位置信息;
5.更新全局最优人工鱼的状态;
6.如果满足循环结束的条件就输出结果,否则就跳转到2.。
仿真结果表示,全局信息人工鱼群算法具有更好的性能,如有更快的收敛速度和熟练精度,有更低的算法复杂度,有着更好的全局寻优能力。
机译: 一种基于指针的对象获取方法,用于对计算机系统的信息进行有形处理,该方法基于一种自然语言,并且该机器人或机器人的人工智能系统对该计算机系统的接收信号作出反应,该计算机系统具有相应的关联机器人或机器人的人工智能,该机器人或机器人的人工智能计算机系统的相应思想得到证实
机译: 基于双鱼群算法的电网无功优化系统和方法
机译: 基于双鱼群算法的无功优化系统和方法