百摩网
当前位置: 首页 生活百科

求解tsp问题算法综述(优化浅谈旅行商问题)

时间:2023-06-03 作者: 小编 阅读量: 3 栏目名: 生活百科

优化浅谈旅行商问题『运筹OR帷幄』原创作者:高源编者按:作为经典NP-hard问题,TSP和VRP问题一直是业界和学界的关注重点本文以业界为主要视角,通过VRP和TSP的联系做切入点来引入TSP问题,分类讨论了启发式算。

『运筹OR帷幄』原创

作者:高源



编者按:作为经典NP-hard问题,TSP和VRP问题一直是业界和学界的关注重点。本文以业界为主要视角,通过VRP和TSP的联系做切入点来引入TSP问题,分类讨论了启发式算法在对称TSP与非对称TSP中的运用。
一、TSP简介


TSP全称为Travelling Salesman Problem(旅行商问题),通俗而言,它是指对于给定的一系列城市和每对城市之间的距离,找到访问每一座城市仅一次并回到起始城市的最短回路。


TSP问题在运筹学发展史上有重要的意义,1952年,Danzig, Fulkerson和Johnson成功的解决了美国本土分数不同州的48个城市和哥伦比亚特区共49个城市的TSP实例,使更多的人初次了解了组合优化研究的意义,也感受到了离散问题求解的准度。


因为TSP是NP-C问题,因此其没有多项式时间内可以求最优解的算法。(如果对于NP-C的定义不了解,可以简单理解为对于某些实例,随着规模的增加,求解最优解所需的时间是爆炸式的指数增长)。因此研究TSP的启发式算法就显得很重要了。


二、由难入简 - VRP与TSP的联系


在深入TSP前首先简单介绍车辆路径问题(VRP)。事实上,在实际生活中,大多数我们所遇见的问题大都是VRP问题。1959年,《The truck dispatching problem》的作者Dantzig和Ramser在书中写到,TSP可被看成是VRP的某一类子问题。因此,理解TSP将是研究更深层路径优化算法的基石。


VRP的数学描述即为对于图G = (V, A, E) 找到成本最小的闭迹(无重复边的闭合回路)组合遍历已知的点集合(V)和弧(单向路)(A)或边(双向路)(E)集合。看似抽象,但在实际生活中,这样的问题其实无处不在。


比如在供应链领域,最经典的VRP即卖家对客户的补货策略:车队从配送中心(0)出发,遍历所有客户(U),满足客户货物需求后回到配送中心{0},在一定约束下,达到路程最短,成本最低等目的。此时A⋃E=∅,闭迹仅需遍历已知点集合(V=U⋃{0})。


而进一步当没有容量和时间等约束且仅有一辆货车进行一次性补货时,该问题就是TSP问题,即找到成本最小的一条闭迹遍历已知的点集合(V), 且在最优解中所有点仅会出现一次。


三、TSP模型


那么首先还是先抛出TSP的数学模型,对于有向图

,其中

为弧ij的成本, TSP可以被分解为以下四个约束和其目标函数。首先最后一个约束指变量

为二进制变量,其等于1当仅当弧ij属于解回路。

约束(1)和(2)用于定义闭合回路,即任意顶点j/ i,解回路中必有且仅有一条弧以其作为起点的同时有且仅有一条弧以其作为终点。


但是仅仅有约束(1)和(2)是不足以定义TSP,因为虽然保证了解为闭合回路却没有保证解仅含一条闭合回路,因此我们需要约束(3)以防止小圈的出现。


那么约束(3)可以理解为对于任意点集合S(非V且含2个顶点及以上),必定存在至少有一个S中的顶点与S外的顶点相连接。综上,我们可以得到以下数学模型。



其中约束(3)尽管可被简化但仍使得该问题成为了NP问题,因此基于上述讨论,本文将简单介绍可用于解决TSP的启发式算法。


四、ATSP的启发式算法(基于指派问题)


TSP问题依据边的成本正反向是否相等

可以分为对称 (STSP) 或非对称 (ATSP)。而STSP与ATSP的性质有许多不一样,因此以下将分开进行讨论。


注释:

以下讨论条件均为满足三角不等式下的度量TSP,即


该文中对于ATSP的启发式算法的讨论相对简单,因为可以发现当我们如果忽略约束 (3) ,该问题便成了简单的指派问题 (Assignment Problem (AP))。


而因为AP具有最优解整数性质(全幺模矩阵),因此约束 (4) 可被改写为

综上,上述模型改写成了可快速求解的线性规划问题。


那么,当得到AP问题的最优解

(p个遍历所有点的有向闭迹

)后,如果发现此时p=1,即仅有一个闭合回路,那么

则为ATSP的最优解,如若不然则对解进行优化改写。


注释:

对于ATSP而言,如果成本矩阵非对称性非常强,那么当解

满足

时,我们可以认为当前解为相对最优;

而对于STSP,该值将在30%附近或更高,因为STSP如用AP作为下界,那么解中将会有很多成对出现的子迹。


基于初始解

进行启发式算法的流程如下:

  1. 记p个有向子闭迹为, 若p=1,停止,该为ATSP的最优解, 否则进入步骤2;
  2. 找到两个拥有最多覆盖点的子迹;
  3. 合并 ,使得合并增加的成本最小,另p = p - 1, 如果p = 1,此时解为相对最优解,否则返回步骤2;


我们可以通过以下具体例子[2]进一步理解,假设有6个点,每个点之间的距离成本矩阵如下


通过AP模型,可以得到

此时p=2,进行启发式算法合并两个子迹,得到

在上述简单例子中,由于AP初始解仅有2个闭合回路,因此我们仅需要通过一次循环就可以找到启发式算法的最优解, 更一般而言,当初始解回路为M时,我们需要重复M-1次以得到最优解。


在供应链领域,ATSP问题通常是针对城内规划,路径多样且不对称,而对于STSP,多为城际规划,道路单一且大致对称。因此接下来我们将着重描述适用于更大型系统的STSP的启发式算法。


五、STSP的启发式算法一(Nearest Neighbor)


因为对称TSP性质的特殊性,模型将建立在无向图上,因此我们可以改写其数学模型为

约束(6)即等效于ATSP的约束(1)和(2),而约束(7)即为防止子迹的出现。

现在我们先介绍简单的最近邻点算法(nearest neighbor heuristic)的具体步骤:

  1. 任选点作为起点,令
  2. 找到下一邻点 使得 , 将k加入C中
  3. 当|C|=|V|则算法停止,否则记h=k重复步骤2


下面用一个最近邻点算法的具体实例来进一步阐释:

  1. 选择最左端点为起点(1)
  2. (1)其可与最右端点(9),第(2)和(3)端点相连,选择有最小成本1的(3)与(1)相连。


重复上述过程后,可知最近邻点发的最优解为红色路径,成本为10,而通过肉眼观察容易发现最优解即为直接依次从最左端至最右端,其最优长度为9 5ϵ。


基于上述理解,结合严格的数学证明可知,最近邻点算法的所得长度与最优长度相比可能随点集数量的增加而趋于无穷,但因为其在TSPLIB(a library of sample instances for the TSP (and related problems) from various sources and of various types)实例中所得到的结果对比平均值,即(Nearest Neighbor的最优解/ 目前已知最优解),约在1.26附近且算法简单容易实现,因此也是广为实用的一个算法。


六、STSP的启发式算法二(Christofides heuristic)


该启发式算法是迄今为止最坏情况界最小(3/2)的算法,相对复杂且涉及到的知识面较广,在这里没有办法一一说明,如果感兴趣可以对于每个定语结论进行更深入的研究。


注释:

最坏情况界:对某极小化问题

是任意实例,记

为算法A对于实例

所得目标函数值,

为最优目标函数值,则A的最坏情况界r定义为对于所有实例


在介绍该启发式算法之前,抛出一个结论做铺垫,因为STSP建立在无向图G=(V,E)上,因此哈密尔顿圈即为最优解。


注释:

哈密尔顿通路:无向图G=(V,E),若G中一条通路通过且仅通过每一个顶点一次,称这条通路为哈密尔顿通路。

哈密尔顿圈:若G中一个圈通过且仅通过每一个顶点一次,称这个圈为哈密尔顿圈。

哈密尔顿图:若一个图存在哈密尔顿圈,就称为哈密尔顿图


基于上述结论,我们可以通过一系列变化,找到变化图后的哈密尔顿圈作为其相对最优解。那么接下来便是启发式算法(Christofides heuristic)的步骤介绍:


  1. 利用最小生成树(MST)生成初始解,任选点r作为起点,在多项式时间内找到最小生成树。

注释:

最小生成树(MST):假设无向连通图G(V, E),且E中的每条边e有权值(可以表示距离

、价值等),找出一颗树,连接G中所有的边,且连接这棵树的所有边的权值之和最

小。

基于STSP问题, MST其数学模型为(利用r为起点)

同时当我们得到该下界后,我们仍可以对其值进行提升

a. 通过选择不同的起点生成树,从而找寻值最大的;

b. 或者利用拉格朗日对约束(9)进行松弛后求解


  1. 对奇度顶点(上图中的1,2,3,5,6,7)(结论:必为偶数个)集合建立最小完美匹配模型,找到最小成本匹配,如下图中的红色虚线

注释:

点的度数:与点相连的边的个数。

匹配:其中任意两条边都没有公共顶点的边集合

完美匹配:所有点都是匹配点的匹配。

最小完美匹配:拥有最小成本的完美匹配


  1. 当完成上述步骤后,即得到一欧拉图,基于欧拉图,找到欧拉回路即0-5-1-5-3-2-3-4-6-7-4.

注释:

欧拉图:指通过图(无向图或有向图)中所有边且每边仅通过一次通路,相应的回路称为欧拉回路


  1. 从欧拉回路中找到哈密尔顿圈,即0-5-1-3-2-4-6-7-0(仅保留欧拉回路中第一次出现点)


七、最后的一点碎碎念


TSP问题是很多问题的基石,比如VRP问题,尽管对其的研究已经十分丰富,但是模型本身难度非常大,且实际问题中,还存在很多不确定因素,比如路径的成本如何估量,路径的时间如何准确预测等都需要与其他知识理论例如机器学习等知识相结合[3]。


参考文献:

[1] ] D.S. Johnson, L.A. McGeoch, F. Glover, C. Rego, 8th DIMACS Implementation Challenge: The Traveling Salesman Problem, 2000.

[2] G. Ghiani, G. Laporte, R. Musmanno, Introduction to Logistics System Management

[3] 谈之奕, 林凌, 组合优化与博弈论

[4] Lecture Notes from Dr. Savelsbergh - Transportation 2018 in Georgia Tech

    推荐阅读
  • 月经期血量减少的原因(月经期血量减少的原因有哪些)

    以下内容希望对你有帮助!月经期血量减少的原因引起月经过少的原因最常见有两项,一项就是卵巢功能异常,体内的雌激素水平过低,无法使子宫内膜增殖到一定厚度,导致子宫内膜过薄。另外一个原因,就是子宫内膜本身受到创伤,比如说多次人流、反复刮宫等宫腔操作,都可能会使子宫内膜受损,导致子宫内膜过薄。

  • 爬山虎是什么植物(什么是爬山虎)

    爬山虎是什么植物爬山虎属多年生大型落叶木质藤本植物,其形态与野葡萄藤相似。花多为两性,雌雄同株,聚伞花序常着生于两叶间的短枝上,长4~8cm,较叶柄短;花5数;萼全缘;花瓣顶端反折,子房2室,每室有2胚珠。表皮有皮孔,髓白色。叶绿色,无毛,背面具有白粉,叶背叶脉处有柔毛,秋季变为鲜红色。幼枝上的叶较小,常不分裂。花期6月,果期大概在9~10月。

  • 帆布鞋怎么洗 帆布鞋怎么洗不掉色

    毛巾涂抹牙膏擦鞋头及鞋边比较好。其次用湿抹布清洁,用牙刷涂抹牙膏刷帆布面。用牙刷沾水擦干净,最后用纸巾包裹晾干即可。

  • 红枣怎么吃 红枣怎么吃不上火

    泡茶补血5种红枣吃法营养翻倍红枣泡水促进肝脏排毒对于长时间对着电脑,经常熬夜加班的上班族来说,坚持用红枣泡水饮用可以帮助肝脏排毒。红枣煮汤止咳润肺将红枣、银耳、冰糖一起熬煮食用,有止咳润肺的作用,尤其适合干燥的季节。取银耳20克,红枣20枚,以及适量的冰糖,银耳充分泡发之后,撕成小朵,红枣冲洗干净,切半。其次,大枣的膳食纤维含量很高,明显高于其他常见水果。

  • 怎么样让狗狗不那么掉毛严重(掉毛困扰和护理)

    想必很多主人都被狗狗掉毛困扰过,如果狗毛飘在室内还可能会导致人和宠物出现呼吸道问题。正常来说狗狗掉毛是正常的情况,但是可以采取一些措施,帮助狗狗清理落毛,并减少狗狗掉毛的数量。也可能说吃的食物比较咸且重口导致的。

  • 苹果企业签名一文了解(企业签名怎么签)

    一休哥苹果签名简介:点击可查看联系方式iPhone14系列强力登场,9月8日,苹果召开发布会,发布了新手机iPhone14系列。此外,苹果首次开启iPhone14系列新机预购后,网站因想要购买新机的用户过多,无法确认购买、主页崩溃等问题迅速出现。苹果手机市场作为高端市场的主流,一直很受欢迎。苹果手机之所以受到果粉的喜爱,是因为它运行顺畅,官方监管严格,给用户带来了很好的体验。

  • 绿联type-c转接头二合一(扩展更多可能绿联USB-C)

    Type-C双面可插接口最大的特点是支持USB接口双面插入,正式解决了“USB永远插不准”的世界性难题,正反面随便插。以上是关于USB-C接口的相关百科介绍,USB-C可支持最高10Gbps的传输速率,以及100W的电力传输。USB-C接口部分,采用铝合金的外壳,线材采用了镀锡铜的材质,外侧有铝箔编织层。为了保证传输数据的稳定性,线材的长度为20cm左右。另一侧,则是三个USB3.0的接口,满足扩展的需求。在左侧,则是TF卡槽及SD卡槽。此外,AX88179仅需单25MHz时钟即可正常工作。

  • 红蔷薇陈得道被顾霜菊打死(红蔷薇顾霜菊为何要跟陈得道结婚)

    电视剧《红蔷薇》正在热播,在最新剧情中,任致远被击毙,陈得道为了能够顺利的加官进爵,准备结婚,所以第一时间想到了顾霜菊。在他的威逼利诱下,顾霜菊只得屈从于他。顾霜菊在窗前看到陈得道在楼下和一个妖娆的女人搂搂抱抱。得知顾霜菊不愿意养胎,陈得道一回到家就怒气冲冲的强行给顾霜菊喂药。陈得道的做法激起了顾霜菊心中的恨,再加上她从小就经历太多的压抑和挫败,慢慢的变成了军统的杀人女魔头。

  • 兔子可以吃玉米棒子(小兔子可以吃什么)

    兔子可以吃玉米棒子兔子属于草食性动物,日常需要足量的粗纤维来维持肠道功能,也需要适量的蛋白质、矿物质等营养物质来促进兔子生长发展,还需要适量的蔬果蔬菜补充维生素和膳食纤维。可以选择给兔子喂食提摩西草、苜宿草和黑麦草等,如果是1-3个月的幼兔,可以喂食适量的苜宿草,但不适宜喂食过多,有可能会出现尿钙的现象。成年兔多提供提摩西草,适口性较好,是大多数兔子能接受的。

  • 《锦绣未央》是讲哪个朝代的故事的(关于女主的角色介绍)

    《锦绣未央》是讲哪个朝代的故事的?李未央演员唐嫣,配音季冠霖,北凉公主,阴差阳错成为“李未央”。最后辅助拓跋浚登上帝位,成为一代贤后。原型为北燕公主冯太后,沮渠牧犍之女、文成帝夫人沮渠氏,献文帝拓跋弘生母李皇后。