TSP问题蚁群算法通用Matlab程序.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[GreenSim.C原创】TSP问题蚁群算法通用Mat lab程序(附图) (2007-03-10 09:28:51)转载 蚁群算法是当前研究非常火热的一种智能算法,下面的蚁群算法 程序专门用于求解TSP问题,此程序市GreenSim团队于2006年初完 成,最初公开发表于研学论坛,我们经过仿真检验,发现此程序的优 化效率和鲁棒性都非常好。 function [R best, L best,L ave, Shortest Route,Shortest Length]=ACATSP (C, NC max, m, Alpha, Beta, Rho, Q) 忙二二二二二======================== %% ACATSP. m %% Ant Colony Algorithm for Traveling Salesman Problem %% ChengAihua, PLA Information Engineering University, ZhengZhou, China %% Email:aihuacheng^gmai1. com %% All rights reserved %% %% 主耍符号说明 %% c n个城市的坐标,nX2的矩阵 %% NC max 最大迭代次数 %% m 蚂蚁个数 %% Alpha 表征信息素重要程度的参数 %% Beta 表征启发式因子重要程度的参数 %% Rho 信息素蒸发系数 %% Q 信息索增加强度系数 %% Rbest 各代最佳路线 %% L best 各代最佳路线的长度 %% %%第一步:变量初始化 n二size(*, 1) ;%*表示问题的规模(城市个数) *=zeros(n, n) ;%D表示完全图的赋权邻接矩阵 for i二l:n for j二l:n if 1 二 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) ;%各代路线的平均长度 wh订e NC=NC_max%停止条件之一:达到最大迭代次数 %%笫二步:将m只蚂蚁放到n个城市上 Randpos=[]; for i=l: (ceil(m/n)) Randpos=[Randpos, randperm(n)]; end Tabu(:, 1)二(Randpos(1, ; %%第三步:ni只蚂蚁按概率函数选择下一座城市,完成各自的周 游 for j二2:n for i二l: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=l:length(J) P (k) = (Tau (visited(end), J(k))Alpha)*(Eta(visited(end), J(k)) Beta); en* *=*/(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(NCT,:); end %%第四步:记录本次迭代最佳路线 L二zeros (m, 1); for i二l:m R=Tabu(i,:); for j二1: (n~l) L(i)二 L(i)+D(R(j),R(j+l)); end L(i)=L(i)+D(R(l),R(n)); end L_best(NC)=min(L); pos=find (L=L_best (NC)); R best (NC, :)=Tabu (pos(l),:): L_ave(NC)=mean(L); NC二NC+1 %%第五步:更新信息素 Delta_Tau=zeros(n, n); for i二l:m fo

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档