Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
Expand all | Collapse all

Fixings happening at the current node

  • 1.  Fixings happening at the current node

    Posted 12/06/16 11:16 AM

    Originally posted by: Ccl_


    Hi,

     

    Sorry if this question has already been answered, but I did not find the answer in the documentation or on this forum.

     

    I am using C++/Cplex 12.6.1 and I am implementing a Branch & Cut algorithm, using a BranchCallback and a UserCutCallback.

    In order to generate my cuts, I need to know which variables are fixed at each node.

    I know I can get this information from getUB and getLB. However in order to improve my separation algorithm, I would also need to know which are the fixings that happened at the current node.

    I am not talking about the variable that has been branched on at the current node, because I can get it from the nodeData. 

    What I need actually is to know the variables which have been fixed at the current node, for example from logical deduction procedures.

    Is there any way to get this information directly?

    I could use the upper and lower bounds of the current node's father to obtain this, but it would probably be less efficient.

     

    Many thanks in advance!


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Fixings happening at the current node

    Posted 12/09/16 03:14 AM

    Sorry, the CPLEX engine does not keep track of which variables were fixed at the current node. So it cannot give you that information. Your best option is indeed to compare the bounds of the father and the child. When querying multiple bounds at the same time, you should prefer calling getLBs() and getUBs() over calling getLB() and getUB() in a loop. The former is more efficient.


    #CPLEXOptimizers
    #DecisionOptimization