双调旅行商问题 (Bitonic TSP)

Posted blfbuaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双调旅行商问题 (Bitonic TSP)相关的知识,希望对你有一定的参考价值。

问题描写叙述:技术分享

上述问题能够使用动态规划的方法来解决。

以下是解决思路的详细介绍:

1. 最优子结构:

如果d[i][j]表示从起点1出发到达i及j两个顶点的最短路程之和。

为此能够如果K为此段路程上与j相加的节点。则d[i][j] = d[i][k] + len[k][j]。

证明:若存在一个更短的路径d[i][k],则就应该存在更短的路径d[i][j]。这与如果矛盾,因此得证。

以下来寻找j相邻的节点,当中若i<j-1,则显然k=j-1,若i=j-1。则显然k属于(1,j-2)之间。为此得到例如以下的递推关系:
d[i][j] = d[i][j-1]+len(j,j-1) i<j-1;
d[i][j] = min(d[i][k] + len(k,j)),k属于(1,j-2)。
终于输出的d[n-1][n]就可以。

对于路径的输出,仅仅须要记录每次与j相邻的节点就可以,也即记录k的值。
详细实现稍后补充!!





以上是关于双调旅行商问题 (Bitonic TSP)的主要内容,如果未能解决你的问题,请参考以下文章

百度之星资格赛——Disk Schedule(双调旅行商问题)

POJ 2677 旅行商问题 双调dp或者费用流

百度之星资格赛——Disk Schedule(双调旅行商问题)

算法导论-15-1-双调欧几里得旅行商问题

MATLAB实战系列(二十九)-头脑风暴优化(BSO)算法求解旅行商问题(TSP)-交叉算子

毕设题目:Matlab智能算法TSP(旅行商)