matlab蚁群算法代码,蚁群算法(ACO)MATLAB实现_第1页
matlab蚁群算法代码,蚁群算法(ACO)MATLAB实现_第2页
matlab蚁群算法代码,蚁群算法(ACO)MATLAB实现_第3页
matlab蚁群算法代码,蚁群算法(ACO)MATLAB实现_第4页
matlab蚁群算法代码,蚁群算法(ACO)MATLAB实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、matlab蚁群算法代码,蚁群算法(ACO)MATLAB实现()蚁群算法的由来蚁群算法(ant colony optimization)最早是由Marco Dorigo等在1991年提出,他们在研究新型算法的过程中,发现蚁群在寻找物时,通过分泌种称为信息素的物激素交流觅信息从能快速的找到标,据此提出了基于信息正反馈原理的蚁群算法。蚁群算法的基本思想来源于然界蚂蚁觅的最短路径原理,根据昆科学家的观察,发现然界的蚂蚁虽然视觉不发达,但它们可以在没有任何提的情况下找到从物源到巢的最短路径,并在周围环境发变化后,适应地搜索新的最佳路径。系统来说,它们却达到了寻找到最优路径的客观上的效果。这就是群体智能

2、。()蚁群算法能做什么(TSP,个寻找最短路径的问题)上取得了较好的成效。前,也已渐渐应到其他领域中去,在图着问题、车辆调度问题、集成电路 设计、通讯络、数据聚类分析等都有所应。(三)蚁群算法实现优化的 函数为F(x,y)= -(x.2+3*y.4-0.2*cos(3*pi*x)-0.4*cos(4*pi*y)+0.6)MATLABclear clcAnt = 300;%蚂蚁数量Times = 80;%移动次数Rou = 0.9;%荷尔蒙发挥系数P0 = 0.2;%转移概率Lower_1 = -1;%搜索范围Upper_1 = 1;Lower_2 = -1;Upper_2 = 1; for i

3、=1:AntX(i,1)=(Lower_1+(Upper_1-Lower_1)*rand); X(i,2)=(Lower_1+(Upper_2-Lower_2)*rand); Tau(i)=F(X(i,1),X(i,2);end step=0.05;f=-(x.2+3*y.4-0.2*cos(3*pi*x)-0.4*cos(4*pi*y)+0.6); x,y=meshgrid(Lower_1:step:Upper_1,Lower_2:step:Upper_2); z=eval(f);figure(1); subplot(1,2,1);mesh(x,y,z); hold on;plot3(X(:

4、,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 lamda=1/T;Tau_Best(T),BestIndex=max(Tau); for i=1:AntP(T,i)=(Tau(BestIndex)-Tau(i)/Tau(BestIndex);%计算转移状态概率endfor i=1:Ant if P(T,i)temp1=X(i,1)+(2*rand-1)*lamda; temp2=X(i,2)+(2*rand-1)*lamda; els

5、e%全局搜索temp1=X(i,1)+(Upper_1-Lower_1)*(rand-0.5); temp2=X(i,2)+(Upper_2-Lower_2)*(rand-0.5); if temp1 temp1=Lower_1; if temp1Upper_1 temp1=Upper_1; if temp2 temp2=Lower_2; if temp2Upper_2 temp2=Upper_2; if F(temp1,temp2)F(X(i,1),X(i,2)%更新位置X(i,1)=temp1;X(i,2)=temp2; for i=1:AntTau(i)=(1-Rou)*Tau(i)+F

6、(X(i,1),X(i,2);%更新荷尔蒙endend subplot(1,2,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)

7、; 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182clcAnt=300;%蚂蚁数量Times=80;%移动次数Rou=0.9;%荷尔蒙发挥系数P0=0.2;%转移概率Lower_1=-1;%搜索范围Upper_1=1;Lower_2=-1; Upper_2=1; fori=1:AntX(i,1)=(Lower_1+(Upper_1-L

8、ower_1)*rand); X(i,2)=(Lower_1+(Upper_2-Lower_2)*rand); Tau(i)=F(X(i,1),X(i,2);end step=0.05;f=-(x.2+3*y.4-0.2*cos(3*pi*x)-0.4*cos(4*pi*y)+0.6); x,y=meshgrid(Lower_1:step:Upper_1,Lower_2:step:Upper_2); z=eval(f);figure(1); subplot(1,2,1);mesh(x,y,z); holdon;plot3(X(:,1),X(:,2),Tau,k*)holdon;text(0.1

9、,0.8,-0.1,蚂蚁的初始位置分布); xlabel(x);ylabel(y);zlabel(f(x,y); forT=1:Timeslamda=1/T; Tau_Best(T),BestIndex=max(Tau); fori=1:AntP(T,i)=(Tau(BestIndex)-Tau(i)/Tau(BestIndex);%计算转移状态概率end fori=1:Ant ifP(T,i)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)

10、*(rand-0.5); temp2=X(i,2)+(Upper_2-Lower_2)*(rand-0.5); iftemp1 temp1=Lower_1; temp1=Upper_1; iftemp2 temp2=Lower_2; temp2=Upper_2; ifF(temp1,temp2)F(X(i,1),X(i,2)%更新位置X(i,1)=temp1;X(i,2)=temp2; endend fori=1:AntTau(i)=(1-Rou)*Tau(i)+F(X(i,1),X(i,2);%更新荷尔蒙endend subplot(1,2,2);mesh(x,y,z); holdon; x

11、=X(:,1);y=X(:,2);plot3(x,y,eval(f),k*); holdon;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); 优化函数:MATLABfunction f = F(x,y)f = -(x.2+3*y.4-0.2*cos(3*pi*x)-0.4*cos(4*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论