有没有办法使用 Google Maps API 来获取给定一组航路点的“优化”路线(换句话说,旅行推销员问题的“足够好”解决方案),或者它是否总是返回带有按指定顺序点?

有帮助吗?

解决方案

它总是使他们在顺序。

所以,我认为你必须找到每对点,一次一个之间的距离(或时间),然后解决旅行商问题自己。或许你可以说服谷歌地图,虽然添加该功能。我想什么是“足够好”的解决方案取决于你在做什么,以及如何快速它需要。

其他提示

有是在谷歌地图API的DirectionsRequest一个选项叫做optimizeWaypoints,它应该做你想做的。这只能处理高达8路点,虽然。

另外,还有一个开放源码(MIT许可证)库,你可以使用谷歌地图API的使用,以获得最佳的(最多15个位置)或非常接近最优的(最多100个位置)的路线。

请参阅 http://code.google.com/p/google-地图-TSP-求解器/

可以看到活动的库在 www.optimap.net

在一个典型的TSP问题,假设是一个可以直接任意两点之间行进。对于地面道路,这是从来没有的情况。当谷歌计算两个点之间的路线,但它确实启发式生成树优化,通常来了一个相当接近最优路径。

要计算一个TSP路线,一个首先必须询问谷歌来计算图中的每个节点之间的逐对距离。我想这需要n *(N-1)/ 2 Calcs(计算)。然后,可以把这些距离,对他们进行TSP优化。

OpenStreetMaps.org有的Java Webstart的应用程序,它可以做你想做的。当然,计算正在运行的客户端。该项目是开源的,并且可以是值得考虑。

您试图找到位置之间的最佳行驶路线的最佳直线路径,还是?如果你只是想订购的点,如果你能得到的GPS坐标,它成为一个非常简单的问题。

刚刚找到 http://gebweb.net/optimap/ 它看起来既美观又方便。使用谷歌地图在线版本。

谷歌已经为旅行推销员问题提供了现成的解决方案。您可以在这里找到 OR-Tools(Google 的运筹学工具): https://developers.google.com/optimization/routing/tsp

你需要做的基本上是两件事:

您还可以注意到:

除了找到有关经典旅行人员问题的解决方案外,Or-Tool还提供了更多类型的TSP的方法,包括以下内容:

  • 不对称成本问题——传统的 TSP 是对称的:从点A到B点的距离等于从点B到点A的距离。但是,从A点到B点运输项目的成本可能不等于将其从B点运送到点A的成本。OR-Tools 还可以处理具有不对称成本的问题。

  • 收集奖品的 TSP,通过访问节点获得收益

  • 具有时间窗口的 TSP

附加链接:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top