Decision Optimization

Decision Optimization

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

 View Only
  • 1.  Disable randomness for problem solving

    Posted Mon January 05, 2009 10:49 PM

    Originally posted by: SystemAdmin


    [zubrowa said:]

    Hi,

    I'm using CPLEX 11 to solve some ILPs. However, running CPLEX against the same model
    sometimes results in different solutions. CPLEX seems to use by default a randomized approach
    to find its solution. Is there a possibility to disable this randomness in order to make the results
    more deterministic, i.e. to get always the same results (assumed that there is no time-out) ?

    Regards,
    Tim



    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Disable randomness for problem solving

    Posted Thu January 08, 2009 01:29 AM

    Originally posted by: SystemAdmin


    [MaryFenelon said:]

    You should not be seeing randomness when running the exact same model in the exact same computing environment, unless you are using one of our parallel algorithms in what we call opportunistic mode.  You will get opportunistic parallel mode if you set the number of threads to a number larger than one and do not set the parallel mode.  To get the deterministic parallel mode, set the parallel mode parameter to the value representing deterministic and also set the thread parameter.  The choice of parallel mode was introduced in CPLEX 11.

    It is expected that you will see different paths when you have changed your program, model or computing environment.  One of the reasons is that we use floating point arithmetic which has limited precision; this leads to different tie breaking in many of the CPLEX algorithms.  The order of the variables and constraints also dictates some of the tie breaking and so you can see different paths when you generate/write/read/solve a MPS file versus generate/write/read/solve an LP file.  In the LP format, the variables will be added in the order in which they appear in the constraints, which is probably different than the order of original creation.  You can look at the CPLEX FAQ entitled "I made a few small changes to my integer program..."
    for some more comments on this topic. 


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Disable randomness for problem solving

    Posted Mon February 09, 2009 07:20 PM

    Originally posted by: SystemAdmin


    [prubin said:]

    At the Washington D.C. INFORMS meeting last October, someone from ILOG (I forget whom) presented a paper on efforts to squeeze the randomness out of CPLEX (i.e., make results more replicable).  I don't recall the details, and I might be wrong, but I did not come away the impression that all the randomness was gone from CPLEX 11.  It might be that all the within-platform randomness has been resolved, though.  As I say, I can't be sure -- I sat through a lot of sessions, and apparently my supply of coffee was insufficient.
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Disable randomness for problem solving

    Posted Sat March 14, 2009 07:46 PM

    Originally posted by: SystemAdmin


    [prubin said:]

    It finally came back to me -- I think it was Emilie Danna (?) who gave the paper on randomness (or lack of reproducibility) at INFORMS.
    #CPLEXOptimizers
    #DecisionOptimization