收藏 分享(赏)

蚁群算法求解TSP问题.doc

上传人:j35w19 文档编号:9042218 上传时间:2019-07-21 格式:DOC 页数:11 大小:223.50KB
下载 相关 举报
蚁群算法求解TSP问题.doc_第1页
第1页 / 共11页
蚁群算法求解TSP问题.doc_第2页
第2页 / 共11页
蚁群算法求解TSP问题.doc_第3页
第3页 / 共11页
蚁群算法求解TSP问题.doc_第4页
第4页 / 共11页
蚁群算法求解TSP问题.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、HUNAN UNIVERSITY课 程 作 业课程题目 智能优化算法 学 生 姓 名 李小燕学 生 学 号 S131020016专 业 班 级 计算机科学与技术学 院 名 称 信息科学与工程学院指 导 老 师 杨圣洪2014 年 6 月 8 日蚁群算法求解 TSP 问题摘要:蚁群算法是一种分布式内在并行算法。单个蚂蚁的搜索过程是彼此独立的,易于局部最优,通过个体间不断的信息交流和传递有利于发现较好解;并且该算法是一种正反馈算法。路径上的信息素浓度较高,将吸引更多的蚂蚁沿这条路径运动,又使得信息素浓度增加,加快了算法的进化过程。本文通过求解 TSP 问题,通过在特定情况下对路径进行逐步遍历比较来

2、降低陷入局部最优解的可能性, 找出最优解。关键词:蚁群算法;TSP;信息素;遍历1. 引言TSP 问题又称最短路径问题,还称为旅行商问题,是一种比较经典的 NP 难题,问题描述较简单,而获得最优解却十分困难。求解 TSP 问题不仅为其他算法提供了使用平台,而且算法的优劣性能也可通过其求得 TSP 问题的解集来验证。旅行商问题的经典描述为:已知 N 个城市及相互间的距离,旅行商从某城市出发遍历这 N 个城市后再回到原点,在旅行商每个城市都只访问一次的前提下确定一条最短路径。蚁群算法是一种基于种群的启发式仿生进化系统。该算法通过模拟自然界的蚂蚁觅食过程对目标进行搜索,而在搜索过程中人工蚂蚁会在其经

3、过的路径上释放信息素,蚁群依赖于同类散发在周围环境中的特殊物质信息素的轨迹来决定自己的去向。当某些路径上走过的蚂蚁越来越多时,留下的信息素也会越来越多,以致后蚂蚁选择该路径的概率也越来越高,从而更增加了该路径的吸引强度,逐渐形成了一条它们自己事先并未意识到的最短路线。蚁群算法实现 TSP 过程为:将 m 只蚂蚁放入到 n 个随机选择的城市中,那么每个蚂蚁每步的行动是:根据一定的依据选择下一个它还没有访问的城市;同时在完成一步(从一个城市到达另一个城市)或者一个循环(完成对所有 n 个城市的访问)后,更新所有路径上的信息素浓度。2. 蚁群算法的数学模型(1) 、基本参数、信息素浓度公式、择路概率

4、设蚂蚁的数量为 m,城市的数量为 n,城市 i 与城市 j 之间的距离为 dij,t时刻城市 i 与城市 j 之间的信息素浓度为 tij(t),初始时刻,各个城市间连接路径上的信息素浓度相同,不妨记为 tij(0)=t0。蚂蚁 k(k=1,2,m)根据各城市间连接路径上的信息素浓度,决定其下一个要访问的城市,设 Pijk(t)表示 t 时刻,蚂蚁 k 从城市 i 到城市 j 的概率,其计算公式为如下: ij()()P0ij ij kkij ijsalow kttsalowt l 其中:ij(t)为启发式函数, ij(t)=1/dij,表示蚂蚁从城市 i 转移到城市 j 的期望程序;allowk

5、(k=1,2,m)表示蚂蚁 k 待访问的城市的集合,开始时 allowk 为其他n-1 城市,随着时间推进,其中的元素不断减少,直至为空,表示所有城市访问完,即遍历所有城市。为信息素的重要程度因子,其值越大,转移中起的作用越大为启发函数的重要程度因子,其值越大,表示启发函数在转移中的作用越大,即蚂蚁以较大的概率转移到距离短的城市。蚂蚁释放的信息素会随时间的推进而减少,设参数(0= rand); target = allow(target_index(1);Table(i,j) = target;endend% 结果显示Shortest_Length,index = min(Length_bes

6、t);Shortest_Route = Route_best(index,:);disp(最短距离 : num2str(Shortest_Length);disp(最短路径 : num2str(Shortest_Route Shortest_Route(1);% 绘图figure(1)plot(citys(Shortest_Route,1);citys(Shortest_Route(1),1),.citys(Shortest_Route,2);citys(Shortest_Route(1),2),o-);grid onfor i = 1:size(citys,1)text(citys(i,1)

7、,citys(i,2), num2str(i);endtext(citys(Shortest_Route(1),1),citys(Shortest_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

8、:)legend(最短距离 ,平均距离)xlabel(迭代次数 )ylabel(距离)title(各代最短距离与平均距离对比)4.3 实验结果与分析使用不同的蚁群数量和迭代次数后求得的最短距离和最短路径如下所示:1. 蚁群数 50,迭代次数 200最短距离:15601.9195最短路径:14 12 13 11 23 16 5 6 7 2 4 8 9 10 3 18 17 19 24 25 20 21 22 26 28 27 30 31 29 1 15 142. 蚁群数 50,迭代次数 100最短距离:15972.7648最短路径:1 15 13 12 14 29 11 23 16 5 6 7

9、2 4 8 9 10 3 18 17 19 24 25 20 21 22 26 28 27 30 31 13. 蚁群数 100,迭代次数 100最短距离:15601.9195最短路径:14 12 13 11 23 16 5 6 7 2 4 8 9 10 3 18 17 19 24 25 20 21 22 26 28 27 30 31 29 1 15 144. 蚁群数 50,迭代次数 300最短距离:15601.9195最短路径:1 15 14 12 13 11 23 16 5 6 7 2 4 8 9 10 3 18 17 19 24 25 20 21 22 26 28 27 30 31 29

10、15. 蚁群数 100,迭代次数 200最短距离:15601.9195最短路径:14 12 13 11 23 16 5 6 7 2 4 8 9 10 3 18 17 19 24 25 20 21 22 26 28 27 30 31 29 1 15 146. 蚁群数 100,迭代次数 300最短距离:15553.0468最短路径:10 9 8 4 2 5 6 7 13 12 14 15 1 29 31 30 27 28 26 21 22 18 3 17 19 24 20 25 11 23 16 107. 蚁群数 150,迭代次数 300最短距离:15601.9195最短路径:1 15 14 12

11、 13 11 23 16 5 6 7 2 4 8 9 10 3 18 17 19 24 25 20 21 22 26 28 27 30 31 29 1从以上的实验结果可看出,蚁群数量和迭代次数对算法的实验结果有一定影响,当蚁群数确定时,随着迭代次数的增加,最短距离会有所减小,但增加到一定的程度,最短距离将不再变化;当迭代次数不变,随着蚁群数量的增加,最短距离也有一定的改进。但增加到一定程度,最短距离还可能有所增加。5. 总结本次实验是通过 matlab 编程来实现蚁群优化算法,通过实验结果,我们发现虽然我们找到了问题的最优解,但是最优解的收敛性并不乐观,并不能求得问题的精确解,并且随着参数的调节运行结果有随机性。另外,在蚁群算法求解过程中,蚂蚁的数量和城市的数量差距对结果也是具有一定影响的。当城市规模较大的时候,问题的复杂度呈指数增长,仅仅靠这样一个基础单一的信息素更新机制引导搜索偏向,搜索效率有瓶颈。总的来说,该算法具有较强的自适应性,易于与其他方法组合,适用于解决组合优化问题。

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

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

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


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

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

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