下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、function lhl_AF clc;clear all; close all;format longVisual = 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;%在 -1010 之间,随机生成 50 个数;X2 = rand(N,1)
2、*(b2-a2)+a2;X = X1 X2;%X = ones(N,2);%for i = 1:N% X(i,1)=-10;% X(i,2)=10;%end %人工鱼数量,两个状态变量 X1 和 X2;%计算 50 个初始状态下的;for i = 1:N=X(i,1),X(i,2);d(i) = maxf();end %公告牌用于记录人工鱼个体的历史最好状态 w,i = max(d);% 求出初始状态下的最大值 w 和最大值的位置 i;maxX = X(i,1),X(i,2); % 初始公告板记录,最大值位置; maxY = w;% 初始化公告板记录,最大值;figurex = ; figur
3、ey = ; figurez =;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<m)for i = 1:NXX = X(i,1),X(i,2);%拿出其中一条鱼来看他的四种行为判断%B 一种行为:聚群行为:伙伴多且不挤,就向伙伴中心位置移动 %群聚行为是伙伴的中心点,
4、凸规划下,中心点一定还在约束 % 群聚行为不是一种 maxf (Xc) 的比较,就是看伙伴位置nf1=0;Xc=0;label_swarm =0; % 群聚行为发生标志for j = 1:NXX_1 = X(j,1), X(j,2);if (norm(XX_1-XX)<Visual) % norm 函数求向量 XXX-XX 勺数,由于二维向量, 者省略都可以nf1 = nf1+1; Xc = Xc+XX_1;endendXc=Xc-XX; %需要去除 XX 本身;nf1=nf1-1;Xc = Xc/nf1; %<时 Xc 表示 XX 感知围其他伙伴的中心位置; if(maxf(Xc
5、)/nf1 > delta*maxf(XX) && (norm(Xc-XX)=0) XXR1=rand*Step*(Xc-XX)/norm(Xc-XX); XXnext1=XX+XXR1;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 label_swarm =1;temp_y_X
6、Xnext1=maxf(XXnext1);else label_swarm =0; temp_y_XXnext1=-inf;end%嘱%二种行为:追尾行为:周围伙伴有最大值且附近不挤,向其伙伴方向移动%追尾行为追寻伙伴行为,还是在约束temp_maxY = -inf; % 按照理论来说这块应该初始化为- 无穷小,label_follow =0;% 追尾行为发生标记for j = 1:NXX_2 = X(j,1),X(j,2);if(norm(XX_2-XX)<Visual) && (maxf(XX_2)>temp_maxY)temp_maxX = XX_2; tem
7、p_maxY = maxf(XX_2);end end nf2=0; for j = 1:NXX_2 = X(j,1),X(j,2); if(norm(XX_2-temp_maxX)<Visual) nf2=nf2+1;endend%附近有 Yj 最大nf2=nf2-1;% 去掉他本身if(temp_maxY/nf2)>delta*maxf(XX) && (norm(temp_maxX-XX)=0)的伙伴,并且不太拥挤XXR2=rand*Step*(temp_maxX-XX)/norm(temp_maxX-XX);%rand 不是随机反向 , 是 随机步长XXnex
8、t2 = XX+XXR2;if(XXnext2(1) > b1)XXnext 2(1) = b1;end if(XXnext2(1) < a1)XXnext 2(1) = a1;end if(XXnext2(2) > b2) XXnext 2(2) = b2;end if(XXnext2(2) < a2) XXnext 2(2) = a2;endlabel_follow =1; temp_y_XXnext2=maxf(XXnext2);elselabel_follow =0; temp_y_XXnext2=-inf;end%il 三种行为:觅食行为:与前两个行为不同,觅
9、食和随机行为都是找附近的状态 , 而不是 找附近的同伴%觅食和随机行为可能出现超出约束,所以,XX_3 和 XX_4 是不一样的%觅食行为和群聚行为、追尾行为是不一样的,觅食行为是一种根据状态来判断的行为,群聚和追尾是根据伙伴来判断的行为label_prey =0;% 判断觅食行为是否找到优于当前的状态for j = 1:Try_numberR1V=Visual*(-1+2*rand(2,1)');XX_3 = XX+R1V;if(XX_3(1) > b1) % 下面这四个是一套,如果超出约束条件,就选值为边界条件 XX_3(1) = b1;endif(XX_3(1) <
10、a1) XX_3(1) = a1;end if(XX_3(2) > b2) XX_3(2) = b2;end if(XX_3(2) < a2) XX_3(2) = a2;end if(maxf(XX)<maxf(XX_3)XXR3=rand*Step*(XX_3-XX)/norm(XX_3-XX);XXnext3 = XX+XXR3;if(XXnext3(1) > b1) % 下面这四个是一套,如果超出约束条件, 就选值为边界条件XXnext3(1) = b1;endif(XXnext3(1) < a1)XXnext3(1) = a1;endif(XXnext3(
11、2) > b2)XXnext3(2) = b2;endif(XXnext3(2) < a2)XXnext3(2) = a2;endlabel_prey =1;break;endendtemp_y_XXnext3=max(XXnext3);if(label_prey =0)temp_y_XXnext3=-inf;end%海%为选择不发if(label_swarm=0) && (label_follow=0) && (label_prey =0)%聚群和追尾鱼太多太拥挤,都不发生;觅食觅不到更好的,造成三种行为都 %如果前三种行为都没有发生出现,必然是发
12、生随机行为 R2S=Step*(-1+2*rand(2,1)'); temp_XX = XX+R2S;if(XX(1) > b1) % 下面这四个是一套,如果超出约束条件,就选值为边界条件 XX(1) = b1;end if(XX(1) < a1) XX(1) = a1;end if(XX(2) > b2)XX (2)=b2;end if(XX(2) < a2)XX 2 =a2;endelse %三种行为找最优 if(temp_y_XXnext1 > temp_y_XXnext2) if(temp_y_XXnext1 > temp_y_XXnext3
13、) temp_XX = XXnext1; elsetemp_XX = XXnext3;end else if(temp_y_XXnext2 > temp_y_XXnext3)temp_XX = XXnext2;else temp_XX = XXnext3;end end endXX=temp_XX;X(i,1) = XX(1);X(i,2) = XX 2;%end%至此,所有人工鱼,完成一次行为判断和移动 %这块是更新公告牌信息for i = 1:NXXX = X(i,1),X(i,2); if (maxf(XXX)>maxY) maxY = maxf(XXX); maxX = XXX; figurex(numel(figurex)+1) = maxX(1); figurey(numel(figurey)+1) = maxX(2);figurez(numel(figurez)+1) = maxY;endend x=X(:,1)'y=X(:,2)' plot(x,y,'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度PVC管材环保型材料研发与应用合同范本3篇
- 2025版商业设施租赁合同模板:商业场地租赁标准版2篇
- 2024年股权拆分与转让协议
- 2025版智慧城市房地产开发合作框架协议范本6篇
- 2024年版权购买合同:购买文学作品、音乐、影视等版权的详细条款
- 2024年金融借款担保业务合作协议一
- 2024年绿色建材长期订购合同
- 2025年度太阳能热水器安装与能源管理系统合同3篇
- 支气管扩张患者如何进行家庭护理
- 2024店面资产收购合同协议2篇
- 物业上门维修收费标准
- ATS技术交流(新型发动机智能恒温节能冷却系统)100318
- 手术区皮肤的消毒和铺巾ppt课件
- 2022年度培训工作总结
- 应急照明装置安装施工方法
- DB34∕T 4057-2021 中小河流防汛特征水位分析规程
- E5015焊条成分设计及焊接性能分析
- 压力管道验收资料表格(共38页)
- 明天会更好歌词
- 年产500万平米电极箔及6.5万吨净水剂建设项目可行性研究报告模板-拿地申请立项
- 顶针PIN清洁、摆放作业规范
评论
0/150
提交评论