《鱼群算法的介绍.ppt》由会员分享,可在线阅读,更多相关《鱼群算法的介绍.ppt(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、鱼群算法的介绍鱼群算法的介绍 人工鱼群算法是由李晓磊、邵之江、钱积新等人于2002年提出的一种新的群智能优化算法。它采用了自上而下的寻优模式去模仿自然界鱼群的觅食行为,主要利用鱼的觅食、聚群和追尾现象,构造个体的底层行为,通过鱼群中各个体的局部寻优,达到全局最优值在群体中凸现的目的。研究表明,该算法具有较好的收敛性 下面介绍三种行为:下面介绍三种行为:1 1、觅食行为:在视野范围内随机搜索一个状态,判断此状态是否、觅食行为:在视野范围内随机搜索一个状态,判断此状态是否由于目前自身状态,优于就执行向此状态移动,否则随机移动一步。由于目前自身状态,优于就执行向此状态移动,否则随机移动一步。2 2、
2、聚群行为:搜寻视野范内的同伴,判断视野范围内的鱼群中心、聚群行为:搜寻视野范内的同伴,判断视野范围内的鱼群中心的食物量是否比当前自己拥有的食物量多。如果多则往鱼群中心方向移的食物量是否比当前自己拥有的食物量多。如果多则往鱼群中心方向移动,少则执行觅食行为。动,少则执行觅食行为。3 3、追尾行为:搜寻视野范围内的同伴,找出拥有食物量最多的个、追尾行为:搜寻视野范围内的同伴,找出拥有食物量最多的个体。并判断拥有食物量最多的个体的周围是否有太多的鱼。如果少则说体。并判断拥有食物量最多的个体的周围是否有太多的鱼。如果少则说明值得往食物量最多的鱼方向移动,如果太多则说明不值得向食物量最明值得往食物量最多
3、的鱼方向移动,如果太多则说明不值得向食物量最多的鱼方向移动,还是自己找食物好(即执行觅食行为。)。(这里的多的鱼方向移动,还是自己找食物好(即执行觅食行为。)。(这里的多和少是有拥挤因子决定的。)多和少是有拥挤因子决定的。)鱼有感知行为、行为评估、行执行。鱼有感知行为、行为评估、行执行。感知行为又分为对环境的感知、对群体的感知、对个体的感知。感知行为又分为对环境的感知、对群体的感知、对个体的感知。这三种行为分别对应:觅食行为感知、聚群行为感知、追尾行为感知。这三种行为分别对应:觅食行为感知、聚群行为感知、追尾行为感知。行为评估也有:觅食行为评估、聚群行为评估、追尾行为评估。行为评估也有:觅食行
4、为评估、聚群行为评估、追尾行为评估。执行也有:执行觅食行为、执行聚群行为、执行追尾行为。执行也有:执行觅食行为、执行聚群行为、执行追尾行为。公告板用来记录状态最优的人工鱼。在构建人工鱼模型 之前,先介绍一下相关的一些定义:向量X表示人工鱼个体的状态,Xv表示感知的下一个状态。L为食物量,visual 表示人工鱼的感知距离;Y=f(x)表示实物浓度;step 表示人工鱼移动的最大步长。表示拥挤度因子。其中L为目标函数值;Dv1v2=|Xv1-Xv2|表示人工鱼个体之间的距离。2.1 觅食行为 觅食行为:设人工鱼的当前状态为Xv1,在其感知范围内随机选择一个状态Xv2,如果Yv2Yv1,则向Xv2
5、方向前进一步;反之,再重新随机选择状态Xv2,判断是否满足前进条件;反复几次后,如果仍不满足前进条件,则随机移动一步。(这是传统的觅食行为,只是在感知范围内随机选择一次,即审视一次周围的环境。我是针对这一点进行改进的。)2.2 聚群行为 聚群行为:人工鱼的当前状态为Xv1,探索当前邻域内(Dv1v2visual)的伙伴数目n f及中心位置Yc,如果 且,表明伙伴中心有较多的食物并且不太拥挤,则朝伙伴的中心位置方向前进一步;否则执行觅食行为。如果 也执行觅食行为。2.3 追尾行为 追尾行为:人工鱼的当前状态为Xv1,探索当前邻域内(即Dv1v2visual)中适应度值最大的伙伴Xv2,如果 且Y
6、v1Yv2,表明伙伴Xv2的状态具有较高的食物浓度并且其周围不太拥挤,朝伙伴Xv2的方向前进一步;否则执行觅食行为。如果 也执行觅食行为。2.4 随机行为 随机行为:随机行为的实现比较简单,就是在视野中随机选择一个状态,然后向该方向移动,其实它是觅食行为的一个缺省行为。根据所要解决的问题性质,对人工鱼当前所处的环境进行评价,从而选一种行为。较常用的评估方法是:选择各行为中使得向最优方向前进最大的方向,也就是各行为中使得人工鱼的下一个状态最优的行为,如果没有能使下一个状态优于当前状态的行为,则采用随机行为。鱼群算法的局限性:算法一般在优化初期具有较快的收敛性,后期却往往收敛较慢。不同的参数设置对
7、算法的收敛速度和结果精度有很大的影响。基本人工鱼群算法仅仅获取的是系统的满意解所在邻域,不能得到精确最优解。为解决人工鱼群算法精确度低的缺点,对算法进行了改进。改进的目的是降低参数设置对算法的收敛速度和结果精度的影响。先提一下鱼群算法里面的各种参数:1、visual 表示人工鱼的感知距离(即视野范围)。2、step 表示人工鱼移动的最大步长。3、表示拥挤因子4、trynumber是人工鱼在觅食行为中的移动次数。5、friendnumber表示人工鱼数量。这里着重讨论降低拥挤因子 的影响,也就是提高 的调节范围。拥挤因子 主要为了限制鱼群集中在某个区域的数量,防止鱼群过于集中在次级大值而搜索不到
8、全局极大值。拥挤因子对算法的影响是很明显的,只有一个定义适当的拥挤因子才能达到预期的最优解。要提高算法对拥挤因子的调节范围,通过提高人工鱼移动的正确率。我们来看一个例子:如果一条人工鱼,只是随机选择视野范围内的一个状态,就依据这个状态值来判断人工鱼的移动方式。那么这条鱼移动方式偶然性很强,大部分移动都是盲目的,没有目的的随机行为。如果拥挤因子太小,人工鱼很难逃离次极大值。就好比蒙上你的双眼,让你随机走动走到河池学院最高的地方,这种事几乎不会发生。即使是很多蒙眼的人一起寻找,并且他们可以相互说话。要想在短时间内找到河池学院的最高点是很难的,最多只能找到次高点。那该怎样解决这个问题呢,那就是解放双
9、眼。怎样让人工鱼解放双眼呢?只要在觅食行为增加审视环节,让人工鱼具有搜寻周围环境的能力。人工鱼经过审视周围的环境得到多个状态值,人工鱼可以从从中选出最好的状态值来判断执行移动的方式。用计算机来模拟鱼群算法,用原先的鱼群算法和改进后的鱼群算法对函数 f(x,y)=sin(x)/x *(sin(y)/y)进行实验。定义:视野范围visual=2.5,步长step=0.3,拥挤因子 =0.125,迭代次数为100次,人工鱼的个数为50只。无审视环节的实验效果图:公告板得无审视环节的实验效果图:公告板得到的结果是(到的结果是(0.046247,0.005745),f(x,y)max=0.9996。有审视环节的实验效果图:公告板显有审视环节的实验效果图:公告板显示的结果:(示的结果:(-0.023021,0.007922),),f(x,y)max=0.9999。谢谢!Thanks!