人工鱼群算法matlab实现.docx

人工鱼群算法matlab实现.docx

ID:55232298

大小:12.60 KB

页数:6页

时间:2020-05-06

人工鱼群算法matlab实现.docx_第1页
人工鱼群算法matlab实现.docx_第2页
人工鱼群算法matlab实现.docx_第3页
人工鱼群算法matlab实现.docx_第4页
人工鱼群算法matlab实现.docx_第5页
资源描述:

《人工鱼群算法matlab实现.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、functionlhl_AFclc;clearall;closeall;formatlongVisual=2.5;%人工鱼的感知距离Step=0.3;%人工鱼的移动最大步长N=10;%人工鱼的数量Try_number=50;%迭代的最大次数delta=0.618;%拥挤度因子a1=-10;b1=10;a2=-10;b2=10;d=[];%存储50个状态下的目标函数值;k=0;m=50;%迭代次数X1=rand(N,1)*(b1-a1)+a1;%在-10~10之间,随机生成50个数;X2=rand(N,1)*(b2-a2)+a2;X=[X1X

2、2];%X=ones(N,2);%fori=1:N%X(i,1)=-10;%X(i,2)=10;%end%人工鱼数量,两个状态变量X1和X2;%计算50个初始状态下的;fori=1:Nwww=[X(i,1),X(i,2)];d(i)=maxf(www);end%公告牌用于记录人工鱼个体的历史最好状态[w,i]=max(d);%求出初始状态下的最大值w和最大值的位置i;maxX=[X(i,1),X(i,2)];%初始公告板记录,最大值位置;maxY=w;%初始化公告板记录,最大值;figurex=[];figurey=[];figurez=[

3、];figurex(numel(figurex)+1)=maxX(1);%将maxX(1)放入figurex中,figurey(numel(figurey)+1)=maxX(2);%numel返回数组或者向量中所含元素的总数,matlab数组下标默认是从1开始的figurez(numel(figurez)+1)=maxY;while(k

4、定还在约束内%群聚行为不是一种maxf(Xc)的比较,就是看伙伴位置nf1=0;Xc=0;label_swarm=0;%群聚行为发生标志forj=1:NXX_1=[X(j,1),X(j,2)];if(norm(XX_1-XX)delta*maxf(

5、XX))&&(norm(Xc-XX)~=0))XXR1=rand*Step*(Xc-XX)/norm(Xc-XX);XXnext1=XX+XXR1;if(XXnext1(1)>b1)XXnext1(1)=b1;endif(XXnext1(1)b2)XXnext1(2)=b2;endif(XXnext1(2)

6、mp_y_XXnext1=-inf;end%%%%%%%%%%%%第二种行为:追尾行为:周围伙伴有最大值且附近不挤,向其伙伴方向移动%追尾行为追寻伙伴行为,还是在约束内temp_maxY=-inf;%按照理论来说这块应该初始化为-无穷小,label_follow=0;%追尾行为发生标记forj=1:NXX_2=[X(j,1),X(j,2)];if((norm(XX_2-XX)temp_maxY))temp_maxX=XX_2;temp_maxY=maxf(XX_2);endendnf2=0;for

7、j=1:NXX_2=[X(j,1),X(j,2)];if(norm(XX_2-temp_maxX)delta*maxf(XX)&&(norm(temp_maxX-XX)~=0))%附近有Yj最大的伙伴,并且不太拥挤XXR2=rand*Step*(temp_maxX-XX)/norm(temp_maxX-XX);%rand不是随机反向,是随机步长XXnext2=XX+XXR2;if(XXnext2(1)>b1)XXnext2(

8、1)=b1;endif(XXnext2(1)b2)XXnext2(2)=b2;endif(XXnext2(2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。