Decision Optimization

Decision Optimization

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

 View Only
Expand all | Collapse all

user branch callback - modifying bounds

  • 1.  user branch callback - modifying bounds

    Posted Mon June 15, 2009 02:22 AM

    Originally posted by: SystemAdmin


    [hernan said:]

    Hi,
    I'm writing a callback function for adjusting some variable (upper and lower) bounds. I've seen CPXbranchcallbackbranchbds and CPXbranchcallbackbranchgeneral in the reference, but I don't want to override mechanism that selects the next variable to processing, I want only change the bounds. Is there a other specific function for this? or can I get the necessary information that needs CPXbranchcallbackbranchbds for don't change the variable selection (in my case for example CPX_VARSEL_PSEUDOREDUCED)??
    Thanks!


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: user branch callback - modifying bounds

    Posted Thu June 18, 2009 03:42 AM

    Originally posted by: SystemAdmin


    [prubin said:]

    A few possibilities come to mind.  One is to use a cut callback and add the tightened bounds as cuts.  (I assume you will only be tightening bounds, not loosening them.)  This does have the drawback of expanding the size of the problem.  Another is to use a branch callback but only create a single child node, with variable bounds tightened as desired.  CPLEX is then free, when it visits the child node, to branch as desired.  (Whether it visits this node immediately depends, I think, on the node estimate you give, the value of PX_PARAM_NODESEL. what else is going on in the tree, whether you use a node callback, and possibly the alignment of the planets.)  A third is to use the information available to the branch callback function (arguments type, nodecnt etc.) to create arguments to CPXbranchcallbackbranchbds that do both what CPLEX planned to do and include your tightened bounds.

    /Paul
    #CPLEXOptimizers
    #DecisionOptimization