Skip to content

Fix break ordering after shipment delivery - #1350

Closed
william-xue wants to merge 1 commit into
VROOM-Project:masterfrom
william-xue:fix/pickup-delivery-break-order
Closed

william-xue wants to merge 1 commit into
VROOM-Project:masterfrom
william-xue:fix/pickup-delivery-break-order

Conversation

@william-xue

Copy link
Copy Markdown

Issue

Fixes #1345.

Root cause

When evaluating a pickup while a break is pending, TWRoute::order_choice returned early as soon as pickup -> break -> delivery missed the delivery deadline. That skipped the pickup-specific fallback which also evaluates pickup -> delivery -> break, so a feasible shipment was rejected.

Tasks

  • Continue pickup-specific ordering checks when the immediate break placement misses the next task
  • Add a regression instance for the reported delivery and break windows
  • Verify the route has no unassigned tasks and orders pickup, delivery, then break

Validation

  • make -j2 USE_ROUTING=false
  • Regression before fix: 0 routes, 2 unassigned tasks
  • Regression after fix: 1 route, 0 unassigned tasks; delivery arrival 39900, break arrival 40800, route end 43500
  • Existing docs/example_2.json output matches docs/example_2_sol.json
  • git diff --check

@william-xue

Copy link
Copy Markdown
Author

Closing this for now — not because the fix is invalid, but because there is no review signal on it.

Summary of what is on the branch: it restores feasible pickup → delivery → break ordering in a one-vehicle PDPTW when the delivery and break windows are disjoint. Regression on the bundled instance: before 0 routes / 2 unassigned, after 1 route / 0 unassigned, objective cost/duration 5,400, with precedence, time-window and vehicle-horizon invariants satisfied. Both Sonar checks pass; the Actions workflow stays in action_required because it needs fork-workflow approval upstream.

The branch remains at william-xue:vroom (fix/break-ordering-shipment) with the regression test, so it is a one-command revive. I am happy to reopen, rebase and adjust to whatever direction you prefer as soon as there is interest — I just do not want to keep it sitting in the queue looking like an active proposal.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Break not scheduled after a constrained delivery - shipment dropped as unassigned

1 participant