Hello all,

We are trying to use Jsprit for employee pickup/dropoff with the goal of minimising sum of travel time of individual employees.

For example lets say we have

- base location
- employee1 - 2 kms from base
- employee2 - 5 kms from emp1
- employee3 - 10 kms from emp2 and 15 kms from base

If all the employees need pickup from their homes to base, Jsprit randomly gives any of these 2 possibilities – clockwise (base-emp1-emp2-emp3-base) and anti-clockwise (base-emp3-emp2-3mp1-base). Lets say both the routes are equidistant (roads are two-way)

**Clockwise Route**

base -> emp1 -> emp2 -> emp3 -> base – in this solution

car runs empty for base-emp1 which is 2 kms

emp1 spends 5+10+15 = 30 kms in car

emp2 spends 10+15 = 25 kms in car

emp3 spends 15 kms in car

Total distance travelled by the car (2+5+10+15 = 32 kms)

Sum of KMs (hence time) spent in the car by employees = 70 and empty run = 2km

**Anti-clockwise Route**

base -> emp3 -> emp2 -> emp1 -> base – in this solution

The car run empty for base-emp3 which is 15 kms

emp3 spends 10 + 5 + 2 = 17 kms in car

emp2 spends 5 + 2 = 7 kms in car

emp1 spends 2 kms in car

Total distance travelled by the car 15+10+5+2 = 32 – same as above

Sum of KMs (hence time) spent in the car = 26 and empty run = 15 km

Obviously the second solution (anti-clockwise) is better solution as employee time spent is less (26 vs 70) even though the car travels the same distance (32)

What we are noticing is that jsprit is not consistent and outputs any of the above solutions as it thinks both routes have the same cost.

Since we are solving the problem for close to 200 employees with 50-70 cars, we can not just define soft-constraint for close-by employees.

Seems like we need another cost matrix which is not tied to vehicle but tied to the Job travel time

Thoughts?

Thanks

-ajay