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

Fix break ordering #386

Merged
merged 4 commits into from
Sep 16, 2020
Merged

Fix break ordering #386

merged 4 commits into from
Sep 16, 2020

Conversation

jcoupey
Copy link
Collaborator

@jcoupey jcoupey commented Sep 1, 2020

Issue

Fixes #385

Tasks

  • Patch TWRoute::order_choice
  • Update CHANGELOG.md
  • review

@jcoupey
Copy link
Collaborator Author

jcoupey commented Sep 14, 2020

The previous commit does a good job avoiding the problems described in #385, and from a heuristic standpoint it makes sense to favour including pickups first whenever possible, because that's the best way to save room for the upcoming matching delivery.

On the other hand, this simple fix still has a bias: think a situation where both pickup and delivery are doable after the break (B -> P -> D is valid) and pickup looks OK before break (P -> B is valid). Then with 809bd20, the latter will be chosen but both P -> B -> D and P -> D -> B may turn out to be invalid.

This instance with a single vehicle, break and a single shipment has time constraints designed especially to reproduce this situation. When solving with 809bd20, both pickup and delivery turn up as unassigned whereas the shipment could be assigned in a valid way after the break and we simply fail to lookup this option.

@jcoupey jcoupey added this to the v1.8.0 milestone Sep 15, 2020
@jcoupey jcoupey merged commit 29ec51d into master Sep 16, 2020
@jcoupey jcoupey deleted the hotfix/order-choice branch September 16, 2020 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Break always placed in first position
1 participant