Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Populate output question

    Posted 11/19/18 11:46 AM

    Hi,

    I have a question about the output generated by populate. I've attached the log from an interactive optimizer session in which I set the pool capacity to 5, the replacement strategy to 1, and the intensity to 4, then called populate twice. (The problem is a basic binary knapsack, maximizing the objective.) After phase II of the first call, the worst objective value was 6846 (solution "p5"). I displayed the values of the variables for that solution. After phase II of the second call, the log says the following:

    Solution pool: 5 solutions saved (228 replaced).

    The worst objective remains 8646, still solution "p5", and "p5" is unchanged. So what does the "228 replaced" mean? I initially interpreted it as saying that there had been 228 updates to the pool, but apparently nothing in the pool changed. (In a different run, I in fact concerned that none of the other four solutions had changed either, although with replacement strategy 1 it should be the worst solution that gets updated first.)

    Thanks,

    Paul

     

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Populate output question

    Posted 11/21/18 06:10 AM

    Originally posted by: RWunderling


    "replaced" is maybe a bit of a misnomer.  What it really means is the following:  A total of 5 + 228  solutions have been attempted to be added to the solution pool, but only 5 have been kept (due to the capacity limit).  All others have been discarded again.  In your example, this means that the 228 additional solutions you added all had an objective value of 6846 or worse and thus did not replace a solution already in the pool.


    Roland


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Populate output question

    Posted 11/21/18 10:08 AM

    Thanks, Roland. Perhaps in some future release "replaced" could be, um, replaced by something like "identified" or "evaluated"?

    Paul


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Populate output question

    Posted 11/26/18 03:00 AM

    I filed a user wish for that. In case you want to increase the pressure for eventually implementing this, you can also file a request for enhancement here.


    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: Populate output question

    Posted 11/26/18 10:25 AM

    Thanks Daniel! I just submitted an enhancement request. Interestingly, I only see the "replaced" output when running populate in the interactive optimizer. I just tested using the Java API, and the output from populate was less verbose (and did not reference the number of solutions "replaced").


    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: Populate output question

    Posted 11/26/18 11:46 AM

    The final output like

    Solution pool: XX solutions saved (YY replaced)

    is specific to the interactive optimizer. The code that emits this line is not part of the CPLEX library. So it is expected (but not nice) that you see this difference.


    #CPLEXOptimizers
    #DecisionOptimization