【问题标题】:Shortest total path among set of Latitude/Longitudes一组纬度/经度中的最短总路径
【发布时间】:2010-12-11 23:36:19
【问题描述】:

我有一组大约 52 个纬度/经度对。我只需要找到通过所有这些的最短路径;起点或终点在哪里并不重要。

我之前已经多次手动实现了 Dijkstra 的算法,但真的没有时间再做一次。我发现了一些接近的东西,但大多数都需要原始图,每个边都有预先计算的权重。

您知道以这种方式计算最短路径的任何库或现有脚本/应用程序吗?代码/库最好使用 Python 或 Clojure,但这并不重要。

谢谢

【问题讨论】:

    标签: python clojure mapping graph-theory


    【解决方案1】:

    这不是Traveling Salesman Problem,所以没有有效的办法解决吗?

    【讨论】:

    • 这是TSP,没有规定从哪里开始结束,所以理论上你应该得到一个更短的总距离。
    • 嘘! TSP 是 O(n!) 不是吗?他只有 52 对 = 8.07e+67 种可能性,不是吗? :p
    • 也许没有找到最佳解决方案的有效方法...但是有相当好的解决方案。
    【解决方案2】:

    如果这是一条封闭路径,那就是旅行商问题,解决它的一种次优但非常有效的方法是使用Simulated Annealing

    【讨论】:

    • TSP 不需要封闭路径。如果没有闭合路径,问题是一样的,只是总路径长度的度量不同。在封闭路径上,最佳路径是sum of all edges 最小的路径。如果路径不必关闭,则为 sum of all edges - the longest edge
    • @THC4k 我知道这根本不是问题,但该评论完全让我以最简单的方式完成我的代码。我已经用封闭路径解决了 TSP。谢谢!
    【解决方案3】:

    在 python 中,我能够使用的最好的图形处理库是networkx。它支持short path search 的各种不同算法。

    去吧。它真的很完整,设计得很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      相关资源
      最近更新 更多