Skip to content

Account for vehicle/job compatibility in Input::set_jobs_vehicles_evals #982

@jcoupey

Description

@jcoupey

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)).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions