I've encountered some weird behavior when using the Automatic Benders Decomposition in CPLEX.

I initially solved the MIP without BD and then I compared the results against the Full, Workers and User strategies using the CPLEX Java API.

While the User strategy yielded the same solution (optimal) found by the Single MIP, both the Full and Workers strategies are off by 0.5% from the optimal solution.

Now when I turned off the preprocessing presovle, all strategies were able to find the optimal solution, but of course this resulted in increased computational time.

Next, I solved the same problem in CPLEX Interactive Optimizer using the generated LP file. Surprisingly, without turning off the preprocessing presolve, the Full strategy found the optimal solution.

I noticed the same behavior when using CPLEX 20.10 and 22.11.

So I am wondering why is this happening ? and How it can be avoided ?

Since the log file is long to be posted here, I will attach it as a separate file for your reference. log file

  • 1
    $\begingroup$ Did you try to use same random seed in your testing? I think it might be numerical issue. $\endgroup$
    – ytsao
    Commented Oct 27, 2023 at 12:50
  • $\begingroup$ Testing on the .lp file may involve subtle modifications to the problem data (due to text encoding/decoding of double-precision numbers). What happens if you export a SAV file and run that through the interactive optimizer? As @ytsao suggests, there may be numerical stability issues at play. $\endgroup$
    – prubin
    Commented Oct 27, 2023 at 15:50
  • $\begingroup$ @ ytsao Yes I used some random seed, and I got the optimal solution but it is not consistent. @prubin unlike the .lp file, running the sav file didn't give the optimal solution. I ran the IloCplex.Param.Read.DataCheck , I got two warnings the 1047 (Decimal part of coefficients in constraint xxx are fractions and can be scaled with etc.) 1038 (Solution optimal within relative optimality tolerance of 0.0001, but non optimal within absolute optimality tolerance of value 1e-06.) Any tips on how to resolve this numerical stability issue? Thank you. $\endgroup$
    – CHE
    Commented Oct 27, 2023 at 18:43
  • $\begingroup$ It's not yet clear that you do have a numerical stability problem (although the difference between LP and SAV results could indicate one). Try solving the problem with the kappa stats parameter set to FULL (which will slow the solver down) and see how many bases have bad condition numbers. $\endgroup$
    – prubin
    Commented Oct 28, 2023 at 23:27


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.