【问题标题】:Christofides TSP; let start and end node be those that are the farthest apart克里斯托菲德 TSP;让开始和结束节点是相距最远的节点
【发布时间】:2023-01-07 15:44:19
【问题描述】:

我正在使用 Christofides 算法来计算旅行商问题的解决方案。该实现是集成在 Python 的 networkx 库中的实现。

该算法接受无向 networkx 图并按 TSP 解决方案的顺序返回节点列表。我不确定我是否正确理解算法,所以我还不知道它如何确定计算解决方案的起始节点。

因此,我的假设是:解决方案被认为是循环的,以便销售员在访问所有节点后返回到他的起始节点。 end 现在被认为是销售员在返回 start 节点之前最后访问的节点。返回解的start节点是随机的。

因此,我理解(如果我错了请纠正我)对于每个 TSP 解决方案(节点列表的顺序),N 个节点被认为是圆形的,有 N实际的每个节点都可以是起始节点且以下路由保持不变的解决方案。

A-B-C-D-E-F-G-H->A 也可以是 D-E-F-G-H-A-B-C->D 并且仍然是一条有效的路线并且基本上是相同的解决方案,只是起始节点不同。

我需要找到返回顺序的所有可能起始节点的一个特定解决方案,该解决方案在结束和开始之间具有最大距离 - 假设这还不能保证是 networkx.algorithms.approximation.christofides 返回的解决方案。

【问题讨论】:

    标签: python networkx traveling-salesman


    【解决方案1】:

    在阅读了更多关于 Christofides 的内容之后,似乎由于第一步生成的最小生成树,访问的第一个和最后一个节点的期望结果是路径上相距最远的节点,已经是这种情况.

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 2019-06-01
      相关资源
      最近更新 更多