Originally posted by: Gilead
Hello,
I'm back from holidays !
Let me start again from beginning.
I have a LP with a class of constraints of exponential size. I can separate in polynomial time on this class of constraints and thus, I can solve the LP using a cutting planes method. To write a cutting planes using Cplex/Concert, I have two options :
1) define all my variables as continuous variables, and a starting reduced LP
solve the LPs with the solve() method of an IloCplex instance.
for each obtained solution, run my separation algorithm.
If the separation routine do not return any violated cuts, stop !
else add the vioaletd cuts to my IloCplex instance with the method addCut() and start again the optimization.
The drawback of this method is that, at each iteration, the reoptimization starts from the solution of the first iteration and not the last one. This means that it has to add again and again all the generated inequalities instead of taking advantage from the last solution. As a result, the reoptimization becomes time consuming.
2) the second option is to declare my (or some) variables as integer and use the usercut and lazy constraints callbacks to manage the generation of the cutting planes.
The advantage of this method is that the reoptimization starts from the last solution and thus is quite faster than the previous method.
However, it has also some drawbacks. The main drawback is that, as I am interested in the LP relaxation solution of the formulation, I have to turn off all the feature given by Cplex for integer programs, that is generation of generic inequalities, preprocessing, heuristics, nad so on. The problem in this case is to guarantee that I have turned off everything and that the solution I get at the root node of the Branch-and-Bound correspond to the LP relaxation solution.
For the moment, I'm using the second method. But if anyone has a method to solve LP formulations with a pure cutting planes technique and Cplex as a linear solver, he's wellcome.
Pierre
#CPLEXOptimizers#DecisionOptimization