使用 GoogleMap 的 TSP(旅行商问题)求解器

Posted

技术标签:

【中文标题】使用 GoogleMap 的 TSP(旅行商问题)求解器【英文标题】:TSP (Traveling Salesman Problem) solver Using GoogleMap 【发布时间】:2011-05-30 08:56:54 【问题描述】:

我们正在开发一个应用程序,其中我们将在谷歌地图中显示一些可供出售的房屋。用户可以从地图中选择任何房屋,并可以找到他/她选择的所有房屋之间的最短行车路线。

谁能告诉我我们怎样才能找到最短的路线并在地图上显示出来?是否有任何基于 php 的 TSP 库可以帮助我们实现我们正在尝试的目标?

【问题讨论】:

一个实现在gebweb.net/optimap运行 【参考方案1】:

Google search 显示许多结果。

http://scrivna.com/blog/travelling-salesman-problem/ - 强力 PHP 实现保证获得最佳答案。仅适用于有限数量的节点。

http://www.renownedmedia.com/blog/genetic-algorithm-traveling-salesperson-php/ - 将近似答案的遗传算法 PHP 实现。适用于大量节点。

您可以将两者结合起来,根据图表的大小选择要运行的。

正如@Barbar 在 cmets 中指出的那样,有一个 existing app 可以满足您的要求。有一篇博文解释how it works。

【讨论】:

burteforce 算法在 8 个城市使用 ~300mb 内存,对 10 个城市使用 >2GB 内存 :O 在我的测试数据上,无论如何;另外,通用算法 url 是 404【参考方案2】:

它很旧,但它可能对人们有用: https://developers.google.com/maps/documentation/javascript/v2/services#RoutesAndSteps

只需为每个房屋创建航点,然后让谷歌为您计算...

【讨论】:

【参考方案3】:

如果问题满足三角不等式,您可以尝试 Christofides 算法。

【讨论】:

以上是关于使用 GoogleMap 的 TSP(旅行商问题)求解器的主要内容,如果未能解决你的问题,请参考以下文章

SSA TSP基于matlab麻雀算法求解旅行商问题含Matlab源码 1575期

回溯法解旅行商问题(TSP)

模拟退火算法解决旅行商问题(TSP)

模拟退火算法解决旅行商问题(TSP)

TSP基于matlab麻雀算法求解旅行商问题含Matlab源码 1575期

机器学习实战应用案例100篇(十六)-旅行商问题(TSP)从原理到实战应用