Reduce service time for consecutive pickups / deliveries on same locations


Is it possible to reduce service time for consecutive shipment pickups/deliveries on same coordinates during solution search?

For example:
There are four shipments = 4 pickups & 4 deliveries. All shipments picked from same locations, and delivered from to same locations.

Default pickup / delivery service time = 60 seconds.

Default result:

P1 (60s), P2 (60s), P3 (60s), P4 (60s), D1 (60s), D2 (60s), D3 (60s), D4 (60s)
Total service time = 480 seconds.

Result with service time reduction for consecutive activities:

P1 (60s), P2 (0s), P3 (0s), P4 (0s), D1 (60s), D2 (0s), D3 (0s), D4 (0s)
Total service time = 120 seconds.

How to produce solution that would have service times from result above? Maybe there is a way to influence algorithm to in a way that would truncate service times?

If the service times are the same for all jobs at a location, then an easy way to model this would be to modify your transport time matrix.

So whenever you read the travel time between two different locations/jobs i and j you just add the service time of j to the travel time. In addition, you have to adjust the time windows by adding the service time to the start and end time to account for the modified travel time.

1 Like

Thanks for reply!

But what if service times are different for pickups and deliveries?

For instance, each non-consecutive pickup P takes 60 seconds, and non-consecutive delivery D takes 600 seconds?

You can separate objects of pickup and delivery locations, with same coordinates, but different id, and determine transport time by location id