-
Notifications
You must be signed in to change notification settings - Fork 344
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
Higher cost for the same problem with a bigger fleet #953
Comments
TL;DR this behavior is related to a heuristic bias. Thanks for sharing a json instance. I can reproduce the results you get:
Both solutions are the one provided with the initial solution building heuristics, i.e. none of the local search moves we have is able to improve the solutions. The reason why a route is built for vehicle 2 in the first place when both vehicles are available is that its start/end location is closer to more jobs than vehicle 1 (3 jobs closer to vehicle 2 vs 2 jobs closer to vehicle 1). This is the usual heuristic process we use when dealing with a fleet that has heterogeneous locations, because it helps to start filling out routes first for vehicles that have a "dense" jobs area nearby. Another question is why we're not able to "fix" this as we could perform the following moves, available in the local search:
The problem here is that the intermediate route has a higher cost ( |
Using the latest release build (v1.14.0) fixes this for the provided example: both inputs above are now solved to the optimal cost of Taking a closer look at what did the trick: it turns out that the adjustments made to the heuristic process, though not allowing to directly reach the "right" solution heuristically, do lead to another heuristic solution with the right vehicle that in turn can be improved with a single I'm not saying this kind of bias can't show up any more at all, but at least we can close this ticket. |
Great work! @jcoupey |
I have noticed that, in some cases and for the same set of jobs and a given fleet, the total cost is higher than if only part of the fleet was used.
For example, the total cost of the problem below returned by vroom is 396. However, if we use only vehicle 1 (commenting out vehicle 2) the total cost is 388. This does not make sense since in the first instance, vroom could have detected that using vehicle 2 is suboptimal and all jobs could have been assigned to vehicle 1.
I've detected that this only occurs when vehicles start and end at the same location.
This conversation comes from this issue in pyvroom
The text was updated successfully, but these errors were encountered: