收藏 分享(赏)

蚁群算法实例仿真.doc

上传人:精品资料 文档编号:8217856 上传时间:2019-06-15 格式:DOC 页数:7 大小:32.83KB
下载 相关 举报
蚁群算法实例仿真.doc_第1页
第1页 / 共7页
蚁群算法实例仿真.doc_第2页
第2页 / 共7页
蚁群算法实例仿真.doc_第3页
第3页 / 共7页
蚁群算法实例仿真.doc_第4页
第4页 / 共7页
蚁群算法实例仿真.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、蚁群算法实例仿真TSPLIB 中的 eil51 问题C=37 5249 4952 6420 2640 3021 4717 6331 6252 3351 2142 4131 325 2512 4236 1652 4127 2317 3313 1357 5862 4242 5716 578 527 3827 6830 4843 6758 4858 2737 6938 4646 1061 3362 6363 6932 2245 3559 155 610 1721 105 6430 1539 1032 3925 3225 5548 2856 3730 40;实际中的最优环游为Tour=12282631

2、2833635202292116503430949103933451544424019411325142443723486275146124718417375381132;设定性价比较优的参数, 对 eil513;40.7;1;m30;NC_ax10;Q问题进行仿真。function R_best,L_best,L_ave,Shortest_Route,Shortest_Length=acatsp(C,NC_max,m,Alpha,Beta,Rho,Q)%-% 主要符号说明% C n 个城市的坐标, n2 的矩阵% NC_max 最大迭代次数% m 蚂蚁个数% Alpha 表征信息素重要程度的

3、参数% Beta 表征启发式因子重要程度的参数% Rho 信息素蒸发系数% Q 信息素增加强度系数% R_best 各代最佳路线% L_best 各代最佳路线的长度%=%第一步:变量初始化n=size(C,1);%*表示问题的规模(城市个数)D=zeros(n,n);%D 表示完全图的赋权邻接矩阵for i=1:nfor j=1:nif i=jD(i,j)=(C(i,1)-C(j,1)2+(C(i,2)-C(j,2)2)0.5;elseD(i,j)=eps;endD(j,i)=D(i,j);endendEta=1./D;%Eta 为启发因子,这里设为距离的倒数Tau=ones(n,n);%Ta

4、u 为信息素矩阵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=rand);to_visit=J(Select(1);Tabu(i,j)=to_visit;endendif NC=2Tabu(1,:)=R_best(NC-1,:);end%第四步:记录本次迭代最佳路线L=zeros(m,1);for i=1:mR=Tabu(i,:);for j=1:(n

5、-1)L(i)=L(i)+D(R(j),R(j+1);endL(i)=L(i)+D(R(1),R(n);endL_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:mfor 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);endDelta_Tau(Tabu(i,n),Tabu(

6、i,1)=Delta_Tau(Tabu(i,n),Tabu(i,1)+Q/L(i);endTau=(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 onplot(L_ave)function DrawRo

7、ute(C,R)%=% DrawRoute.m% 画路线图的子函数%-% C Coordinate 节点坐标,由一个 N2 的矩阵存储% R Route 路线%=N=length(R);scatter(C(:,1),C(:,2);hold onplot(C(R(1),1),C(R(N),1),C(R(1),2),C(R(N),2)hold onfor ii=2:Nplot(C(R(ii-1),1),C(R(ii),1),C(R(ii-1),2),C(R(ii),2)hold onend结果输出所得的最优环游为: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。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报