Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  skipping CutCallback

    Posted 07/17/12 04:43 PM

    Originally posted by: MichaelPoss


    Dear All,

    I'm using Cplex 12.4 with JAVA 64 bits on a computer with windows.
    My code has two cut callbacks implemented : LazyConstraint and UserCut.

    How comes cplex can call the LazyConstraintCallback, add 4 (violated) cuts and then switch directly to the branching phase ?
    Shouldn'it go first to the UserCutCallback ?

    Best,

    Michael.
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: skipping CutCallback

    Posted 07/18/12 04:10 AM

    Originally posted by: SystemAdmin


    Are you saying that the UserCutCallback is never invoked before CPLEX does the first branching? This should not happen unless you disabled cuts.
    Did you change any parameters from their default settings?
    Could you show us the log file output for your problem?
    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: skipping CutCallback

    Posted 07/18/12 09:13 AM

    Originally posted by: MichaelPoss


    This is what I am saying, and I do not disable cuts.
    Here comes the output:

    Warning: Control callbacks may disable some MIP features.
    Clique table members: 188.
    MIP emphasis: balance optimality and feasibility.
    MIP search method: traditional branch-and-cut.
    Parallel mode: none, using 1 thread.
    Root relaxation solution time = 0.00 sec.
    Entering LazyCutCB
    Adding 4 cuts
    Entering LazyCutCB
    Adding 4 cuts

    Nodes Cuts/
    Node Left Objective IInf Best Integer Best Bound ItCnt Gap Variable B NodeID Parent Depth

    0 0 470.5000 14 400.0000 121
    Entering LazyCutCB
    Adding 4 cuts
    Entering branch CB
    0 2 506.0000 53 User: 4 135 0 0
    Elapsed real time = 0.47 sec. (tree size = 0.00 MB, solutions = 0)

    User cuts applied: 12

    Root node processing (before b&c):
    Real time = 0.31
    Sequential b&c:
    Real time = 0.16

    Total (root+branch&cut) = 0.47 sec.
    LP relaxation: 0.0
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: skipping CutCallback

    Posted 07/19/12 03:20 AM

    Originally posted by: SystemAdmin


    This is indeed unexpected. Could you attach a SAV file of your model here?
    I take it you already double checked that your callbacks derive from IloCplex.LazyConstraintCallback and IloCplex.UserCutCallback and both callbacks are added properly.
    Is the cut callback invoked at nodes in the search tree or is it not invoked at all?
    Is it possible that the root relaxation of your model is integral? In this case it would not make much sense to invoke the cut callback.
    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: skipping CutCallback

    Posted 07/19/12 08:50 AM

    Originally posted by: MichaelPoss


    I attach the SAV files at the root node and after cuts have been added.
    Notice that I set a limit of 0 nodes in the branch-and-bound tree.

    1) The cut callback is never invoked (notice that this is the only instance for which I observe thisbehavior, for the other instances every seems fine).

    2) The root seems integral so that the lazyconstraint callback is invoked. But this should not be the issue. As soon as the relaxation is not integral, the cut callback should be invoked before the branch callback, isn'it ?

    Best,

    Michael.
    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: skipping CutCallback

    Posted 07/24/12 09:30 AM

    Originally posted by: SystemAdmin


    I have not been able to reproduce the problem with your files.
    Could you print out the lazy constraints before you add them and then send me the full log output of your solve? This would allow me to add the lazy constraints in exactly the same order as you do. Maybe I can reproduce the issue then.
    #CPLEXOptimizers
    #DecisionOptimization