当前位置:文档之家› 旅行商问题概述_郭靖扬

旅行商问题概述_郭靖扬

旅行商问题(TravelingSalesmanProblem,简称TSP)是一个著名的组合优化问题:给定n个城市,有一个旅行商从某一城市出发,访问每个城市各一次后再回到原出发城市,要求找出的巡回路径最短。

如果用图论来描述,那就是已知带权图G=(C,L),寻出总权值最小的Hamilton圈。

其中C={c1,c2,…,cn}表示n个城市的集合,L={lij|ci,cj∈C}是集合C中元素(城市)两两连接的集合,每一条边lij,都存在与之对应的权值dij,实际应用中dij可以表示距离、费用、时间、油量等。

TSP的描述虽然简单,解决起来却很困难。

最简单思路是用穷举法把所有可能的巡回路径全部列出来,最短的一个就是最优解,但这样只能处理很小规模的问题。

旅行商问题属于NP-complete问题,是NP(non-deterministicpoly-nominal)问题中最难的一类,不能在多项式时间内求解。

如果有n座城市,那么巡游路径共有(n-1)!/2条,计算的时间和(n-1)!成正比。

当城市数n=20,巡回路径有1.2×1018种,n=100,巡回路径就有多达4.6×10155种,而据估计宇宙中基本粒子数“仅仅只有”1087个。

尽管如此,随着算法研究的逐步深入和计算机技术飞速提高,对TSP问题的研究不断取得进展。

70年来,被征服的TSP规模从几十个城市增加到上万个城市。

目前的最高记录是在2004年5月,找到的巡游瑞典24978个城镇的最优路径(sw24978),花费了84.8个CPU年。

图1展示了TSP的研究进展,最近的二三十年时间里,被攻克的TSP规模高速增长,差不多是每十年增加一个数量级。

照这样发展下去的话,再过20年就能解决上百万个城市的TSP,有专家甚至已经为此准备好了数据:全球190,4711个城市的坐标。

当然,能不能达到这个目标,有赖于未来计算技术的发展。

图1TSP的发展字母后面的数字表示城市数,“sw24978”就是瑞典的24978个城镇。

一、应用旅行商问题具有重要的实际意义和工程背景。

它一开始是为交通运输而提出的,比如飞机航线安排、送邮件、快递服务、设计校车行进路线等等。

实际上其应用范围扩展到了许多其他领域,下面举几个实例。

印制电路板转孔是TSP应用的经典例子,在一块电路板上打成百上千个孔,转头在这些孔之间移动,相当于对所有的孔进行一次巡游。

把这个问题转化为TSP,孔相当于城市,孔到孔之间的移动时间就是距离。

为了避免大气干扰,使光学系统达到其衍射极限分辨率,欧美发达国家提出发展空间光干涉仪和综合孔径望远镜的计划。

美国航空航天局有一个卫星群组成空间天文台(Space-basedObservatories)的计划,用来探测宇宙起源和外星智慧生命。

欧洲空间局也有类似的Darwin计划。

对天体成像的时候,需要对两颗卫星的位置进行调整,如何控制卫星,使消耗的燃料最少,可以用TSP来求解。

这里把天体看作城市,距离就是卫星移动消耗的燃料。

美国国家卫生协会在人类基因排序工作中用TSP方法绘制放射性杂交图。

把DNA片断作为城市,它们之间的相似程度作为城市间的距离。

法国科学家已经用这种办法作出了老鼠的放射性杂交图。

此外,旅行商问题还有电缆和光缆布线、晶体结构分析、数据串聚类等多种用途。

更重要的是,它提供了一个研究组合优化问题的理想平台。

很多组合优化问题,比如背包问题、分配问题、车间调度问题,和TSP同属NP-complete类,它们都是同等难度的,如果其中一个能用多项式确定性算法解决,那么其他所有的NP-complete类问题也能用多项式确定性算法解决。

很多方法本来是从TSP发展起来的,后来推广到其他NP-complete类问题上去。

二、TSP求解方法求解旅行商问题的方法可以分为两大类,一类是精确算法,目的是要找到理论最优解;另一类是近似算法,不强求最优解,只要找到“足够好”的满意解就可以了。

(一)精确算法如前面所述,穷举法和全局搜索算法属于精确算法,但旅行商问题概述郭靖扬(电子科技大学光电信息学院,四川成都610054)【摘要】旅行商问题是组合优化的经典问题,应用广泛,而且长期以来被作为NP-complete问题的理想研究平台。

文章介绍了旅行商问题的基础知识、应用,以及常用的求解方法。

【关键词】旅行商问题;组合优化;NP-complete;k-opt;智能算法【中图分类号】TP182【文献标识码】A【文章编号】1008-1151(2006)08-0229-02大众科技DAZHONGKEJI2006年第8期(总第94期)No.8,2006(CumulativelyNo.94)【收稿日期】2006-03-18【作者简介】郭靖扬(1980-),四川宜宾人,电子科技大学光电信息学院硕士研究生。

229--是计算量太大不可能实现。

常用的精确求解方法主要有两种。

1954年,GeorgeDantzig等人用线性规划的方法取得了历史性的突破———解决了美国49个城市的巡回问题。

这就是割平面法,在整数规划问题上也广泛应用。

还有分枝限界法,所谓限界,就是求出问题解的上、下界,通过当前得到的限界值排除一些次优解,为最终获得最优解提示方向。

每次搜索下界最小的分枝,可以减小计算量。

总的来说,精确算法比较复杂,要写很长的代码,而且计算量仍然很大。

(二)近似算法大多数情况下只要能求得满意解就可以满足要求了。

用近似算法得到的满意解和最优解往往只差几个百分点。

和精确算法相比,近似算法比较简单,计算量小很多,大致可分为三类:1.巡回路径构造算法。

这种算法是把城市一个一个地加入到路径中去,全部加进去以后就得到了一条巡回路径。

最简单的巡回路径构造算法是贪婪算法,每次选择最小的一条边,但是最后要把起点和终点连起来,最后这条边往往会很长,所以找到的是一个很“粗糙”的解。

此外,还有插入法、双最小生成树法、Clark&Wright法等。

2.巡回路径优化算法。

也就是局部搜索算法,搜索一个解空间邻域里的最优值,先产生一条初始巡回路径,再改变其中某些城市的顺序,使路径优化,逐渐接近最优解。

k-opt算法的思路是,从巡回路径中找出k条边,把它们换成另外k条边(换过以后仍然是一条巡回路径,没被断开),使路径得到优化。

k是一开始就设定的常数。

从巡回路径中找出k条边,共有Cnk种选择方法,必须全部考虑到。

如果无论选出哪k条边来替换都不能进一步优化,则称这条巡回路径是k-最优。

显然,k越大,优化后的效果越好,可是随着k的增大,计算量也快速增大。

一般用2-opt和3-opt。

Lin和Kernighan提出了Lin-Kernighan算法,和k-opt相比,多了一系列替换规则,大大减小了计算量,是目前处理TSP最好的局部搜索算法。

3.智能算法。

所谓智能算法,是指20世纪以来借助自然界的规律,根据其原理设计的算法,如模拟退火、遗传算法、神经网络、蚁群算法等。

本文把它们都归入近似算法。

模拟退火算法(SA),它是局部搜索算法的一种扩展,根据复杂组合优化问题与固体退火过程之间的相似之处,在它们之间建立联系。

退火过程中,固体最终达到能量最小的状态,对应于模拟退火算法找到最优解。

与局部搜索算法不同的是,模拟退火算法随机接受一些劣解,这样就有希望从局部最优解中跳出,找到全局最优解。

遗传算法(GA)是根据自然界的“物竞天择,适者生存”现象提出的一种随机搜索算法。

把一定数量的解作为一个群体,通过选择、交配和变异把适应性强的染色体(TSP中较好的一些边)遗传下来,使解进化(优化)。

人工神经网络(ANN)是对人脑神经系统的仿真,具有并行性、容错性、学习能力、知识存储等优点。

用Hopfield神经网络求解TSP问题取得了很好的成果。

蚁群算法(ACA)是模拟蚁群行为的一种仿生算法。

蚂蚁个体能力很低,却可以协同工作,集中食物,建筑蚁穴,依靠群体智能发挥出超出个体的智能。

与前面几种智能算法不同的是,蚁群算法更接近巡回路径构造算法而不是巡回路径优化算法,每只蚂蚁单独完成巡游,并通过信息素交流,最终都聚集到一条局部最优路径上来。

三、结语旅行商问题是离散最优化的一个基本问题,由于提法简单,求解的思路和方法非常自由。

多年来对以TSP为代表的NP-complete问题的研究取得了许多丰硕的成果,许多算法因此而产生并发展起来,其影响遍及现代科学技术很多领域,如计算机科学、人工智能、管理科学、通信工程、电力电子、机械工程和生命科学等。

对TSP的各种研究方法正面临越来越广阔的发展前景,TSP本身的应用范围也在不断扩展。

不论从理论还是实际来讲,研究旅行商问题取得的每一步进展都有重大意义。

【参考文献】[1]段海滨.蚁群算法原理及其应用[M].北京:科学出版社,2005.[2]文建国.光综合孔径望远镜子孔径阵列的优化和计算机仿真[D].2003.(2).[3]李随成,刘广.一种改进的TSP问题启发式算法[J].管理工程学报,2005,(2).[4]马少平,朱小燕.人工智能[M]北京:清华大学出版社,2005.[5]陈斌,徐华中.一种改进遗传算法及其在TSP中的应用[J].计算机工程,2002,(9).[6]程明,刘琴.神经网络TSP问题仿真分析[J].郑州大学学报,2004,(3).230--。

相关主题