使用Google地图/地理位置/路线查找,旅行商问题的实际解决方案是什么?
我不需要最好的解决方案,5%以内就没问题。
例如,我在英国有20个地点可以按任意顺序访问。这可能需要扩展到数百个位置。
我可以使用哪种算法,因为我可以查找距离(但不想查找数百个距离)?
答案 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。