- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
%人工鱼群算法
?
format?long?
Visual=2.5;?
Step=0.3;?
N=50;?
Try_number=50;?
a1=-10;?
b1=10;?
a2=-10;?
b2=10;?
d=[];?
h=1e-1;?
Friend_number=50;?
k=0;?
m=50;?
X1=rand(N,1)*(b1-a1)+a1;?
X2=rand(N,1)*(b2-a2)+a2;?
X=[X1?X2];%
人工鱼数量
?
for?i=1:N?
wwww=[X(i,1),X(i,2)];?
d(i)=maxf(wwww);?
end?
[w,i]=max(d);?
maxX=[X(i,1),X(i,2)];%
初始公告板记录
?
maxY=w;%
初始公告板记录
?
figurex=[];?
figurey=[];?
figurez=[];?
figurex(numel(figurex)+1)=maxX(1);?
figurey(numel(figurey)+1)=maxX(2);?
figurez(numel(figurez)+1)=maxY;?
kkk=0;?
while(km)?
??
for?i=1:N??
XX=[X(i,1),X(i,2)];%人工鱼当前状态
Xi?
nf=0;???
Xc=0;???
for?j=1:N??%聚群行为开始
?XXX=[X(j,1),X(j,2)];?
if(norm(XXX-XX)Visual)?
??nf=nf+1;?
??Xc=Xc+XXX;?
??end?
?end
??Xc=Xc/nf;?
???if((maxf(Xc))maxf(XX))?
?????XXnext1=XX+rand*Step*(Xc-XX)/norm(Xc-XX);??
?????if(XXnext1(1)b1)?
?????XXnext1(1)=b1;??
?????end???
???if(XXnext1(1)a1)?
?????XXnext1(1)=a1;??
?????end?
??
???if(XXnext1(2)b2)?
?????XXnext1(2)=b2;??
?????
???end?
?????if(XXnext1(2)a2)?
??
???XXnext1(2)=a2;??
??
???end?
??
?else?
??
??XXnext1=gmjprey(XX,Try_number,Visual,Step);?
??
if(XXnext1(1)b1)?
??
???XXnext1(1)=b1;??
??
???end?
??
???if(XXnext1(1)a1)?
??
???XXnext1(1)=a1;??
??
??
???end?
??
???if(XXnext1(2)b2)?
??
???XXnext1(2)=b2;??
??
???end?
??
???if(XXnext1(2)a2)?
??
???XXnext1(2)=a2;??
??
???end?
??
?end%聚群行为结束
?
?%maxX=XX;%追尾行为开始
?
?%maxY=maxf(XX);?
??
?for?j=1:Friend_number?
??
???XXX=[X(j,1),X(j,2)];?
??
???if(norm(XXX-XX)Visual??maxf(XXX)maxY)?
??
?maxX=XXX;?
??
?maxY=maxf(XXX);?
??
???end?
??
?end?
??
?if((maxY)maxf(XX))?
??
XXnext2=XX+rand*Step*(maxX-XX)/norm(maxX-XX);???
??
if(XXnext2(1)b1)?
??
???XXnext2(1)=b1;??
??
???end?
??
???if(XXnext2(1)a1)?
??
???XXnext2(1)=a1;??
??
???end?
??
???if(XXnext2(2)b2)?
??
???XXnext2(2)=b2;??
??
???end?
??
???if(XXnext2(2)a2)?
??
???XXnext2(2)=a2;??
??
???end?
??
?else?
??
?XXnext2?=gmjprey(XX,Try_number,Visual,Step);?
??
?if(XXnext2(1)b1)?
??
???XXnext2(1)=b1;??
??
???end?
??
???if(XXnext2(1)a1)?
??
???XXnext2(1)=a1;??
??
???end?
??
???if(XXnext2(2)b2
文档评论(0)