Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  How to limit cut generation to root node only?

    Posted 12/04/14 02:50 PM

    Originally posted by: rocarvaj


    Hello!

    I'm wondering if there is a way of limit cut generation to the root node only. I know that cutting planes are mostly used at the root, but CPLEX can still generate cut at other nodes.

    I've looked at CPLEX parameters but I think none of the does the job.

    Thanks in advance,

    Rodolfo


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: How to limit cut generation to root node only?

    Posted 12/07/14 11:09 PM

    Originally posted by: AnirudhSubramanyam


    Implement a cut callback function which does the following:

    1. Query depth of node using CPXXgetcallbacknodeinfo() with whichinfo = CPX_CALLBACK_INFO_NODE_DEPTH in the C API.

    2. If depth =0, let CPLEX take it's default action using *useraction_p = CPX_CALLBACK_DEFAULT.. Else, abort cut loop using *useraction_p = CPX_CALLBACK_ABORT_CUT_LOOP and proceed to branching.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: How to limit cut generation to root node only?

    Posted 12/09/14 12:55 PM

    Originally posted by: rocarvaj


    Thanks! Great and simple answer. I guess there's no lazy way of doing this... gotta use callbacks.

    Rodolfo


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: How to limit cut generation to root node only?

    Posted 12/12/14 04:10 AM

    A way to do this without callbacks is the following:

    1. Set the node limit to 1 and call solve(). This will process the root node with default cut settings (or whatever cut settings you specified).
    2. Clear the node limit and disable all cuts. Then call solve() again. This should proceed right where the previous step left off (right after the root node) and should not try to separate any cuts anymore.

    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: How to limit cut generation to root node only?

    Posted 12/12/14 01:59 PM

    Originally posted by: rocarvaj


    Thanks a lot, Daniel!

    Any thoughts on what is the difference between these two approaches in terms of performance? I'm thinking that implementing a callback (against not having one) is always detrimental in performance...?

    Thanks!

    Rodolfo


    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: How to limit cut generation to root node only?

    Posted 01/06/15 03:53 AM

    Sorry, I cannot predict the performance impact of the two approaches.

    Using a control callback disables dynamic search and in many cases this hurts performance. On the other hand, the things you do in a control callback are usually supposed to speed up the search. So whether a callback slows down things or not really depends on your problem type, problem instance and what your callback is actually doing.


    #CPLEXOptimizers
    #DecisionOptimization