Use capacity bounds for LS operator pruning#710
Conversation
|
Here are some comparisons on the usual benchmark classes. The best candidates to make a difference are the CVRP instances, but VRPTW instances are impacted too as they also have capacity constraints, albeit less binding. Solution qualityThis PR gets the exact same solution as current Average computing timesCVRPAverage computing time for all instances in each benchmark class across various exploration levels.
That's another 2x speedup (on top of the recent improvements in other PR). The gain is especially high since those instances have strong capacity limitations applying. VRPTWAverage computing time reported for all instances in each benchmark class using
On the smallest instances, the tests overhead actually cover the gain of early aborts, but the speedup then increases with bigger instances. The impact here is smaller since capacity constraints are less predominant that timing constraints in those instances, but that's still good to have! Again this is an additional gain on top of #696 that already drastically reduced computing time on those instances. |
Issue
Fixes #709.
Tasks
RelocatemovesOrOptmovesCrossExchangemovesMixedExchangemovesTwoOptmovesReverseTwoOptmovesRouteExchangemovesSwapStarmovesUnassignedExchangemovesCHANGELOG.md