使用谷歌地图,旅行商问题的实际解决方案是什么?

时间:2011-10-12 07:35:00

标签: algorithm google-maps traveling-salesman

使用Google地图/地理位置/路线查找,旅行商问题的实际解决方案是什么?

我不需要最好的解决方案,5%以内就没问题。

例如,我在英国有20个地点可以按任意顺序访问。这可能需要扩展到数百个位置。

我可以使用哪种算法,因为我可以查找距离(但不想查找数百个距离)?

4 个答案:

答案 0 :(得分:7)

这个TSP项目在JS http://code.google.com/p/google-maps-tsp-solver/

中实现

您可以在此处查看现场演示http://gebweb.net/optimap/

答案 1 :(得分:4)

Google确实在其路线API上有一个参数,该参数会优化路线作为旅行商问题:

从文档(关键部分是&waypoints=optimize:true|...):

  

以下示例计算阿德莱德的公路旅行路线,   南澳大利亚每个南澳大利亚的主要葡萄酒产区使用   路线优化。

http://maps.googleapis.com/maps/api/directions/json?origin=Adelaide,SA
  &destination=Adelaide,SA
  &waypoints=optimize:true|Barossa+Valley,SA|Clare,SA|Connawarra,SA|McLaren+Vale,SA
  &sensor=false
     

检查计算出的路线将表明路线是   使用以下航点顺序计算:

"waypoint_order": [ 1, 0, 2, 3 ]

对于一次性使用@Kunukn推荐的OptiMap可能更容易

答案 2 :(得分:2)

你可以使用long lat来估计这些位置之间的距离,然后对那些彼此靠近的那些进行一些查找。

更简单的替代方法是将地图分成3 x 3个部分。仅查找相邻部分中位置的路线。

这些技术虽然不是100%准确。

即使您查看所有路径,最终也不应超过190次查找。

答案 3 :(得分:1)

我正在寻找Euclidean TSP的多项式近似,已经提出了几种算法。看看here