人工鱼群算法1解析.docx

上传人:b****3 文档编号:27310309 上传时间:2023-06-29 格式:DOCX 页数:8 大小:1.01MB
下载 相关 举报
人工鱼群算法1解析.docx_第1页
第1页 / 共8页
人工鱼群算法1解析.docx_第2页
第2页 / 共8页
人工鱼群算法1解析.docx_第3页
第3页 / 共8页
人工鱼群算法1解析.docx_第4页
第4页 / 共8页
人工鱼群算法1解析.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

人工鱼群算法1解析.docx

《人工鱼群算法1解析.docx》由会员分享,可在线阅读,更多相关《人工鱼群算法1解析.docx(8页珍藏版)》请在冰豆网上搜索。

人工鱼群算法1解析.docx

人工鱼群算法1解析

•人工鱼群算法描述

在一片水域中,鱼存在的数目最多的地方就是本水域中富含营养物质最多的地方,依据这一特点亲模仿鱼解前觅食,聚群,追尾啓行为,从而实现全局最优,这就是鱼群算法的基本思想。

鱼类的活动中,觅食行为,聚群行为,追尾行为和随机行为与寻优命题的舖浇有较密切俞矣系,茹衍利用简童肴效白6方式来构造实现这些行为将是算法实现的主要问题。

算法的优点

1)只需比较目标函数值,对目标函数的性质要求不高。

2)对初值的要求不高,随机产生或设为固定值均可。

3)对参数设定的要求不高,容许范围大。

4)具备并行处理能力,寻优速度较快。

5)具备全局寻优能力,能快速跳出局部极值点。

肩设在二个n维的目标搜索空间中,有N条组成一土群体的人工鱼,每天人工鱼个体的

(i=1,……n)为欲寻优的菱量:

人工鱼当前所在位置的食物浓度表示为Y=f(X),其中Y为目标函数;人工鱼个体间距离表示为d=||Xi-Xi||;visual表示人工鱼的感知范围,step为夬工鱼移动步长,。

为拥挤度因子;trynumber表示人工鱼每次觉食最大试探次

 

formatlong

Visual=2.5;

Step=0.3;

N=50;

Try_number=50;

行为描述

(1)随机行为(AF-Random):

指人工鱼在视野内随机移动,当发现食物时,会向食物逐渐增多的方向快速的移动。

(2)觅食行为(AF-prey):

指鱼循着食物多的方向游动的一种行为,人工鱼Xj在其视野内随机选择一个状态务,分别计算它们的目标函数值进行比较,如果发琐诂比£优,则Xi向Xj的方向移动一步;否贝hXi继冥在其视野内选择状态Xj,判断是否满足前进条件,反复尝Wrynumber次后,仍没有满足前进条件,则随机移动一步使Xi到达一个新的状态。

裏达金加下:

代码

function[XXnext]=gmjprey(XX,Try_number,Visual,Step)PP=O;forj=1:

Try_number

XXj=XX+rand*Step*Visual;

if(maxf(XX)

XXnext=XX+rand*Step*(XXj-XX)/norm(XXj-XX);

PP=1;

break

end

endif(~pp)

XXnext=XX+rand*Step;

end

•(3)聚群行为(AF-swarm):

鱼在游动过程中为了保证自身的生存和躲避危害会自然地聚集成群。

鱼聚群时所遵守的规则有三条:

分隔规则:

尽量避免与临近伙伴过于拥挤;对准规则:

尽量与临近伙伴的平均方向一致;内聚规则:

尽量朝临近伙伴的中心移动。

人工鱼Xi搜索其视野内的伙伴数目山及中心位置Xc,若Yc/nf>GYj,表明伙伴中心位置状态较优且不太拥挤,则Xi朝伙伴的中心位置移动一步,否则执行觅食行为:

二艾①UXOJ①U9S-SU0①POOJJVluno」

OA①」d—dv

①so(d33luopubH+一xH1X3.SX(oava0303>QA」uC5>)七

M鬥34ge^士uw^H^x=((_ns>><)N)」9UQoyx報疾赴*頁盘官原«眩匹5>・点4<>_><之||巨

(E」eMS—dv“Ws4—_eo毛<齐0匸

 

•糾追尾行为(AF・follow)指鱼向其可视区域

内的最优方向移动的一种行为。

人工鱼Xi搜

索其视野内所有伙伴中的函数最优伙伴Xj,

如果Yj/nf>6Yi,表明最优伙伴的周围不太拥挤,则Xi朝此伙伴移动一步,否则执行觅「食行为。

咚「0/:

■/「

伪代码

floatArtificial_fish:

:

AF_follow(){Ymax=MAX(f(Xmax)),XmaxeN(Xi,Visual);nf=|N(Xmax,Visual)|;

if(Ymax/nf>0Yi&&Y^Ymax)_/Xtna~Xi

Xinext—Xi+Ranaom(step)

else

AF_prey();

returnAF_foodeonsistenee(Xinext);

•(5)公告板:

是记录最优人工鱼个体状态的地方。

每条人工鱼在执彳丁完一次迭代后将自身当前状态与公告板中记录的状态进行比较,如果优于公告板中的状态则用自身状态更新公告板中的状态,否则公告板的状态不变。

当整个算法的迭代结束后,输岀公告板的值,就是我们所求的最优值。

・2.4算法描述

鉴于以上描述的人工鱼群行为,每条人工鱼探索它当前所处的环境状况和伙伴的状况,从而选择一种行为来实际执行,最终人工鱼集结在几个局部极值周围。

一般情况下,在讨论求极大问题时,拥有较大的适应值的人工鱼一般处于值较大的极值域周围,这有助于获取全局极值域,而值较大的极值区域周围一般能集结较多的人工鱼,这有助于判断并获取全局极值。

具体的人工鱼群算法步骤如下:

・Stepl:

确定种群规模N,在变量可行域内随机生成N个个体,设定人工鱼的可视域Visual,步丧step,拥抄度因子0,尝试次数trynumber

Step2:

计算初始鱼群各个体适应值,取最优人工鱼状态及给公告板

Step3:

个体通过觅食,聚群,追尾行为更新自己,生成新鱼群。

Step4:

评价所有个体。

若某个体优于公告板,则将公告板黄薪头J该个祐。

Step5:

当公告板上最优解达到满意误差界内,算法结束,否则转step3o

•然后先进行追尾活动,每条鱼Xi都查看在自己可视域范围内

(即竝离小于visual,visual根据搜索空间的大小而定)的

其它鱼,从中找到适应函数值最小的一个Xj,其适应度函数值记为Yj,Xj周围可视域内的其它个体数量记为nf,若Yj*nf<6*Yi(&为拥挤度因子,此处取1),则表明Xj周围

“食物”较多且不太拥挤,这时Xi对每一个自己和Xj的不同的位重新随机取值(例如Xi为1001,而Xj为1100,那么就对Xi的第2,4位重新随机取值),从而向Xj靠近。

追尾活动若不成功,则进行聚群行为,每条鱼都先找出自己周围可视域内的其它鱼,形成一个小鱼群,然后找出这群鱼的中心点,这里中心点的确定方法是,若鱼群中半数以上的鱼在第i位上取1,则中心点的第i位也为1,否则为0,接

着采用和前面相同方法查看中心点的“食物”是否较多,

是否拥挤,据此决定是否向中心点靠近。

•如果聚群失败就进行觅食活动,“鱼”随机从自身取出visual个位(visual为可视域),对其进行随机变换产生一个新状态,若新状态优于原状态则向新状态移动,否则再次进行觅食活动,重复m次后如果还是没有找到更优的状态则进行随机移动(m视搜索空间大小而定)。

算法中设有公告板,每次搜索完成后用公告板同鱼群中最优的个体进行比较,若此个体优于公告板则更新公告板。

算法在以下三种情况下结束,1公告板达到教师的要求;2搜索次数达到规定的最大搜索次数;3搜索时间达到规定的最大搜索时间。

•人工鱼群算法能够较好地解决此类问题.它具有如下特点:

1)具有较快的收敛速度,可以用于解决有实时性要求的问题;

•2)对于一些精度要求不高的场合,可以用它侯建0勺得到一个司行解;

•3)不需要问题的严格机理模型,甚至不需要问题的精确描述,这使得它的应用范围得以延伸.

•综上所述,该算法是一种基于集群智能的新型的高效寻优方法.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1