【问题标题】:How does Google Maps´ "optimizeWaypoints" solve Travelling Salesmen?谷歌地图的“优化航点”如何解决旅行推销员问题?
【发布时间】:2013-08-23 07:48:03
【问题描述】:

我想像 Google 地图在其 DirectionsRequestrequest.setOptimizeWaypoints(true); 中那样解决旅行推销员问题。它在一条路线中订购一些航点,这样旅行成本就会降到最低。

我的问题:有人知道它背后的算法是什么吗?任何启发式?到目前为止,谷歌找不到任何信息。

我通知了自己,发现了很多插入启发式、最近邻居等...或者它是一个精确的求解过程?

【问题讨论】:

    标签: java google-maps google-maps-api-3 heuristics traveling-salesman


    【解决方案1】:

    Travelling Salesman Problem 上的维基百科页面引用了许多用于寻找解决方案的算法。 (但除非N 很小,否则请避免使用“精确”算法!)

    根据谷歌员工this post的说法,谷歌路线计算算法的源代码可在此处获得:

    ...但不完全清楚这是否是谷歌地图的“生产”代码。

    来自源代码中的注释:

    // Solving the vehicle routing problems is mainly done using approximate methods
    // (namely local search,
    // cf. http://en.wikipedia.org/wiki/Local_search_(optimization)), potentially
    // combined with exact techniques based on dynamic programming and exhaustive
    // tree search.
    

    这个一般问题(Google Maps vs TSP)也在其他各种 SO 问题中讨论。

    参考资料:

    【讨论】:

    • 所以在我看来,关于本地搜索 g-maps 它使用一些算法,如模拟退火/禁忌搜索。谢谢斯蒂芬。
    猜你喜欢
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    • 2011-05-26
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多