Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate CVRP clustering heuristics? #267

Closed
jcoupey opened this issue Sep 4, 2019 · 1 comment · Fixed by #262
Closed

Deprecate CVRP clustering heuristics? #267

jcoupey opened this issue Sep 4, 2019 · 1 comment · Fixed by #262
Milestone

Comments

@jcoupey
Copy link
Collaborator

jcoupey commented Sep 4, 2019

The current clustering heuristics build job clusters for each vehicle, then run a single TSP per vehicle to get an initial set of routes. Because there is no notion of TW validity in the clustering process (that would be #139), it only applies to CVRP so far.

When used in a delivery-only context, this is all fine, but in the light of #262 this approach does not hold out-of-the-box anymore. Indeed we can come up with clusters that look globally fine as seen from the delivery/pickup sum point of view, but then we have no guarantee that the TSP solution will be OK wrt step-by-step capacity violations (think a situation where all pickups are done at the beginning of a route then all deliveries at the end).

So the question is to know whether we need to update the existing heuristics, or deprecate them altogether. I'd rather go with the second option because:

  • having a CVRP-specific heuristic is a long-term burden for maintenance
  • we already have a lot of parameter tuning options with the other heuristics, we can probably reach similar (or acceptable) quality/computing times on CVRP instances by just adjusting those while ruling out clustering approaches

This last point requires some investigation for a sound decision.

@jcoupey jcoupey added this to the v1.5.0 milestone Sep 4, 2019
@jcoupey
Copy link
Collaborator Author

jcoupey commented Sep 4, 2019

A couple experiments show that a (quite basic) tuning change that rules out all clustering heuristics for CVRP does perform nearly as well as the current setting. Results are very close in term of quality and can be improved upon, computing times are roughly identical as expected. So this is a go for deprecation of the CVRP clustering heuristics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant