Add max load constraint for break validity#794
Conversation
|
There is a subtlety I didn't see at first in the adjustments required to update The new load before insertion should be
Value 1 is already stored by the The best way to avoid this I can think of is to provide this value as an additional argument to This will add a bit of boilerplate to the |
|
We'll also have to apply to |
|
There is yet another thing I under-estimated here: the changes already applied to This limitation only applies for instances with jobs, so normally the current state of this PR should be already working for shipment-only instances (ping @fbaierl if you want to give it a spin). EDIT: I updated the task list to reflect this. |
|
Hello @jcoupey, not sure if I understand this correctly, but will the current solution only work if there are absolutely no job elements inside the VROOM query at all? We actually use jobs (always with empty pickup and delivery values) to force the vehicles to maintain certain previously calculated routes (as described here). I have added an example to the original issue with those empty jobs. |
|
I'm currently running some testing and I've spotted a few problematic situations along the way, such as P&D scenarios where we fail to insert shipments before or between the breaks, probably related to the heuristic decisions in |
|
I think the adjustments to One example is when we test a single pickup addition or delivery addition in So what I tried in the previous commits is to add a flag as parameter to A benefit of this approach is that we could try storing at vehicle level whether the |
… that have no break with max_load.
Issue
This PR aim at implementing #786.
Tasks
max_loadmember forBreakobjectsmax_loadvalues in json inputmax_loadis OK when formatting routesmax_loadrelated violation in plan modeis_valid_addition_for_twis_valid_addition_for_twreplacereplaceTWRoute::order_choiceTWRoute::is_valid_addition_for_twmax_loadand current route loadis_valid_addition_for_twvalidity checks to check for breaks outside the modified rangedocs/API.mdCHANGELOG.md