According to the Java documentation, the getValue() methods in a lazy constraint callback are inherited from IloCplex.ControlCallback and return "the solution value of a variable at the current node" or "the value expr takes for the solution of the continuous relaxation of the current node". At least for the first one (where the argument is a variable), that seems wrong. It returns the value of the variable in a candidate integer-feasible solution, which is not necessarily the value at the node. I suspect that when the argument is an expression the result is the expression evaluated at the candidate integer-feasible solution, but I have not tested that. In contrast, IloCplex.IncumbentCallback.getValue() is documented as using the proposed new incumbent. Am I wrong about what IloCplex.LazyConstraintCallback.getValue() does?
Thanks,
Paul
#CPLEXOptimizers#DecisionOptimization