Originally posted by: Soheilmn
Hi,
I have a cutting-plane algorithm written in C++ and I am using ILOLAZYCONSTRAINTCALLBACK macro. The cuts that I add may have very large coefficients (even of the magnitude of 10^50). The thing is that when such a cut is added using Callback macro, it does not cut the current solution, i.e., I get the same solution in two successive calls of Callback. For example, say, (z,y) represents the solution. At an iteration I get (z,0) where z>0, then I add a cut of the form z<=c^Ty (with no constant value on the RHS) where c>0, but I get the same solution (z,0) with z>0 on the next call to callback. The solution clearly violates the cut that I just explained.
(I have to add that I use IloNum data type for the coefficients, and it can store large numbers as far as I know.)
I have an idea on how to lower to coefficient (and still get a valid inequality), and when I add the modified cut (which is still in the form of z<=c^Ty (with c-coefficients being much smaller), I don't face the above issue.
I am interested to know if this is an issue just because the initial cut may have very big coefficients?
Thanks for your help,
Soheil
#CPLEXOptimizers#DecisionOptimization