Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Small fix on the initial fleet-size bound and repair operator
The XML set, recently proposed [HERE](https://openreview.net/pdf?id=yHiMXKN6nTl) has provided us with 10,000 small scales instances of 100 customers. Runs on these instances permitted to detect a few edge cases which prevented the algorithm from producing feasible solutions, though feasibility on the CVRP is generally easy to achieve (no limit on fleet size). - The number of vehicles used to initialize the data structures (2+20% more than the Bin Packing linear-relaxation bound) was too small. This did not allow to find a feasible solution on 3 instances out of 10,000. This number has been raised to 3+30%. - There was a small bug in the local search which, in theory, could permit to exit the LS immediately after the first loop. This behavior only happens if no move is found in the entire neighborhood. In the current implementation, moves that lead to the creation of new routes are only explored on the second loop and onward, as a consequence, the LS could miss moves that are important to repair the solution. This rare behavior did not allow to find a feasible solution in 1 out of 10,000 instances. A condition has been added to ensure that the LS always does at least two loops, therefore fixing this weakness. - This commit fixes these two weaknesses, and also relax a bit the range of allowed penalty parameter values to be more permissive in the future.
- Loading branch information