-
Notifications
You must be signed in to change notification settings - Fork 339
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
Too much splitting of same-location deliveries in a route #560
Comments
Upon further examination, this appears to be related to a bias from the heuristic process. Consider a typical situation where a new tour across pickups needs to be started for capacity reasons. Say we go from:
Then all the following insertion options have the same cost due to deliveries being at the same location (inserted tasks are capitalized):
But because the criterion for updating the best insertion option is a strict improvement, the first option is picked over the last one, which is nonetheless obviously better for next steps. This creates a situation with pending pickups not delivered and we end with a lot of going back to the delivery site. I've tried switching to a
In that case, we create a new pickup tour at the end in the above situation. The heuristic results are much better, enough so that the local search will fix the remaining hicups and we end up with the "right" number of delivery site visits. Now this change is useful to understand the problem but is not a serious fix. If applied, a symmetric problem for instances with same-location pickups appears and the solution quality on those regresses. |
See code change suggestion in previous comment. |
Consider the (somewhat specific) scenario of a PDPTW where all deliveries are located at the same place. Based on the capacity restrictions, we expect a typical route to look like sequential tours across pickups with a bunch of deliveries in between. For example
p - p - p - d - d - d - p -p - d -d
.The current solving approach does not do a good job on this kind of instances and I have at hand a few instances where we generate too many delivery sequences, i.e. a valid solution exists with less
D
sequences in routes and is cheaper but we don't reach it. Also in that case the solutions look a bit silly with delivery tasks only happening at the end of the route whereas they could be done in a previous delivery sequence.The text was updated successfully, but these errors were encountered: