蚁群算法求解TSP问题_第1页
蚁群算法求解TSP问题_第2页
蚁群算法求解TSP问题_第3页
蚁群算法求解TSP问题_第4页
蚁群算法求解TSP问题_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、广东工业大学课程作业课程题目基于ACO算法求解城市tsp学生姓名朱美霞学生学号2111405091专业班级计算机技术2015年2月15日1.AOC算法的数学模型(1)、基本参数、信息素浓度公式、择路概率设蚂蚁的数量为m,城市的数量为n,城市i与城市j之间的距离为dij,t时刻城市i与城市j之间的信息素浓度为tij,初始时刻,各个城市间连接路径上的信息素浓度相同,不妨记为tj(0)=t0。蚂蚁k(k=1,2,.,m)根据各城市间连接路径上的信息素浓度,决定其下一个要访问的城市,设Pijk(t)表示t时刻,蚂蚁k从城市i到城市j的概率,其计算公式为如下:sallowksallowktij(t):M

2、t):Rk='、3:j(t)1|s三allow0其中:%(t)为启发式函数,/(t)=1/dij,表示蚂蚁从城市i转移到城市j的期望程序;allowk(k=1,2,,m)表示蚂蚁k待访问的城市的集合,开始时allowk为其他n-1城市,随着时间推进,其中的元素不断减少,直至为空,表示所有城市访问完,即遍历所有城市。二为信息素的重要程度因子,其值越大,转移中起的作用越大P为启发函数的重要程度因子,其值越大,表示启发函数在转移中的作用越大,即蚂蚁以较大的概率转移到距离短的城市。蚂蚁释放的信息素会随时间的推进而减少,设参数P(0<P<1)表示信息素的挥发度,当所有蚂蚁完成一次循环

3、后,各个城市间连接路径上的信息素浓度,需要实时更新。ntij(t+1)=(1-P)tij(t)+5ij,%=£笺k土其中:Atijk表示蚂蚁k在城市i与城市j的连接路径上,释放的信息素浓度tij表示所有蚂蚁在城市i与城市j的连接路径上,释放的信息素浓度。(2)、Atijk的计算方法k;Q/Lk第k只蚂蚁从城市i访问城市jj=10其他其中:Q为常数,表示蚂蚁循环一次释放的信息素的总量;dij为第k只蚂蚁经过路径的长度,Length;4.相关程序1、访问每个城市一次也仅一次的最短路径,共有30个2、城市的坐标citys,这是直角坐标,根据二个城市的坐标值,可以用D=J(x1x2)2+(y

4、1-y2)2可计算出任意二个城市间的距离。citys=1304231236391315417722443712139934881535332615563238122941961004431279043865703007197025621756278814912381167613326953715167839182179406123703780221236762578402928384263293134291908350723673394264334393201293532403140355025452357277828263、代码clearallclcloadcitys_data.mat%计算

5、城市间相互距离n=size(citys,1);%市的个数D=zeros(n,n);%n行n列的矩阵,即任意二个城市之间的距离fori=1:nforj=1:nifi=jD(i,j)=sqrt(sum(citys(i,:)-citys(j,:).A2);elseD(i,j)=1e-4;endendend%初始化参数m=50;alpha=1;beta=5;rho=0.1;Q=1;Eta=1./D;Tau=ones(n,n);Table=zeros(m,n);依次走过的城市iter=1;iter_max=200;Route_best=zeros(iter_max,n);Length_best=zero

6、s(iter_max,1);%蚂蚁数量%信息素重要程度因子%启发函数重要程度因子%信息素挥发因子%常系数%启发函数%信息素矩阵,全1矩阵%路径记录表,全0矩阵,每只蚂蚁%迭代次数初值%最大迭代次数%各代最佳路径%各代最佳路径的长度%各代路径的平均长度Length_ave=zeros(iter_max,1);%迭代寻找最佳路径whileiter<=itermax%随机产生各个蚂蚁的起点城市start=zeros(m,1);%m是蚂蚁的个数,m行1列的矩阵,记录每个蚂蚁的城市编号fori=1:mtemp=randperm(n);start(i)=temp(1);endTable(:,1)=s

7、tart;%路径记录表的1歹!J,为每个蚂蚁的起点城市%构建解空间citys_index=1:n;%逐个蚂蚁路径选择fori=1:m%逐个城市路径选择forj=2:ntabu=Table(i,1:(j-1);%已访问的城市集合(禁忌表)allow_index=ismember(citys_index,tabu);%是tabu的城市就是要访问的城市allow=citys_index(allow_index);%待访问的城市集合P=allow;fork=1:length(allow)%计算城市间转移概率P(k)=Tau(tabu(end),allow(k)Aalpha*Eta(tabu(end),

8、allow(k)Abeta;endP=P/sum(P);%B一化%轮盘赌法选择下一个访问城市Pc=cumsum(P);%依次累加,是实现轮盘赌法选择的方法target_index=find(Pc>=rand);target=allow(target_index(1);Table(i,j)=target;endend%结果显示Shortest_Length,index=min(Length_best);Shortest_Route=Route_best(index,:);disp('最短距离:'num2str(Shortest_Length);disp('最短路径:

9、'num2str(Shortest_RouteShortest_Route(1);%绘图figure(1)plot(citys(Shortest_Route,1);citys(Shortest_Route(1),1),citys(Shortest_Route,2);citys(Shortest_Route(1),2),'o-');gridonfori=1:size(citys,1)text(citys(i,1),citys(i,2),''num2str(i);endtext(citys(Shortest_Route(1),1),citys(Shortes

10、t_Route(1),2),'起点');text(citys(Shortest_Route(end),1),citys(Shortest_Route(end),2),'终点');xlabel('城市位置横坐标')ylabel('城市位置纵坐标')title('蚁群算法优化路径(最短距离:'num2str(Shortest_Length)')')figure(2)plot(1:iter_max,Length_best,'b',1:iter_max,Length_ave,'r:&

11、#39;)legend(最短距离','平均距离')xlabel('迭代次数)ylabel('距离')t田e('各代最短距离与平均距离对比')end5.结果与分析使用不同的蚁群数量和迭代次数后求得的最短距离和最短路径如下所示:1 .蚁群数50,迭代次数200最短距离:15601.9195最短路径:14121311231656724891031817192425202122262827303129115142 .蚁群数50,迭代次数100最短距离:15972.7648最短路径:11513121429112316567248910318

12、17192425202122262827303113 .蚁群数100,迭代次数100最短距离:15601.9195最短路径:14121311231656724891031817192425202122262827303129115144 .蚁群数50,迭代次数300最短距离:15601.9195最短路径:1151412131123165672489103181719242520212226282730312915 .蚁群数100,迭代次数200最短距离:15601.9195最短路径:14121311231656724891031817192425202122262827303129115146 .蚁群数100,迭代次数300最短距离:15553.0468最短路径:10984256713121415129313027282621221831719242025112316107 .蚁群数150,迭代次数300最短距离:15601.9195最短路径:11514121311231656724810318171924252021222628273031291从以上的实验结果可看出,蚁群数量和迭代次数对算法的实验结果有一定影响,当蚁群数确定时,随着迭代次数的增加,最短距离会有所减小,但增加到一定的程度,最短距离将不再变化;当迭代次数不变,随着蚁群数量的增加,最短距离也有一定的改进。但增

温馨提示

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

评论

0/150

提交评论