Originally posted by: regisgomes
Do I understand correctly from your log that the callback _is_ invoked at the right time (right before the solution 274 is processed) but apparently it is invoked with the wrong solution?
That's it.
How do you get the objective value 276 that you print in the callback? Do you calculate this yourself or do you get this from some CPLEX function?
I use getIncumbentObjValue() command.
Also, how are you separating lazy constraints? Do you separate them from a table or do you have a dynamic separation algorithm? Note that in certain cases it may happen that you have to separate a constraint more than once! In other words, if you separate constraint C in a callback then you can not assume that at the next invocation of the callback constraint C is in the model. You have to check _again_ whether it is violated.
I use a dynamic separation algorithm. The cut is added without problem. But that I stopped caring. Because I use getIncumbentValue() command to get the variables values of incumbent solution, but how these values are of previous solution, the cut produced only applies to previous solution and not to current solution, ie generates a cut to 276 solution, but the solution that is active is 274 (which is not feasible).
Continue to wait any help.
#CPLEXOptimizers#DecisionOptimization