VROOM-Project / vroom

Vehicle Routing Open-source Optimization Machine
http://vroom-project.org/
BSD 2-Clause "Simplified" License
1.34k stars 337 forks source link

Heterogeneous/homogeneous fleet flag #151

Closed jcoupey closed 6 years ago

jcoupey commented 6 years ago

We have heuristic approaches for both VRPTW (based on Solomon I1) and CVRP (custom clustering scheme). In both cases, parameters tuning are highly dependent on whether we face single or multi-depot situations. During the problem definition, we should keep track if the fleet is homogeneous or not. Capacities or time windows are not really relevant here, just vehicles start/end.

This is pretty straightforward (add a flag in class input and checks in input::add_job and input::add_vehicle) but would unlock interesting things like:

krypt-n commented 6 years ago

I just want to comment that in my experience there are often very few different "types" of vehicles in real (heterogenous fleet) problems (like 2 or 3). A heuristic for a heterogenous fleet problem could thus be improved by looking at these types of vehicles instead of individual vehicles.

jcoupey commented 6 years ago

A heuristic for a heterogenous fleet problem could thus be improved by looking at these types of vehicles

Totally, but theoretically the number of combinations is huge, especially if you add situations with start/end-less vehicles. Do you have some references for articles on this specific question?

I guess then it's a matter of drawing the line for how far we want to go on customizing for specific use-cases. This idea was triggered by the current a priori vehicle sorting in the VRPTW heuristic that does not make any sense in a multi-depot context (hence #152). And maybe this first homogeneous/heterogeneous distinction will be enough in term of specialization.

Another thing to keep in mind here is that we're talking heuristics only. As long as the overall heuristic scheme is "not too bad", the local search phase usually undoes quite a lot of biases.

jcoupey commented 6 years ago

Done in #156