我想从上下文中恢复VRP问题。在这种情况下,一些车辆可能已经装载了一些货物并正在运送途中。或者它可能会去取货地点取货。
我不想将这些任务重新分配给其他车辆。在这种情况下,我如何将它们分配给车辆?
我目前的解决方法是将拾取的车辆设置在离该车辆的上下文位置很近的位置,并设置一个紧密的拾取窗口和强制车辆拾取所需的技能。(这可能并不总是有效的,所以我需要一种艰苦的写作方式来完成设置)
非常感谢!
您可以尝试jsprit的初始路由功能。您可以参考jsprit旧邮件列表中的这篇文章和这里的示例。
编辑:
答案的关键部分:
VehicleRoute initialRoute_withShipmentsAndServices = VehicleRoute.Builder.newInstance(vehicle3)
.addPickup(shipment1).addPickup(shipment2)
.addService(service3).addService(service4)
.addDelivery(shipment2).addDelivery(shipment1)
.build();
vrpBuilder.addInitialVehicleRoute(initialRoute_withShipmentsAndServices);