SCIP is giving me solution, but CPLEX v12.9 is not

I understand now that you will say that you can’t help me without providing the whole code to test, but can you at least point me is there anything that I can check for ie: some logging mechanism, debug, the default setting of both solvers, etc.

Both Cbc and SCIP are working (Cbc is running forever), SCIP is giving me a solution after a few minutes of running, but CPLEX is running only a second and say that the model is not feasible, are they really so fast?

Warning:  Non-integral bounds for integer variables rounded.
Reduced MIP has 44784 rows, 48840 columns, and 836708 nonzeros.
Reduced MIP has 11046 binaries, 210 generals, 0 SOSs, and 47454 indicators.
Presolve time = 0.25 sec. (1135.45 ticks)
Warning:  No solution found from 1 MIP starts.
Retaining values of one MIP start for possible repair.
Presolve time = 0.25 sec. (15.03 ticks)

Root node processing (before b&c):
  Real time             =    0.97 sec. (1223.36 ticks)
Parallel b&c, 8 threads:
  Real time             =    0.00 sec. (0.00 ticks)   
  Sync time (average)   =    0.00 sec.
  Wait time (average)   =    0.00 sec.
                          ------------
Total (root+branch&cut) =    0.97 sec. (1223.36 ticks)
termination_status(prmx) = MathOptInterface.INFEASIBLE

and this is what SCIP is giving me:

presolving:
(round 1, fast)       41005 del vars, 39736 del conss, 0 add conss, 142658 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 2982 impls, 42 clqs
(round 2, medium)     41005 del vars, 88500 del conss, 0 add conss, 142658 chg bounds, 0 chg sides, 63116 chg coeffs, 0 upgd conss, 2982 impls, 42 clqs
   (2.0s) probing: 51/579 (8.8%) - 0 fixings, 0 aggregations, 0 implications, 0 bound changes
   (2.0s) probing aborted: 50/50 successive totally useless probings
   (2.0s) symmetry computation skipped: there exist constraints that cannot be handled by symmetry methods.
presolving (3 rounds: 3 fast, 2 medium, 1 exhaustive):
 41005 deleted vars, 88500 deleted constraints, 0 added constraints, 142658 tightened bounds, 0 added holes, 0 changed sides, 63116 changed coefficients
 2982 implications, 42 cliques
presolved problem has 32424 variables (579 bin, 3192 int, 28653 impl, 0 cont) and 42361 constraints
  13409 constraints of type <SOS1>
  28952 constraints of type <linear>
transformed objective value is always integral (scale: 0.2)
Presolving Time: 1.00

Now, why this:

I didn’t supply any MIP starts so why It says that there is 1?

Yes, (minimal) code is the best way to solve issues.

Running forever is not guaranteed to be a sign of doing the right thing.

If you are not sure, I recommend testing SCIP’s solution feasibility.
If it is feasible then that might be a CPLEX issue, in which case you can contact their support team.

3 Likes

I have a solution with SCIP and it is totally feasible (checked manually results). Now based on SCIP logging it seams that SCIP got the results after applying heuristic to it. so maybe CPLEX is not using heuristics at all My code is a bit complex and can’t be simplify to post here. Also I don’t think that the issue is with solvers, but I think it is more about me and how to write the model correctly as the mip model.

Why do you think it is a modeling issue? SCIP and CPLEX are not using the same JuMP code?

1 Like

I think because SCIP is using heuristics to solve it and CPLEX didn’t even try heuristics. Next, I will set a starting solution for it to see if that will change anything.

Try CPLEX 12.10 and the latest master version of CPLEX, which you can get via ] add CPLEX#master.

2 Likes

I will try, I am getting it from an IBM partner so hopefully, they have it on their software portal.

I have the newest version of CPLEX, but no luck, anyway thanks for the suggestion.

1 Like

This might be an issue with numerics then. Without a simplified reproducible example, it’s hard to offer more advice.

1 Like