求解TSP问题的一种启发式算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

求解TSP问题的一种启发式算法
孙宪丽;王敏;李颖
【摘要】TSP问题模型应用广泛,其求解策略的研究具有重要的理论和实践意义.根据TSP问题的特点,借鉴无向完全图上最小生成树的生成过程,设计了一种启发式算法对TSP问题进行求解.该算法的基本思想是以无向完全图上不同最小生成树为基础,采用启发式的方法构造不同闭合回路,最后取最短闭合回路作为最优解.文中采用C语言编程,同时分析了算法的性能和时间复杂度,并进行了大量仿真计算.结果表明设计的算法能够有效求得TSP问题的优化解.
【期刊名称】《计算机技术与发展》
【年(卷),期】2010(020)010
【总页数】5页(P70-73,77)
【关键词】旅行商问题;启发式算法;最小生成树
【作者】孙宪丽;王敏;李颖
【作者单位】沈阳工程学院,信息系,辽宁,沈阳,110136;沈阳工程学院,基础部,辽宁,沈阳,110136;沈阳工程学院,基础部,辽宁,沈阳,110136
【正文语种】中文
【中图分类】TP301.6
0 引言
TSP(Traveling Salesman Problem)问题[1],又称旅行商问题,是运筹学以及最优化
理论等领域中的一个经典问题。

TSP问题已经证明是NP(Nondeterministic Polynomial)完全问题。

到目前为止,所有的NP完全问题都还没有多项式时间算法。

然而,由于TSP问题具有广泛的应用背景,例如可以用来解决资源分配问题、路径选择问题、车辆调度问题、产品切割问题等等。

因此,TSP问题长期以来吸引着众多
学者对其求解策略展开研究,设计并开发了多种算法对TSP问题求解。

这些算法通
常可以分为两类:一类是精确求解;另一类是近似求解。

其中,精确求解在理论上能够保证求得问题的最优解,但算法的时间复杂度按指数规律增长。

因此,难于用此方法
解决大规模问题。

在近似求解中,研究较多的是:
(1)采用理论的方法证明算法的上界。

例如,对于满足三角不等式的TSP问题,用christofides算法已经证明该算法的界为。

而杨宏等学者则进一步证明它的界可以更小为,其中n为节点数。

算法上界直接反映算法的好坏程度。

(2)采用智能优化算法求解TSP问题[2,3]。

例如,遗传算法(Genetic Algorithm,GA)、模拟退火(Simulated Annealing,SA)[4~6]、粒子群优化算法(Particle Swarm Optimization,PSO)[7]、蚁群算法(Ant Colony Optimization,ACO)[8~11]等等。

智能优化算法的优点是可以在有效时间内求解中小规模TSP问题的最优解或满意解。

但规模超过100个以上节点时,智能优化算法效果并不理想,或者收敛速度慢、花费时间长,或者达优率差。

(3)启发式算法。

这类算法根据具体问题的特点设计一些启发式搜索策略来寻求问
题的优化解。

在实际使用时可能很有效,但有时很难说清它的道理。

由于问题的数
据本身可能就是近似的,因此在实际中遇到的许多NP完全问题也不要求获得非常
精确的解。

并且许多解NP完全问题的近似算法可以用很少的时间获得一个很好的近似解。

因此,近似求解也是非常有效且实用的方法。

1 问题描述
TSP问题的一般描述为:旅行商从驻地出发,经所有要去的城市一次后返回原地。


如何安排其旅行路线才能使总的旅行距离(或时间、费用等)最少。

其数学描述为:设有 N个城市的集合V={v1,v2,…,vN},每两个城市之间的距离为dvi,vj∈R+,其中,vi,vj∈V且i,j=1,2,…,N;设对于城市集合V的一个访问顺序为
T={t1,t2,…,tk,…,tN},其中,tk=vi,i=1,2,…,N,且tN+1=t1。

问题是求一条距离最短的包含所有城市的闭合回路,即求满足目标函数的城市序列。

其中 Q为这N个城市不重复排列的所有可能的闭合回路。

2 算法设计
2.1 基本思想
TSP问题是求距离之和最短的城市序列。

而现有关于无向图的最小生成树算法[4],能够很快找到图中权值较小的边,恰好与文中的目标吻合。

因此,文中设计的启发式算法首先利用最小生成树算法[12]构造无向图G上的TSP问题的最小生成树;然后从最小生成树开始构造闭合回路(N个城市不重复排列序列);最后,采用枚举的方法,确定从不同最小生成树开始构造的闭合回路中距离最小的一个,即最短城市序列。

由于闭合回路中每个节点的度都为2,因此,在构造闭合回路时需要处理最小生成树中度不等于2的节点。

处理时,第一步是通过删除边的方法降低最小生成树中度大于2的节点的度,保证每个节点的度都不大于2。

删除边时,首先选择与待处理节点(度大于2的节点)相连接的节点中度最大的节点,如果被选择节点的度大于2,则删除这两节点之间的边,降低这两节点的度。

否则,选择与待处理节点相连接的节点中权值大的节点,删除这两节点之间的边,降低这两节点的度。

第二步是通过连接的方法,连接最小生成树中度小于2路。

连接时为了保证所有节点在同一个连通分量中,首先标记各连通分量,然后选择不同连通分量中度小于2的节点并且两点之间权值小的点进行连接,从而构成一个大的连通分量,最后连接同一个连通分量中仅有的两个度为1的节点,从而构成一个闭合回路。

从不同节点开始生成最小生成树并构造闭合回路的计算是相互独立的,因此,可以采用并行计算的方法生成最小生成树并构
造闭合回路,然后比较各回路的距离值,从而确定最佳闭合回路(城市序列)。

由于 N 个城市的顶点集的最小生成树的数量远远小于顶点个数,因此比较各回路的距离值,确定最佳闭合回路算法的时间复杂度小于 O(N)。

文中针对城市规模超过400的算例采用并行方式计算。

2.2 求解步骤
(1)构造 N个城市的顶点集。

图1为eil51[5]的顶点集。

图1 eil51顶点集
(2)构造最小生成树。

图2为eil51的一个最小生成树。

图2 eil51最小生成树
(3)删除与度大于2节点相连的边。

图3为eil51最小生成树删除边之后的结果。

(4)连接度小于2的节点。

图4为eil51连接后的结果。

(5)枚举并确定从不同最小生成树开始构造的闭合回路中距离最短的一个回路。

(6)输出最优解。

2.3 算法流程
算法流程如图5所示。

其中,图5(a)为算法总流程图,用于描述算法总体设计思路及执行步骤;图 5(b)为处理节点度大于2的算法流程图,用于描述对最小生成树中度大于2的节点的处理过程,主要是删除与正在处理节点相连节点中度比较大或连接这两点的边的权值比较大的节点;图5(c)为连接度小于2节点的算法流程图,用于描述
如何连接度小于2的节点并构成闭合回路的过程,连接时主要选择度小于2并且两
点之间边的权值最小的点进行连接。

图5 算法流程
3 算例计算
文中采用C语言开发上述启发式算法,并对大量算例进行了计算,城市节点数量规模从10个城市至1000个城市。

表1为部分算例计算结果,其中的数据源于TSPLIB(城市间的距离四舍五入以整数
计算)。

表 1中的数据对比了采用文中设计的启发式算法计算的结果与网络上已有
的最优结果,算例计算表明,文中设计的启发式算法能够有效求得TSP问题的优化解。

表1 TSP算例计算结果
4 结束语
文中根据TSP问题的特点,针对无向完全图上的TSP问题设计了一种启发式算法对问题进行求解,并进行了大量算例计算。

算例计算结果表明了算法的有效性。

该算
法的时间复杂度为O(N2)。

优点是时间复杂度较好,可以解决规模较大的TSP问题;缺点是只能得到问题的近似解,而不是最优解。

建议在城市数量小于100时采用智
能优化算法求解;超过100时,采用启发式算法。

参考文献:
[1]杨宏,唐艳,叶笑飞.基于树算法的 TSP问题的一个界[J].技术与方
法,2008,27(11):87-88.
[2]王凌.智能算法及其应用[M].北京:清华大学出版社,2001.
[3]王建宇,周春光,郭东伟,等.基于 Rank的进化算法解决多目标TSP问题[J].计算机工程与科学,2008(2):75-77.
[4]汪松泉,程家兴.遗传算法和模拟退火算法求解TSP的性能分析[J].计算机技术与
发展,2009,19(11):97-100.
[5]Rudolhp C.Convergence Properties of Canonical Genetic
Algorithms[J].IEEE Trans.NeuralNetworks,2006(5):96-101.
[6]For B R,McMahon M B.Genetic Operators for the Sequencing Problems Foundation of Genetic Algorithms[M].[s.l.]:Morgan Kaufmann Publishers,2007:284-300.
[7]高海兵,周驰,高亮.广义粒子群优化模型[J].计算机学报,2005,28(12):1980-1987.
[8]高尚.解旅行商问题的混沌蚁群算法[J].系统工程理论与实践,2005(9):100-104.
[9]Parpnelli R S,Lopes H S,Freitas.Data Mining with an Ant Colony Optimization Algorithm[J].IEEE Transactions on Evo-lutionary Computation,2002,6(4):321-332.
[10]张泓,李爱平,刘雪梅.面向 TSP求解的混合蚁群算法[J].计算机工
程,2009(8):34-37.
[11]汪采萍,胡学钢.具有分段和变异特性的蚁群算法求解TSP问题[J].计算机技术与发展,2008,18(6):90-93.
[12]严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,1997.。

相关文档
最新文档