1

也许这对某些人来说可能是一个有趣的问题。我需要知道如何在getTransportCost函数中包含之前访问过的位置来计算之前的方向,从而知道你来自哪里?然后我可以计算到下一个位置的距离。

例如,像这样: getTransportTime(Location previus, Location from, Location to, double departureTime, Driver driver, Vehicle vehicle){ return getDistanceFromAPreviusLocation(previus, from, to); } 在下一张图片中,您可以看到我的问题,您有一个取货点和两个送货点,目前它正在计算部分距离,而不考虑之前的方向,即街道上的汽车从哪里来。

问题:

该算法专门使用从点到点的距离来计算作为结果的路线,即这些距离的总和。如果您仅将其绘制为小距离的总和而不考虑访问的上一个点,那么您将得到与此类似的东西。

在此处输入图像描述

但是,如果您使用唯一的路径绘制相同的解决方案,那么您就会遇到这个问题。看下一张图片

在此处输入图像描述

在此图像中,您可以看到考虑到以前访问过的位置的可能解决方案。

可能的解决方案:

在此处输入图像描述

谢谢!

4

1 回答 1

0

为什么你需要在 getTransportCost 中有 prev 位置?最优解是通过整个路由成本计算得出的,所以jsprit默认应该返回image2作为最优解。不了解您的图像和 getTransportCost 之间的链接)。

在调用 jsprit 之前,您应该计算每个点对的距离矩阵。就像是:

            pickup  deliveryX   deliveryY
pickup       0        10            15
delivery X  12        0         13
delivery Y  11        18            0
于 2017-11-10T08:50:13.873 回答