You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The text was updated successfully, but these errors were encountered:
torinori
changed the title
Amount update asser error in RawRoute::update_amounts() caused by RouteSplit operator
Assert error in RawRoute::update_amounts() caused by RouteSplit operator
Sep 6, 2023
Thanks for sharing the details and instance, I can reproduce with current master. This kind of assert is here to make sure we're in a normal/valid state, here wrt capacity constraints.
So at first sight, I'd say we're trying to apply the operator in a way that breaks the capacity constraints, and the assert catches that. The bottom line here is the validity checks for capacities in the RouteSplit operator are probably too loose .
There was indeed a flaw in the capacity validity checks performed inside RouteSplit. As a result a split was wrongly considered valid and applied, leading to an over-capacity route.
The tricky part is that this could only happen in a situation mixing job pickups and deliveries (e.g. with the provided instance), so the problem never arose with the usual HVRP benchmarks that are delivery-only.
Something I noticed is that while we had one check that was too loose in some situations, another capacity check was actually too tight so we were discarding possible valid splits, including in delivery-only situations. This means that we can expect the fix to also have an impact on benchmark results. I'll report on that directly on the PR.
Command:
Error:
Vroom version:
vroom 1.14.0-dev
GDB stack trace:
After removing RouteSplit from list of operators, it works fine.
Standalone problem instance: input_cap_assert_matrix.json.txt
The text was updated successfully, but these errors were encountered: