The resolution of integer programming problems is typically performed via branch-and-bound. Nodes of the branch-and-bound tree are pruned whenever the corresponding subproblem is proven not to contain a solution better than the best solution found so far. This is a key ingredient for achieving reasonable solution times. However, since subproblems are solved in floating-point arithmetic, numerical errors can occur, and may lead to inappropriate pruning. As a consequence, optimal solutions may be cut off. We propose several methods for avoiding this issue, in the special case of a branch-cut-and-price formulation for the Capacitated Vehicle Routing Problem (CVRP). The methods are based on constructing dual feasible solutions for the LP relaxations of the subproblems and obtaining, by weak duality, bounds on their objective function value. Such approaches have been proposed before for formulations with a small number of variables (dual constraints), but the problem becomes more complex when the number of variables is exponentially large, which is the case in consideration. We show that, in practice, besides being safe, our bounds are stronger than those usually employed, obtained with unsafe floating-point arithmetic plus some heuristic tolerance, all of this at a negligible computational cost. We also discuss some potential advantages and other uses of our safe bounds derivation.
View Numerically safe lower bounds for the Capacitated Vehicle Routing Problem