Decision Optimization

Decision Optimization

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

 View Only
  • 1.  possible bug in ILOUSERCUTCALLBACK Cplex 12.3 (works fine in 12.2.0.2)

    Posted Thu December 15, 2011 06:43 PM

    Originally posted by: LeandroCC


    I have a model in which I use a cut callback. After several days of debugging, I decided to switch back to 12.2.0.2 and it worked. Same code running in 12.3 misses something and gives me solutions that are "better" than the optimal.

    I cannot disclose the code in the forum but I'd be happy to talk to (and possibly share it with) the developers of Cplex/Concert.
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: possible bug in ILOUSERCUTCALLBACK Cplex 12.3 (works fine in 12.2.0.2)

    Posted Mon December 19, 2011 03:52 AM

    Originally posted by: SystemAdmin


    Hm, that is a very vague description of your problem.
    Note that there were significant changes to cut callbacks and lazy constraint callbacks between CPLEX 12.2 and CPLEX 12.3. In CPLEX 12.2 the two callbacks where essentially the same. In CPLEX 12.3 they are now two very different things (further details can be found in the release notes).
    Is your callback generating cuts or lazy constraints? Does the 12.3 variant work if you replace ILOUSERCUTCALLBACK by ILOLAZYCONSTRAINTCALLBACK?
    Could you double-check your code with respect to the changes mentioned in the release nodes and see if that sheds any light on your problem? If that does not solve your problem you can contact me at daniel(dot)junglas(at)de(dot)ibm(dot)com and we can discuss your problem.
    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: possible bug in ILOUSERCUTCALLBACK Cplex 12.3 (works fine in 12.2.0.2)

    Posted Mon December 19, 2011 07:47 AM

    Originally posted by: LeandroCC


    Sorry for the lack of details. The problem remains after your suggestion and after reading the page you recommended (and trying to change something).

    I have emailed you so we can discuss it further.
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: possible bug in ILOUSERCUTCALLBACK Cplex 12.3 (works fine in 12.2.0.2)

    Posted Wed December 21, 2011 11:38 AM

    Originally posted by: SystemAdmin


    It turned out that this is a bug in CPLEX 12.3 that messes up cuts that contain a variable in more than one term. To work around the problem explicitly normalize the cut before adding it:
    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);
    

    #CPLEXOptimizers
    #DecisionOptimization