【问题标题】:Variation of TSP which visits multiple cities访问多个城市的 TSP 的变化
【发布时间】:2010-11-30 07:00:53
【问题描述】:

我希望讨论多次访问的 TSP 分支和绑定解决方案。(即每个城市都需要至少访问一次,而不是一次)

编辑:

消除了疑虑,因为它与 Jitse 指出的不相关。现在问题更清楚了。

【问题讨论】:

  • 我不明白为什么 Martin 的方法行不通。增广图将增加一条边 E -> A,对应于从 E 经 C 到 A(实际上,增广图对于任何顶点 X 和 Y 都有一条边 X -> Y)。增广图的 TSP 的解是 A-B-C-D-E-A,因为增广图中的 E-A 对应于原始图中的 E-C-A,这对应于原始图中的解 A-B-C-D-E-C-A。

标签: algorithm traveling-salesman


【解决方案1】:

通过为每对节点 A 和 B 添加一条表示从 A 到 B 的最短路径的边来简单地扩充图形。Floyd-Warshall algorithm 允许您在 O(n^3) 中执行此操作,这需要很多时间比任何 TSP 算法都快。完成此操作后,请使用标准 TSP 分支和绑定技术。 This site 有一些来自Applegate's book 的信息,它根据Wikipedia TSP entry 讨论了 TSP 的分支和界限。

【讨论】:

  • 谢谢,但是在给定图形中不可能 tsp 但实际上可以进行多次访问的 tsp 的情况下,这种方法不会失败吗?就像通过成像两个共享一个顶点的三角形来考虑城市的放置,每个顶点都是城市。 TSP 不能在这里完成,因为共享顶点只能访问一次,但是具有多次访问的 tsp 应该可以工作,在你的方法中,即使后者也会失败
  • 在任何多城市 TSP 中,每个城市都必须最后一次访问。只需考虑构成最后一次访问每个城市的城市列表。分隔这些城市的路径必须是最优多城市 TSP 中的最短路径。
  • 马丁,我已经编辑了这个问题,以便更好地解释自己。谢谢
【解决方案2】:

我宁愿将此作为对 Martin Hock 回答的评论提交,因为我正在解决一个可能的疏忽,很容易实施他的建议。

在给定 Floyd-Warshall 算法的输出的情况下,分支定界算法需要与重构最小成本路径的算法相结合。分支定界算法是外循环,它选择未访问的节点。然后,您使用最低成本路径重建算法将边和节点实际添加到您的循环中。节点应该被最小成本路径重建算法标记为已访问,而不仅仅是分支和绑定部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 2022-01-12
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 2017-02-11
    相关资源
    最近更新 更多