我是使用jsprit和VRP的新手。我遇到了一个问题,一辆车需要到几个收货点,然后把货物送到几个发货点。在这种情况下,我使用了非对称成本矩阵。我不明白的是,为什么jsprit仍然从成本矩阵中询问不必要的位置对。此类查询的示例是从发货点到车辆起点的运输时间/距离(我还设置了车辆不返回仓库(。为什么会发生这种情况?我问这个问题是因为向Google API查询距离矩阵是昂贵的,并且每天限制为2500个条目(对于开发模式(
这是一个有趣的问题,但我认为这不是一个值得优化的问题。
1( Jsprit
与graphhopper
合作,使您能够自行托管自己的服务器,从而无限制地提供位置之间的距离和时间。例如,你可以从这里开始,或者从这里开始。
2( 如果你知道距离/时间与你的计算无关,那么根本没有必要计算任何东西。只需提供伪数据。当你将算法设置为不返回仓库时,它不会用于发货-->仓库的情况,所以不用计算它。
你总是可以在github上提出一个建议功能,但我的建议肯定是,如果你确信,那么使用伪数据是无关紧要的,只是为了满足系统,而不是试图计算欧几里得距离。
至于为什么会发生,我不能100%确定,但我认为期望所有数据(一个完整的矩阵(比解析什么是/不重要更容易。事实上,即使你提供了一个几乎完整的自定义矩阵,它也会故意尝试用欧几里得距离来填补空白,这表明情况确实如此。即使是10000次发货和setReturnToDepot(false)
的问题,你也只能自信地从100毫升矩阵中删除10000个数据点。