【问题标题】:Networkx Traveling Salesman Problem (TSP)Networkx 旅行商问题 (TSP)
【发布时间】:2021-07-20 05:43:37
【问题描述】:

我想知道NetworkX中是否有解决TSP的功能?我找不到它了。我错过了什么吗?我知道这是一个 NP 难题,但应该有一些近似的解决方案吧?

【问题讨论】:

  • @bottledatthesource 这有帮助吗? docs.ocean.dwavesys.com/projects/dwave-networkx/en/latest/…
  • @bottledatthesource TSP 不等于找到所有最短路径(Dijkstra 所做的)
  • 我看到了 dwavesys 的实现,但我想我想直接从 NetworkX 获得它。无论如何,我的问题实际上是哪种算法与 TSP 相关(从源到任何目标,通过所有具有最短路径权重的节点)。例如,这些非常令人困惑:networkx.github.io/documentation/stable/reference/algorithms/…
  • @bottledatthesource networkx 是一个图形操作库,有点像 numpy 图形。像 TSP 这样的问题不在其范围内
  • @Marat 这个函数是 dwave_networkx 的事实并没有改变这个问题在 Networkx 范围内的事实,其他例子,即。我提到的 Djikstra、Kruskal、Ford-Bellman 都在 networkx 中实现

标签: python networkx mathematical-optimization


【解决方案1】:

Networkx 为 TSP 提供了一个近似解决方案,请参阅page。他们的解决方案基于将 TSP 写为二次无约束二进制优化 (QUBO) 问题。

请注意,已证明找到 TSP 的 alpha 近似值通常被证明是 NP 难的。因此,您无法保证所获得结果的质量。但是有一个特殊情况,欧几里得-TSP,我们可以使用Christofides algorithm 构造 TSP 的 2 近似甚至 1.5 近似,但是我无法在 Networkx 中找到该算法的实现。

【讨论】:

  • 请注意,指向 TSP 解决方案的链接来自名为 dwave_networkx 的第 3 方包,它不是 networkx 核心的一部分。
【解决方案2】:

networkx 的最新版本包括一些用于 tsp 逼近或暴力破解解决方案的算法:有关示例,请参阅 the docs

【讨论】:

    猜你喜欢
    • 2011-05-30
    • 2019-11-16
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2021-07-09
    • 2021-08-27
    相关资源
    最近更新 更多