Originally posted by: SystemAdmin
>
>Is there a more simple way to handle pure cutting planes algorithms with concert and cplex ?
If you solve an LP, modify it, and solve the modified problem, CPLEX will automatically "hot start" (attempt to use the previous optimal basis, and modify it as needed). So you don't need to use a callback for this case; just solve the LP to optimality, check the optimal solution, if necessary generate a new constraint and add it to the model, then solve the modified model. (This is all it takes with the Java API; with the C++ API, I can't remember whether you need to re-extract the model, but I don't think so.)
>
> The problem is that the MIP cplex solver stops whenever it gets an integral solution and does check if the cut callback (implementing my separation algorithm) provides violated constraints.
I think the best way to handle this is to add an incumbent callback. The incumbent callback checks the alleged integer solution and, if necessary, generates the separating cut, queues the cut (somewhere in your code) and rejects the incumbent. When the cut callback is subsequently called, it needs to check the queue and, if a cut is present, add it (and clear the queue).
Paul
Mathematicians are like Frenchmen: whenever you say something to them, they translate it into their own language, and at once it is something entirely different. (Goethe)
#CPLEXOptimizers#DecisionOptimization