Tags

Knowing The Optimum Helps A Bit

Recent experiments - An updated version is available here - by Rodolfo Carvajal show that knowing the optimal solution does not dramatically change the difficulty of mixed integer programming (MIP) problems. In his experiments, Carvajal found that providing an optimal solution at the start of computation only speeds up CPLEX 12.4 by 2 to 4 times on average. This is reminiscent of another experiment by Tobias Achterberg mentioned here: providing the optimal solution speeds up CPLEX MIP by about 2 on average.

A 2x speedup is good. Not doubt about it.

However, in order to get this speedup a lot of information is provided. The solver is input with the result it is supposed to compute. Indeed, solving a MIP amounts to finding an optimal solution, doesn't it?

Then, why isn't the speedup larger?

Let's look more precisely at what needs to be done when an optimal solution is provided as input. To be precise, what is being input is a feasible solution whose objective value happens to be the best possible one. But the solver isn't told that this is the best possible objective value. That's the trick.

Then the solver does two things:

It checks that the input values define a feasible solution to the input MIP problem

It tries to find a better feasible solution. If it fails, then it has proven that the input feasible was indeed optimal.

Part 1 is easy, one need to check if all constraints are met by the proposed variable values. This can be done in a time polynomial in the size of the input MIP problem.

What about part 2? Can there be a quick way (polynomial time) to prove that there are no better feasible solutions? Most theoreticians believe this is not always possible because it is a co-NP complete problem (*). If they are right, then it means that there is no general way to quickly prove that a solution is optimal. Carvajal and Achterberg experiments are confirming this.

Does it matter in practice? One could say that we should not worry about proving optimality. Indeed, there are optimization methods, eg. meta heuristics, that do not prove optimality. Others will say that proving optimality has value, see for instance What Is The Gap? I won't repeat that discussion here. Let me just make the following point: if we look at Carvajal and Achterberg experiments, proving optimality requires between a quarter and a half of the solving time on average. This is not that expensive, so why not do it?

(*) For those interested in knowing more about co-NP completeness, here is a very short introduction.

Let us define the following decision problem:

(DP) Given a MIP problem P, and an objective value z*, is it true that there are no feasible solution for P with objective value smaller than z*?

Its negation is

(NDP) Given a MIP problem P, and an objective value z*, is there a feasible solution to P with objective value z such that z < z*?

As explained in NP Or Not NP? That Is The Question the (NDP) problem is NP complete: one can check in polynomial time that some assignment of values to variables is a feasible solution of objective value smaller than z.. Its negation, i.e. (DP) is co-NP complete. Most computer science theorists believe that there is no polynomial algorithms to solve co-NP complete problems in general.