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

求解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

    推荐阅读
  • 鬼节又叫什么节(中元节介绍)

    “七月半”原本是上古时代民间的祭祖节,而被称为“中元节”,则是源于东汉后道教的说法。佛教则称七月半为“盂兰盆节”。一定意义上,七月半祭祖节归属民间世俗,中元节归属道教,盂兰盆节归属佛教。七月十四/十五祭祖是流行于汉字文化圈诸国以及海外华人地区的传统文化节日,与除夕、清明节、重阳节均是中华民族传统的祭祖大节。2010年5月,文化部将香港特区申报的“中元节”入选,列入国家级非物质文化遗产名录。

  • 按摩哪些穴位可以治打鼾(按摩这四个穴位搞定它)

    按摩这四个穴位搞定它打呼噜危害健康一般打鼾的人,都睡得踏实、深沉这可就苦了身边人,阵阵鼾声此起彼伏,可谓是失眠的伴奏曲,扰人心烦,待次日头昏脑涨,影响工作和学习有人认为打呼噜是睡得香,殊不知打呼噜是健康的天敌研究发现:长。

  • 路由器不好使了,进去登录界面显示无因特网访问(登录界面显示无因特网访问的原因)

    路由器不好使了,进去登录界面显示无因特网访问?下面更多详细答案一起来看看吧!路由器不好使了,进去登录界面显示无因特网访问登录界面提示无因特网访问就是没有连接上网络,可以输入admin进入路由器的界面重新设置您的宽带账号和密码确定即可,如果输入admin进不了界面,可以尝试把路由器复位重新设置一下。

  • 普拉提改善动作模式(什么是普拉提运动)

    通过小重量多次重复的锻炼,来最终增强锻炼者的肌肉力量,加强机体发生脊柱侧弯的躯干的矫正。在脊柱异常的早期,患者们通过普拉提这项运动,恰恰可以很好的达到早期矫正和预防的目的。此外,普拉提运动强度并不大,但它讲究控制、拉伸、呼吸,对人体的腰、腹、臀等部位的塑造有着很好的帮助,因此特别受女性的青睐。但对于一些先天性导致的脊柱畸形,普拉提运动因为无法根据其原因来纠正,所以对于先天性问题无效。

  • 自动回复怎么设置不显示(自动回复怎么设置)

    让客户或同事知道现在的状态是忙碌或休假中,TOM企业邮箱的自动回复设置能同时运用在电脑、手机、微信中。惊喜的是,价格上很亲民,就TOM企业邮箱来说,开通3年就能用6年,延长了一半的时间,但是只花一半使用时长的费用。_TOM资讯企业邮箱怎么设置自动回复邮件_TOM资讯TOM企业邮箱-注册开通即赠送微信管家服务,助力企业高效率办公

  • 关于木槿花的传说(木槿的花语和传说)

    于是,“四凶”在历山展开了一场争抢木槿的争夺战。木槿花遂为国花。

  • 福建正宗鱼丸的做法(大厨分享秘制鱼丸)

    福建正宗鱼丸的做法鱼肉大家都认识,它是我们餐桌上经常吃到的食物之一,它的营养价值非常高,有丰富的蛋白质,还有维生素等其他微量元素。2根鲢鱼尾,葱姜水,适量盐,适量鸡精,一大勺玉米淀粉,2个鸡蛋清,一勺猪油。

  • tvb不好看但很有气质的女演员(有颜值有演技却没机会更进一步)

    1996年,姚乐怡参演了由温兆伦、吴启华、成奎安主演的时装悬疑剧《900重案追凶》。在2008年,姚乐怡约满后离开TVB,转行成为了一名经理人。2003年,她参加马来西亚华裔小姐竞选赢得冠军,并于次年签约TVB。既然是马来西亚华裔小姐冠军出身,杨秀惠的颜值和身材自然是无可挑剔的。就是这样一位颜值与演技俱佳的好演员,在TVB期间却是始终没有得到重视。离开TVB后,周家怡的出色演技终于得到了发挥,也终于尝到了做女主的滋味。

  • 手机QQ上传不了作业怎么办(手机QQ应该怎么上传作业)

    手机QQ上传不了是操作出了问题打开相应的QQ群,点击老师发布的作业,接下来我们就来聊聊关于手机QQ上传不了作业怎么办?以下内容大家不妨参考一二希望能帮到您!打开相应的QQ群,点击老师发布的作业。找到需要做的作业,点击“去完成”。点击界面左下角的图像、拍照或语音图标可以上传作业,上传好后,点击界面右上角的“提交”。界面中会弹出一个选项卡,点击“发布”。

  • 椒江义务教育招生电脑派位录取名单公布2022

    电脑摇号的整个过程还通过网络进行现场直播。