我正在尝试找到最优的方式通过点A、B、C和D,但有一些额外的限制——必须先到达某些点。比如说,在到达B之前必须先到达D,也就是对某些点进行排序。
如果没有其他限制,Google Maps API可以帮助解决这个问题。是否有其他服务可以帮助解决这个问题?是否有我错过的使用Google Maps API的方法?
如果没有其他限制,Google Maps API可以帮助解决这个问题。是否有其他服务可以帮助解决这个问题?是否有我错过的使用Google Maps API的方法?
bestWay(point a, point b)
:{A,B,C,D}
作为点,并且必须按以下顺序访问它们:A,C,D,B
A->C->B->D
A->B->C->D
...
B->A->C->D
这里有一个Javascript的精确求解器:http://www.iaindunning.com/?page_id=39。它使用线性规划和割平面方法,就像这里 http://www.tsp.gatech.edu/methods/dfj/index.html 一样。
有一个开源的旅行商问题实现可在http://www.openopt.org/TSP中获得-尽管它使用Python编写。
我已经将上述OpenOpt TSP和Google Directions合并到一起,提供了一个网站,可以完成您所需的功能(除了订购限制),请前往http://www.speedyroute.co.uk/查看。