Hello everyone !
I'm solving pickup and delivery problem. Each vehicle is capable of doing pickup passenger, delivery, or both at once.
while the solution gives passenger delivery before collection.
What measures or constraints can I take to get the vehicle to start pick-up after delivery?
list pickup: 0,15,10,10,0,5,0,5,0,5,0,5,0,0,0
list delivery: 0,0,0, 0,10,5,5,0,5,0,5,0,10,5,10
# Pickup and Delivery constraints.
for node_index in range(1, len(data['pickup'])):
if data['pickup'][node_index] > 0 or data['deliveries'][node_index] > 0:
pickup_index = manager.NodeToIndex(node_index)
delivery_index = manager.NodeToIndex(node_index)
# routing.AddPickupAndDelivery(pickup_index, delivery_index)
routing.solver().Add(routing.VehicleVar(pickup_index) == routing.VehicleVar(delivery_index))
routing.solver().Add(time_dimension.CumulVar(pickup_index) <= time_dimension.CumulVar(delivery_index))