jsprit如何将取件添加到车辆

jsprit how to add picked-up shipment to a vehicle

我想从上下文中恢复 VRP 问题。 在这种情况下,某些车辆可能已经装载了一些货物并正在运送途中。也可能是去取件地点取件。

我不想将这些任务重新分配给其他车辆。我怎样才能将它们分配给那种情况下的车辆?

我目前的解决方法是将拾取器设置为非常靠近该车辆的上下文位置和紧密拾取器 window 以及强制车辆拾取它所需的技能。 (这可能并不总是有效,所以我需要一种艰苦的写作方式来进行设置)

非常感谢!

您可以试试jsprit的初始路由功能。可以参考this post in jsprit's old mailing list and the example here.

编辑:

答案的重要部分:

VehicleRoute initialRoute_withShipmentsAndServices = VehicleRoute.Builder.newInstance(vehicle3)
    .addPickup(shipment1).addPickup(shipment2)
    .addService(service3).addService(service4)
    .addDelivery(shipment2).addDelivery(shipment1)
    .build();

vrpBuilder.addInitialVehicleRoute(initialRoute_withShipmentsAndServices);