Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Branch callback variable bounds inconsistency

    Posted 05/18/15 11:53 PM

    Originally posted by: oozaltin


    Hi,

    I implemented a branch callback where I set the lower bound of a binary variable to 1 in one of the branches in the second level of the search tree. However, when I print the upper bound of that variable at every node I observe that in one child of that branch in the third level it is zero !! , and in the other child the upper bound is one.

    I use the CPXbranchcallbackbranchbds function of CPLEX Enterprise edition V 12.6, and I set


        status = CPXsetintparam (env, CPX_PARAM_MIPCBREDLP, CPX_OFF);
        status = CPXsetintparam (env, CPX_PARAM_REDUCE, 1);
        status = CPXsetintparam (env, CPX_PARAM_PRELINEAR, 0);

    I get the bounds at a node in the branch callback using

        status = CPXgetcallbacknodeub(env, cbdata, wherefrom, &ubtree.front(), 0 , NCol-1);
        status = CPXgetcallbacknodelb(env, cbdata, wherefrom, &lbtree.front(), 0 , NCol-1);

    Can someone explain why this might be happening? I can share the source code if needed. It is just a single file and very easy to compile and run.

    Thanks

    Osman


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Branch callback variable bounds inconsistency

    Posted 05/26/15 01:44 AM

    Are you sure you are looking at a descendant of the node at which you fixed the lower bound to 1? CPLEX may jump around in the tree and that may confuse your output?

    Could you post the code for your callbacks here? That may help to explain what is happening.


    #CPLEXOptimizers
    #DecisionOptimization