首页 蚁群算法实例仿真

蚁群算法实例仿真

举报
开通vip

蚁群算法实例仿真蚁群算法实例仿真 TSPLIB中的eil51问题 C=[ 37 52 49 49 52 64 20 26 40 30 21 47 17 63 31 62 52 33 51 21 42 41 31 32 5 25 12 42 36 16 52 41 27 23 17 33 13 13 57 58 62 42 42 57 16 57 8 52 7 38 27 68 30 48 43 67 58 48 58 27 37 69 38 46 46 10 61 33 62 63 63 69 32 22 45 35 59 15 ...

蚁群算法实例仿真
蚁群算法实例仿真 TSPLIB中的eil51问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 C=[ 37 52 49 49 52 64 20 26 40 30 21 47 17 63 31 62 52 33 51 21 42 41 31 32 5 25 12 42 36 16 52 41 27 23 17 33 13 13 57 58 62 42 42 57 16 57 8 52 7 38 27 68 30 48 43 67 58 48 58 27 37 69 38 46 46 10 61 33 62 63 63 69 32 22 45 35 59 15 5 6 10 17 21 10 5 64 30 15 39 10 32 39 25 32 25 55 48 28 56 37 30 40     ]; 实际中的最优环游为 Tour=[ 1 22 8 26 31 28 3 36 35 20 2 29 21 16 50 34 30 9 49 10 39 33 45 15 44 42 40 19 41 13 25 14 24 43 7 23 48 6 27 51 46 12 47 18 4 17 37 5 38 11 32 ]; 设定性价比较优的 参数 转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应 , 对eil51问题进行仿真。 function [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=acatsp(C,NC_max,m,Alpha,Beta,Rho,Q) %%------------------------------------------------------------------------- %%  主要符号说明 %%  C        n个城市的坐标,n×2的矩阵 %%  NC_max  最大迭代次数 %%  m        蚂蚁个数 %%  Alpha    关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 征信息素重要程度的参数 %%  Beta    表征启发式因子重要程度的参数 %%  Rho      信息素蒸发系数 %%  Q        信息素增加强度系数 %%  R_best  各代最佳路线 %%  L_best  各代最佳路线的长度 %%========================================================================= %%第一步:变量初始化 n=size(C,1);%*表示问题的规模(城市个数) D=zeros(n,n);%D表示完全图的赋权邻接矩阵 for i=1:n     for j=1:n         if i~=j             D(i,j)=((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2)^0.5;         else             D(i,j)=eps;         end         D(j,i)=D(i,j);     end end Eta=1./D;%Eta为启发因子,这里设为距离的倒数 Tau=ones(n,n);%Tau为信息素矩阵 Tabu=zeros(m,n);%存储并记录路径的生成 NC=1;%迭代计数器 R_best=zeros(NC_max,n);%各代最佳路线 L_best=inf.*ones(NC_max,1);%各代最佳路线的长度 L_ave=zeros(NC_max,1);%各代路线的平均长度 while NC<=NC_max%停止条件之一:达到最大迭代次数     %%第二步:将m只蚂蚁放到n个城市上     Randpos=[];     for i=1:(ceil(m/n))         Randpos=[Randpos,randperm(n)];     end     Tabu(:,1)=(Randpos(1,1:m))';     %%第三步:m只蚂蚁按概率函数选择下一座城市,完成各自的周游     for j=2:n         for i=1:m             visited=Tabu(i,1:(j-1));%已访问的城市             J=zeros(1,(n-j+1));%待访问的城市             P=J;%待访问城市的选择概率分布             Jc=1;             for k=1:n                 if length(find(visited==k))==0                     J(Jc)=k;                     Jc=Jc+1;                 end             end             %下面计算待选城市的概率分布             for k=1:length(J)                 P(k)=(Tau(visited(end),J(k))^Alpha)*(Eta(visited(end),J(k))^Beta);             end             P=P/(sum(P));             %按概率原则选取下一个城市             Pcum=cumsum(P);             Select=find(Pcum>=rand);             to_visit=J(Select(1));             Tabu(i,j)=to_visit;         end     end     if NC>=2         Tabu(1,:)=R_best(NC-1,:);     end     %%第四步:记录本次迭代最佳路线     L=zeros(m,1);     for i=1:m         R=Tabu(i,:);         for j=1:(n-1)             L(i)=L(i)+D(R(j),R(j+1));         end         L(i)=L(i)+D(R(1),R(n));     end     L_best(NC)=min(L);     pos=find(L==L_best(NC));     R_best(NC,:)=Tabu(pos(1),:);     L_ave(NC)=mean(L);     NC=NC+1     %%第五步:更新信息素     Delta_Tau=zeros(n,n);     for i=1:m         for j=1:(n-1)             Delta_Tau(Tabu(i,j),Tabu(i,j+1))=Delta_Tau(Tabu(i,j),Tabu(i,j+1))+Q/L(i);         end         Delta_Tau(Tabu(i,n),Tabu(i,1))=Delta_Tau(Tabu(i,n),Tabu(i,1))+Q/L(i);     end     Tau=(1-Rho).*Tau+Delta_Tau;     %%第六步:禁忌表清零     Tabu=zeros(m,n); end %%第七步:输出结果 Pos=find(L_best==min(L_best)); Shortest_Route=R_best(Pos(1),:); Shortest_Length=L_best(Pos(1)); subplot(1,2,1) DrawRoute(C,Shortest_Route) subplot(1,2,2) plot(L_best) hold on plot(L_ave) function DrawRoute(C,R) %%==================================================================== %%  DrawRoute.m %%  画路线图的子函数 %%-------------------------------------------------------------------- %%  C    Coordinate        节点坐标,由一个N×2的矩阵存储 %%  R    Route            路线 %%==================================================================== N=length(R); scatter(C(:,1),C(:,2)); hold on plot([C(R(1),1),C(R(N),1)],[C(R(1),2),C(R(N),2)]) hold on for ii=2:N     plot([C(R(ii-1),1),C(R(ii),1)],[C(R(ii-1),2),C(R(ii),2)])     hold on end 结果输出 所得的最优环游为: Tourbest=[33    45    15    44    42    19    41    13    40    4    17    37    46    51    12    47    18    14    25    24    43    7    23    48    6    27    1    22    28    31    26    8    2    16    21    29    20    35    36    3    32    11    38    5    30    34    50    9    49    10    39] 最短距离为489.600988245795。
本文档为【蚁群算法实例仿真】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_079973
暂无简介~
格式:doc
大小:47KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-09-19
浏览量:50