Originally posted by: SystemAdmin
If CPLEX 12 gives "optimal" solutions with inferior objective values to what you get with CPLEX 10, then I would say there is a small chance you have found a bug in 12 and a large chance that some combination of numerical instability in the problem and/or differences in parameter settings (particularly as regards tolerances) is at fault. The same holds for CPLEX 10 finding "feasible" solutions to problems that CPLEX 12 considers infeasible.
If the issue is that CPLEX 10 produces a better (and demonstrably feasible) solution than CPLEX 12 does within a given time limit, you also have to factor in differences in platform and input format. I assume these are MIPs. It is well known that small differences between systems -- different compilers and/or libraries (with slightly different floating point arithmetic methods), parallel v. sequential processing, maybe differences in FPUs -- can cause a solver to take a different route through the search tree (or even to make different pivoting choices in a node LP), and adventures can ensue.
Regarding dumping the model and running it interactively v. building and running the model internally, this can definitely have an effect, as you lose numerical precision converting between binary and text representations of the coefficients. Dumping a SAV file (rather than an LP file) reduces the precision loss (it may eliminate it, but I'm not sure about that).
You might try writing a SAV file of the model, then running it on both 10 and 12 with identical parameter settings. You might also try loosening some of the tolerance values. If 12 with looser tolerances produces results that match 10, it again points in my mind to stability issues in the model. (Which is not to say a bug is entirely out of the question.)
/Paul
Mathematicians are like Frenchmen: whenever you say something to them, they translate it into their own language, and at once it is something entirely different. (Goethe)
#CPLEXOptimizers#DecisionOptimization