Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  CPLEX 12.1 vs CPLEX 10.1

    Posted 08/20/10 04:33 PM

    Originally posted by: SystemAdmin


    I currently use CPLEX 12.1 to do some experiments. Another colleague, she used CPLEX 10.1 (or 10.x) and I observe that 10.1 gave better solutions than 12.1. We just let CPLEX solve the problem in 1H because we want to compare our algorithms with CPLEX.

    I dont think she let CPLEX more than 1H because the less time CPLEX run, she can have more chance to beat CPLEX. But I dont know why CPLEX 12.1 can give worse solutions than CPLEX 10. I

    May she run CPLEX several times and choose the best solutions found by CPLEX because CPLEX 12.1 gave unfeasible solutions for 2 instances but CPLEX 10 found solutions for all instances and found many better solutions than CPLEX 12.1?

    Is there any difference if she read the input file, wrote out the model, and used CPLEX interactive to read the model and solve it? I used CPLEX API to read the input file, create the model and solve immediately. I just wrote out the model and the results (open arcs, for example) to check if I create it correctly.

    Thanks for your explanation.

    Lessi.
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: CPLEX 12.1 vs CPLEX 10.1

    Posted 08/20/10 05:29 PM

    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


  • 3.  Re: CPLEX 12.1 vs CPLEX 10.1

    Posted 08/23/10 08:06 AM

    Originally posted by: SystemAdmin


    One possible explanation is bad luck: for any particular problem instance, it can just happen that an older CPLEX version solves it faster or even much faster than a newer version. But on average over a large number of problem instances, CPLEX 12.1 should be much faster than CPLEX 10.

    Another explanation is that there is a fundamental difference in the two runs, either the model is different (for example, because you exported it to an LP or MPS file rather than to a SAV file, and floating point values have been truncated), or parameter settings are different.

    A third explanation is that there is a bug in one of the versions that does not exist in the other one. You should check whether the best solution reported by the two versions is really feasible. In the interactive, you can do this by "display solution quality". Then, check whether the infeasibilities are small.

    I would be interested in checking what happens for your model. If possible, could you try to reproduce the behavior with the interactive versions of CPLEX 10 and CPLEX 12.1, using the same input file? In any case, you could send me your problem instance. My email is achterberg at de dot ibm dot com.
    Tobias
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: CPLEX 12.1 vs CPLEX 10.1

    Posted 08/31/10 12:16 PM

    Originally posted by: SystemAdmin


    Sorry for a late reply. I do not have a 10.x version of CPLEX in my computer. In server there are many versions of CPLEX but I dont know how to run these versions. The license allows me to run 12.1.

    I dont know much about cplex so I always use default settings. I will send some instances by email and you could check it.

    I obtain the results by using the solver (Concert Technology), not by interactive version.

    Lessi,
    #CPLEXOptimizers
    #DecisionOptimization