我是使用jsprit和VRP的新手。我设置了一个问题,车辆需要到多个货物取货点,然后将货物交付到多个货物交付点。在这种情况下,我使用了非对称成本矩阵。我不明白为什么jsprit仍然从成本矩阵中询问不必要的位置对。这种查询的示例是从货物交付点到车辆起点的运输时间/距离(我还设置车辆不返回仓库)。为什么会这样?我问这个是因为查询Google API的距离矩阵是昂贵的,每天限制为2500个条目(对于开发模式)
答案 0 :(得分:2)
这是一个有趣的问题,但我认为这不值得进行优化。
1)Jsprit
与graphhopper
合作,已经让您能够自行托管您自己的服务器,无限制地提供位置之间的距离和时间。例如,您可以为此启动here,或here。
2)如果您知道距离/时间与计算无关,则根本不需要计算任何东西。只提供虚拟数据。它不会用于货物交付 - >仓库,当你设置算法不返回仓库,所以不要打算计算它。
你总是可以在github上加注作为建议的功能,但我的建议绝对是填充虚拟数据,如果你确定它只是为了满足系统而不相关尝试计算欧几里德距离。
至于为什么这种情况发生,我无法100%确定,但我认为它更容易预期所有数据(一个完整的矩阵)而不是开销解析什么是不重要的。即使你提供了几乎完整的自定义矩阵,它故意试图用欧几里德距离填补空隙这一事实也表明情况就是如此。即使是10,000次发货的问题,setReturnToDepot(false)
您也只能自信地从100mil矩阵中移除10,000个数据点。