CPXXbranchcallbackbranchbds and CPXbranchcallbackbranchbds
The routine CPXXbranchcallbackbranchbds/CPXbranchcallbackbranchbds specifies the
branches to be taken from the current node.
int CPXXbranchcallbackbranchbds( CPXCENVptr env, void * cbdata, int wherefrom, CPXDIM cnt, CPXDIM const * indices, char const * lu, double const * bd, double nodeest, void * userhandle, CPXCNT * seqnum_p )
int CPXbranchcallbackbranchbds( CPXCENVptr env, void * cbdata, int wherefrom, int cnt, int const * indices, char const * lu, double const * bd, double nodeest, void * userhandle, int * seqnum_p )
Description
This is an advanced routine. Advanced routines typically demand a thorough understanding of the algorithms used by CPLEX. Thus they incur a higher risk of incorrect behavior in your application, behavior that can be difficult to debug. Therefore, the team encourages you to consider carefully whether you can accomplish the same task by means of other Callable Library routines instead.
The routine CPXXbranchcallbackbranchbds/CPXbranchcallbackbranchbds specifies the
branches to be taken from the current node. It can be called only from
within a user-written branch callback function.
Branch variables are in terms of the original problem if the
MIP callback switch between original model and reduced, presolved model
(CPXPARAM_MIP_Strategy_CallbackReducedLP)
is set to CPX_OFF before the
call to CPXXmipopt/CPXmipopt that calls the callback. Otherwise, branch
variables are in terms of the presolved problem.
Arguments
- env
-
A pointer to the CPLEX environment, as returned by
CPXXopenCPLEX/CPXopenCPLEX. - cbdata
-
A pointer passed to the user-written callback. This argument must be the value of
cbdatapassed to the user-written callback. - wherefrom
-
An integer value that reports where the user-written callback was called from. This argument must be the value of
wherefrompassed to the user-written callback. - cnt
-
An integer. The integer specifies the number of bound changes that are specified in the arrays
indices,lu, andbd. - indices
-
An array. Together with
luandbd, this array defines the bound changes for the branch. The entryindices[i]is the index for the variable. - lu
-
An array. Together with
indicesandbd, this array defines the bound changes for each of the created nodes. The entrylu[i]is one of the three possible values specifying which bound to change:Lfor lower bound,Ufor upper bound, orBfor both bounds. - bd
-
An array. Together with
indicesandlu, this array defines the bound changes for each of the created nodes. The entrybd[i]specifies the new value of the bound. - nodeest
-
A double that specifies the value of the node estimate for the node to be created with this branch. The node estimate is used to select nodes from the branch-and-cut tree with certain values of the parameter to control
MIP node selection strategy
(
CPXPARAM_MIP_Strategy_NodeSelect). - userhandle
-
A pointer to user private data that should be associated with the node created by this branch. Can be
NULL. - seqnum_p
- A pointer to an integer. On return, that integer will contain the sequence number that CPLEX has assigned to the node created from this branch. The sequence number may be used to select this node in later calls to the node callback.