对TSP旅行商问题目前一些理解

17 篇文章 0 订阅
16 篇文章 0 订阅

简介(百度百科)

旅行商问题(TravelingSalesmanProblem,TSP)是一个经典的组合优化问题。经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的Hamilton回路。由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸,它是一个NP完全问题。由于其在交通运输、电路板线路设计以及物流配送等领域内有着广泛的应用,国内外学者对其进行了大量的研究。早期的研究者使用精确算法求解该问题,常用的方法包括:分枝定界法、线性规划法、动态规划法等。但是,随着问题规模的增大,精确算法将变得无能为力,因此,在后来的研究中,国内外学者重点使用近似算法或启发式算法,主要有遗传算法模拟退火法蚁群算法禁忌搜索算法、贪婪算法神经网络等。 [2] 

一些算法总结

1.枚举法:直接枚举(n-1)!周游路线,时间复杂度O(n!),一分钟内能解决10个顶点左右。

2.分支定界法:深度优先搜索过程中利用搜索过程中获得的上界和下界剪枝,并在搜索过程中优先选取最有可能是最优解的下一个节点。 时间复杂度取决于策略。

3.动态规划:假设d[i,S]表示--从i出发--经过集合S中所有城市--回到城市0--的最小费用。

则:1.转移方程: 

                   1).S不为空,d[i,S] = min{d[j,S-{j}] +W[i,j] |for(元素j属于集合S) } 

                   2).S为空 ,     d[i,0]  =  W[i,j]

 动态规划的时间复杂度是O(n^2 2^n),空间复杂度O(2^n)

还有很多组合优化算法,神经网络等。。对目前的我来说太高级。。这里就不举例了。。。

最优解的一些规律

规律1:任意一条巡游路线的任意一个顶点V,度数为2。

证明:显然,经过一个顶点且只经过一次,就刚好度数为2

推论1:只要每个顶点互相连通  并且  度数为2,那么它是一条巡游路线。

规律2:最优解中任意两条边E1,E2不相交。(可用于搜索的剪枝)

证明:假设最优解中存在两条边相交,则追溯到被相交的两条边的四个顶点,如图

那么可以将相交的线改写成黄色部分,显然黄色部分不会影响矩形里面的其他整体。根据推论1,这是一条巡游路线。

根据三角形两边之和大于第三边, 黄色部分之和<绿色直线部分之和,所以假设不成立。

 

未完待续......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值