使用 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期