Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  CPXgetcallbacknodelb documentation

    Posted 01/02/20 10:40 AM

    Originally posted by: UserCplex


    Hello,

    I intend to query the current bounds on variables in a node of the MIP tree and use these bounds to generate cuts that are locally valid in a usercut callback and a lazy cut callback -- valid at the current node and all children nodes that descend from this node.

    The documentation for this function states: "The lower bounds are tightened after a new incumbent is found, so the values returned by CPXXgetcallbacknodex/CPXgetcallbacknodex may violate these bounds at nodes where new incumbents have been found."

    https://www.ibm.com/support/knowledgecenter/SSSA5P_12.7.1/ilog.odms.cplex.help/refcallablelibrary/mipapi/getcallbacknodelb.html

    What exactly does this mean? If a new incumbent is found at the current node, then the current node is fathomed.

    So, my specific questions are:

    (1)What does it mean to say that the lower bounds are tightened? Variable lower bounds obtained via CPXgetcallbacknodelb are anyway only valid at the current node and children of the current node. So, if the current node is fathomed, the CPXgetcallbacknodelb information is anyway useless in the tree subsequently.

    (2)Why would getcallbacknodex have to violate the bounds? Is it because some heuristic could run at that node which is not guaranteed to respect branching decisions made in the tree thus far to reach the node in question?

    Thanks.


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: CPXgetcallbacknodelb documentation

    Posted 01/02/20 11:32 AM

    I do not believe it is necessarily true that the current node is fathomed when a new incumbent is found there. If the new incumbent is the solution to the node relaxation, then the node is fathomed; but if the new incumbent is found by a heuristic, the node remains alive. In that case, what amounts to presolver logic (I think) potentially allows CPLEX to tighten some bounds.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: CPXgetcallbacknodelb documentation

    Posted 01/05/20 04:13 AM

    Originally posted by: UserCplex


    Yes, you are right that availability of a new incumbent does not mean that the node is fathomed. Still, I am curious as to what could cause the bounds obtained by CPXgetcallbacknodelb to change within the same node. In my application, it is important for correctness to have the guarantee that the bounds returned by this callback function remain valid at that node and nodes that are its children for the node LP relaxations.

    Thanks.


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: CPXgetcallbacknodelb documentation

    Posted 01/08/20 03:36 AM

    The bounds may change for example due to reduced cost fixing: If a new incumbent is found then reduced cost fixing with the new objective value may allow CPLEX to tighten some bounds. These tightenings are ven globally valid but of course also appear in the local bounds. The bounds returned getcallbacknodelb() and getcallbacknodeub() will always be valid for the current node and all its children: a child node always inherits all bound changes from its parent.

    And indeed, an incumbent found at a node may violate the node's local bounds if it comes from a heuristic.


    #CPLEXOptimizers
    #DecisionOptimization