Decision Optimization

Decision Optimization

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

 View Only
Expand all | Collapse all

catching heuristic solution in cut or lazy callback

  • 1.  catching heuristic solution in cut or lazy callback

    Posted Sat February 13, 2016 10:19 AM

    Originally posted by: Falcon_G


    Hi everybody

     

    I have a branch-and-cut where in I separate cuts several cuts. The polytope description is not complete (some of the cuts are added in the lazy constraints callback).

    for none of the solutions reported by the heuristic (with * besides) the cutcallback or lazycallback are not invoked. Therefore, some of the incumbents are feasible solutions when taking into account the cuts that are must be separated in the lazyconstraints callback. Even the optimal solution is not  feasible in such cases.

     

    The only thing I can imagine is that I try to reject the proposed incumbent, separate the cuts in the incumbent callback and add them via lazy constraints callback or cutcallback.

    is there any intelligent way to do it in a more straightforward way?

     

    Thanks a lot in advance.

     

    *    38     5      integral     0   468940.0000   463436.5517     3882    1.17%
         38     4   468940.0000     0   468940.0000   463436.5517     3882    1.17%       z(18)(10) N     38     37     21
    Elapsed time = 130.95 sec. (3493.16 ticks, tree = 0.01 MB, solutions = 2)
    incumbent written
    *    45     5      integral     0   466910.0000   464006.0000     4613    0.62%

    Zero-half cuts applied:  12
    Lift and project cuts applied:  4
    Gomory fractional cuts applied:  6
    User cuts applied:  122

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: catching heuristic solution in cut or lazy callback

    Posted Mon February 15, 2016 09:53 AM

    The '*' in the log indicates that the solution was found from an integral node, not from a heuristic.

    But anyway, it is a bug in CPLEX if the lazy constraint callback is not invoked for such a solution. You should get a chance to cut off that solution.

    What version of CPLEX do you use?

    The workaround with incumbent+lazy callback is the best thing you can do, I think.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: catching heuristic solution in cut or lazy callback

    Posted Tue February 16, 2016 08:53 AM

    Originally posted by: Falcon_G


    Thank you.

    I use 12.6.2 64Bit

     

    best


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: catching heuristic solution in cut or lazy callback

    Posted Fri February 19, 2016 01:55 AM

    There used to be a bug that showed exactly this symptom but this bug is fixed in your version.

    I carefully looked at the source code but found nothing that would explain the behavior you observe. Do you have an example code that you could provide here or to daniel(dot)junglas(at)de(dot)ibm(dot)com? I would like to get to the bottom of that.


    #CPLEXOptimizers
    #DecisionOptimization