对某些人来说,这可能是一个有趣的问题。我需要知道如何在getTransportCost
函数中包含之前访问过的位置来计算以前的方向,以了解您来自哪里?然后我可以计算到下一个位置的距离。
例如,像这样:
getTransportTime(Location previus, Location from, Location to, double departureTime, Driver driver, Vehicle vehicle){
return getDistanceFromAPreviusLocation(previus, from, to);
}
在下一张图片中你可以看到我的问题,你有一个拾取点和两个交付点,目前它正在计算部分距离,而不考虑前面的方向来自街道上的汽车。
问题:
算法专门使用点到点的距离来计算作为结果的路线,即这些距离的总和。如果你只是把它画得像是小距离的总和而没有考虑到访问的普遍点那么你有类似的东西。
但是如果您使用一个独特的路径绘制相同的解决方案,那么您就遇到了这个问题。看下一张图片
在此图片中,您可以看到考虑到访问的当前位置的可能解决方案。
可能的解决方案:
谢谢!
答案 0 :(得分:0)
为什么你需要在getTransportCost中拥有prev位置?最优解是通过整个路由成本计算来计算的,因此默认情况下jsprit应该返回image2作为最佳解决方案。没有理解你的图像和getTransportCost之间的联系。
在调用jsprit之前,您应该计算每个点对的距离矩阵。类似的东西:
pickup deliveryX deliveryY
pickup 0 10 15
delivery X 12 0 13
delivery Y 11 18 0