TSP扭曲

时间:2016-11-28 18:57:25

标签: heuristics traveling-salesman directed-graph

我遇到了一个与旅行商问题非常相似的问题,除了几个曲折:

  1. 您可以多次访问同一节点
  2. 前往已经经过的边缘是无成本的
  3. 图表已定向
  4. 当然,这个问题是NP完全的,因为这是TSP的一个变种,但我想知道是否有任何针对常规TSP设计的算法可以轻松修改以适应这个特定问题?

1 个答案:

答案 0 :(得分:1)

听起来你所描述的是图形,非对称TSP 。要打破你描述的限制,

3是非对称TSP(ATSP),即有向图上的TSP。这比一般的TSP要困难得多,但这是一个研究得很好的问题。在我的脑海中,Lin-Kernighan-Helsgaun(LKH)启发式算法是一种TSP启发式算法,在ATSP上也表现出色,我相信还有其他的。

1是图形TSP,即您可以多次访问节点的TSP。我不会完全称这个问题为研究对象。有很多工作要做,但大部分工作都是针对标准TSP开采的结果。

约束2让我很困惑,但我认为它是一个红色的鲱鱼,因为它已经被图形TSP暗示了。考虑图形TSP的另一种方法是,您需要原始图的连接子图,其中每个节点的度数至少为2,而在TSP中,度等于2。因此,我们只会产生一次访问边缘的成本。

所以要把这个问题与你的问题联系起来!如果我不得不使用TSP方法的“容易修改”算法,我会:

- 使用LKH计算一个ATSP之旅,因为这样的游览对你的问题是可行的,所以它提供了一个上限。

- 在商业整数规划求解器(如CPLEX或Gurobi)中编写图形ATSP的公式。我会使用ATSP的Held-Karp松弛度,改变度数方程,允许多次访问某个城市。

- 在返回断开连接的解决方案的情况下,写入对IP解算器的回调以添加连接约束。

- 将LKH游览作为热启动/数值上限传递给IP解算器。

然后希望最好!基本上,这将是一个基于切割平面的TSP解算器的简化版本,适合您的问题。我不会指望它来解决大规模的实例,但我认为这将给予一个可敬的尝试。