Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  normalization

    Posted 01/29/18 07:37 PM

    Originally posted by: LeandroCC


    Hello,

     

    Back in CPLEX 12.3 we have hit a bug and the suggestion was to work around it using the following piece of code before adding a cut in a callback  (assuming that the cut is in an IloRange instance called 'cut'):

          IloRange cut = ...;
          // Explicitly normalize expression to work around bug in CPLEX 12.3.
          IloExpr e = cut.getExpr();
          e.normalize();
          cut.setExpr(e);
          e.end();
          add(cut);

     

    This was needed in the first place because our cuts do not guarantee that each variable appears only once.

    It worked fine until CPLEX 12.7.1 and we never changed it. Compiling with 12.8 and running it cause the program to stall when calling e.normalize().

     

    Any words of advice?

    Thanks!


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: normalization

    Posted 01/30/18 02:37 AM

    I cannot reproduce your problem here (and we fixed a bug showing exactly this symptom for 12.8). Two things

    1. Can you share an example code that triggers this problem (if you don't want to post here you can send to daniel(dot)junglas(at)de(dot)ibm(dot)com).
    2. Instead of calling e.normalize() can you please try to normalize with the function described in https://www.ibm.com/developerworks/community/forums/html/topic?id=cc2c4347-4ed5-4686-af48-c95d192171b1 (note that with this function normalization is not inplace but a normalized expression is created).

    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: normalization

    Posted 01/30/18 03:38 AM

    Never mind 1, I managed to reproduce here. From what I can tell from a first analysis, the code in 2 should do the trick.


    #CPLEXOptimizers
    #DecisionOptimization