使用谷歌地图API距离矩阵来解决带时间窗口的旅行商问题(TSPTW)或带时间窗口的车辆路径Prblm(VRPTW)[关闭]

问题描述 投票:4回答:2

Google API为路由点a-b提供了良好的指导,现在提供多个航路点和TSP优化(https://developers.google.com/maps/documentation/directions/#Waypoints)。

我想更进一步,解决带时间窗的旅行商问题(TSPTW),也称为带时间窗的车辆路径问题。换句话说,我想在优化步骤中添加约会和服务时间。

Google地图提供了distanceMatrix API方法,该方法在给定一组多个起始位置和多个结束位置的情况下,返回距离矩阵和每个之间的估计行程时间。鉴于这些信息,如何计算在某些时间必须查看n个航点的航线,即预约? https://developers.google.com/maps/documentation/javascript/reference#DistanceMatrixService

我找到了一篇关于这个主题的论文,但我很难将理论和数学翻译成实际的代码:qazxsw poi

我是LAMP开发人员,正在寻找PHP或JavaScript的解决方案。

是否有任何其他建议使用谷歌地图API或任何其他地图解决方案的数据解决VRPTW?

algorithm google-maps google-maps-api-3 routing traveling-salesman
2个回答
0
投票

试试这个:为每个约会创建一个数组,并添加一个“Effort”属性。逐步通过阵列并计算作为每个项目与其上方和下方项目之间的物理距离的平方和,计算空间距离以及时间的总和。在“Effort”中找到具有最高值的数组中的项目,并尝试将其重新放置在每个位置的数组中,以找到该项目的最低位置。对每个项目执行此过程。重复上述步骤,直到所有项目的总工作量停止减少或低于可接受的值。


0
投票

在这个视频http://www.akk.ke.hu/index.php?mid=60&did=739你可以看到如何解决TSP问题。当您计算路线的成本时,您需要检查所有任务都放在他们的时间窗口中。

如果你不想写这个算法,你可以使用谷歌的库:https://www.youtube.com/watch?v=RR7GXoWiUw4

© www.soinside.com 2019 - 2024. All rights reserved.