Account for vehicle/job compatibility in Input::set_jobs_vehicles_evals
#982
Labels
Milestone
Input::set_jobs_vehicles_evals
#982
In
set_jobs_vehicles_evals
, we compute all costs for adding a given job in an empty route for all vehicles. Down the line this is used in the heuristics to compute insertion regrets.The problem is that we define values even if a vehicle/job pair is not compatible which does not make sense. The result in the
dynamic
heuristic is that whenever a vehicle is the last one that can perform an unassigned job, we may still discard that choice because of a low regret value. This amounts to saying "I don't need to make the effort to insert this job at this point since another (still) empty vehicle can do it later for cheap". Except this "cheap" evaluation has no value if none of the remaining empty vehicles are compatible with that job and the job will remain unassigned.This may be especially problematic in situations with lots of constraints (no surprise this idea came up in #671 (comment)).
The text was updated successfully, but these errors were encountered: