



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
function F=F(x1,x2) %目标函数 F=-(x1.2+2*x2.2-0.3*cos(3*pi*x1)-0.4*cos(4*pi*x2)+0.7); Endfunction maxx,maxy,maxvalue=antcolony % 蚁群算法求函数最大值的程序 ant=200; % 蚂蚁数量 times=50; % 蚂蚁移动次数 rou=0.8; % 信息素挥发系数 p0=0.2; % 转移概率常数 lower_1=-1; % 设置搜索范围 upper_1=1; % lower_2=-1; % upper_2=1; % for i=1 : ant X(i,1)=(lower_1+(upper_1-lower_1)*rand); %随机设置蚂蚁的初值位置 X(i,2)=(lower_2+(upper_2-lower_2)*rand); tau(i)=F(X(i,1),X(i,2); %第i只蚂蚁的信息量end %随机初始每只蚂蚁的位置 step=0.05; %网格划分单位f=-(x.2+2*y.2-0.3*cos(3*pi*x)-0.4*cos(4*pi*y)+0.7); x,y=meshgrid(lower_1:step:upper_1,lower_2:step:upper_2); z=eval(f); %eval函数,将字符串内的内容执行再赋给对象figure(1); mesh(x,y,z); %网格图hold on; plot3(X(:,1),X(:,2),tau,k*) %蚂蚁初始位置hold on; text(0.1,0.8,-0.1,蚂蚁的初始分部位置) xlabel(x);ylabel(y);zlabel(f(x,y); for t=1:times % 第t次移动 lamda=1/t; %步长系数,随移动次数增大而减少 tau_best(t),bestindex=max(tau); %第t次移动的最优值及其位置 for i=1:ant %第i只蚂蚁 p(t,i)=(tau(bestindex)-tau(i)/tau(bestindex); %最优值与第i只蚂蚁的值的差比 % 计算状态转移概率 end for i=1:ant if p(t,i)p0 %局部搜索 小于转移概率常数 temp1=X(i,1)+(2*rand-1)*lamda; %移动距离 temp2=X(i,2)+(2*rand-1)*lamda; else %全局搜索 temp1=X(i,1)+(upper_1-lower_1)*(rand-0.5); temp2=X(i,2)+(upper_2-lower_2)*(rand-0.5); end % 越界处理 if temp1upper_1 temp1=upper_1; end if temp2upper_2 temp2=upper_2; end % if F(temp1,temp2)F(X(i,1),X(i,2) % 判断蚂蚁是否移动 X(i,1)=temp1; X(i,2)=temp2; end end for i=1:ant tau(i)=(1-rou)*tau(i)+F(X(i,1),X(i,2); % 更新信息量 end end figure(2); mesh(x,y,z); hold on; x=X(:,1);y=X(:,2); plot3(x,y,eval(f),k*) hold on; text(0.1,0.8,-0.1,蚂蚁的最终分布位置) xlabel(x);ylabel(y),zlabel(f(x,y); max_value,max_index=max(tau); maxx=X(max_index,1); maxy=X(max_index,2); maxvalue=F(X(max_index,1),X(max_index,2); endfunction F1=F1(x) %目标函数 F1=x.2-2*x+1;End%蚁群算法求解一元函数F1=x2-2*x+1closeclearclcant=10;times=40;rou=0.8;p0=0.2;lb=-2;ub=2;step=0.05;x=lb:0.05:ub; for i=1:ant X(i)=lb+(ub-lb)*rand; tau(i)=F1(X(i); end figure(1); plot(x,F1(x); hold on plot(X,tau,r*); for kk=1:10 for t=1:times lamda=1/t;%转移次数的倒数 tau_best(t),bestindex=min(tau); for i=1:ant p(t,i)=(tau(bestindex)-tau(i)/tau(bestindex);%转移概率(最优-蚂蚁i)/最优 %此种概率选择易陷入局部最优解 end for i=1:ant if p(t,i)p0 temp=X(i)+(2*rand-1)*lamda;%蚂蚁移动 else temp=X(i)+(ub-lb)*(rand-0.5); end if tempub temp=ub; end if F1(temp)F1(X(i) X(i)=temp; end end for i=1:ant tau(i)=(1-rou)*tau(i)+F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公文写作培训试题及答案
- 2025年急救护理学自考题库及答案
- 淘宝运营培训知识点
- §2 矩阵变换的性质说课稿-2025-2026学年高中数学北师大版2011选修4-2矩阵与变换-北师大版2006
- Unit 3 Could you please clean your room Section A Grammar focus 英文版教学设计 -人教版英语八年级下册
- 2023四年级数学上册 七 小小志愿者-混合运算信息窗1 不带括号的三步混合运算第3课时说课稿 青岛版六三制
- 氢能课件教学
- 一、设置页面版式教学设计-2025-2026学年初中信息技术(信息科技)七年级下册沪科版
- Silane-PEG-N3-MW-1000-Silane-PEG-azide-MW-1000-生命科学试剂-MCE
- 疫情知识培训内容课件
- 五年(2021-2025)高考语文真题分类汇编:专题03 文学类文本阅读(小说)(全国)(原卷版)
- 2025年黑龙江吉林辽宁内蒙古高考物理真题(原卷版)
- 2025四川数据集团有限公司第二批员工招聘3人笔试历年参考题库附带答案详解
- 2025保密教育线上培训考试题含答案完整版
- 2025年甘肃省天水市供热有限公司招聘12人笔试历年参考题库附带答案详解
- 2025年一卷政治高考真题及答案
- 厨房火灾安全培训教材课件
- 丙烯画风景课件
- 医院医保培训试题及答案
- DB15∕T 3843-2025 新能源分布式电源并网技术规范
- 外市电安全培训课件
评论
0/150
提交评论