TSP问题的几种解法对比.pdf
文本预览下载声明
城市旅行问题之路程短
摘要
城市旅行问题即旅行商(TSP)问题,要从图G 的所有周游路线中求取最小成
本的周游路线,而从初始点出发的周游路线一共有(n-1)!条,即等于除初始结点
外的n-1 个结点的排列数,因此旅行商问题是一个排列问题。排列问题比子集合
的选择问题通常要难于求解得多,这是因为 n 个物体有 n!种排列,只有子集合
2
(n!O( n ))。通过枚举(n-1)!条周游路线,从中找出一条具有最小成本的周游路线
的算法,其计算时间显然为O(n!)。这种枚举法运算量相当庞大,随着城市数量
呈指数增长。
为此,我们对比应用随机探索的模拟退火算法,线性规划和蚁群算法三种方
法:模拟退火算法,利用物理退火达到平衡态时的统计思想,建立数学模型,编
写该算法的MATLAB 程序,进行求解,得出最短旅行的最短距离为422.13 ;对
TSP 的约束条件和目标函数编写LINGO 程序,经过多次迭代,得出最短旅行的
最短距离也为 422.13 ;蚁群算法:基于自然界蚂蚁觅食的最短路径原理,建立
模型,通过MATLAB 程序,得出最短旅行距离为427.8971 。
关键词 模拟退火算法 线性规划 蚁群算法
一.问题重述
一个人要到30 个不同的城市游玩,每两个城市i 和j之间的距离为 ,如何选
择一条路径使得此人走遍所有城市后又回到起点,要求所走路径最短。
二.符号说明
S 解空间
C 代价函数
P 接受概率
城市i 和j 之间的距离
N 城市的数量
三.问题分析与处理
便于我们说明和解决问题,先将题中给出的城市编号:
城市编号 X 坐标 Y 坐标 城市编号 X 坐标 Y 坐标 城市编号 X 坐标 Y 坐标
1 41 94 11 64 60 21 87 76
2 37 84 12 18 54 22 18 40
3 57 64 13 22 60 23 13 40
4 25 62 14 83 46 24 82 7
5 7 64 15 91 38 25 62 32
6 2 99 16 25 38 26 58 35
7 68 58 17 24 42 27 45 21
8 71 44 18 58 69 28 41 26
9 54 62 19 71 71 29 44 35
10 83 69 20 74 78 30 4 5
显示全部