CPXXbranchcallbackbranchbds 和 CPXbranchcallbackbranchbds
例程 CPXXbranchcallbackbranchbds/CPXbranchcallbackbranchbds 指定要从当前节点产生的分支。
int CPXXbranchcallbackbranchbds( CPXCENVptr 环境, void * cbdata, int 由此, CPXDIM ct, CPXDIM const * 指數, char const * 陆, double const * bd, double 节点, void * 用户手柄, CPXCNT * 序列号_p )
int CPXbranchcallbackbranchbds( CPXCENVptr 环境, void * cbdata, int 由此, int ct, int const * 指數, char const * 陆, double const * bd, double 节点, void * 用户手柄, int * 序列号_p )
描述
这是高级例程。 高级例程通常需要深入了解 CPLEX 所使用的算法。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 所以,本团队鼓励您认真考虑您是否可以改为通过其他 Callable Library 例程来完成同一任务。
例程 CPXXbranchcallbackbranchbds/CPXbranchcallbackbranchbds 指定要从当前节点产生的分支。 只能从用户编写的分支回调函数内对其进行调用。
如果在调用回调的 "CPXXmipopt/CPXmipopt之前将 "在原始模型和缩小的预分解模型之间进行 MIP 回调切换(CPXPARAM_MIP_Strategy_CallbackReducedLP)设置为 "CPX_OFF,则分支变量与原始问题相关。 否则,分支变量与预求解的问题相关。
参数
- env
- 一个指向
CPXXopenCPLEX/CPXopenCPLEX所返回 CPLEX 环境的指针。 - cbdata
- 传递到用户编写的回调的指针。 此自变量必须是传递给用户编写回调的
cbdata的值。 - wherefrom
- 一个整数值,其报告从何处调用了用户编写的回调。 此自变量必须是传递给用户编写回调的
wherefrom的值。 - cnt
- 一个整数。 该整数指定在数组
indices、lu和bd中指定的边界更改次数。 - indices
- 一个数组。 此数组与
lu和bd一起定义分支的边界更改。 条目indices[i]是变量的索引。 - lu
- 一个数组。 此数组与
indices和bd一起定义每个所创建节点的边界更改。 条目 "lu[i]是三个可能值之一,指定要更改的边界:"L表示下边界,"U表示上边界,或 "B表示两个边界。 - bd
- 一个数组。 此数组与
indices和lu一起定义每个所创建节点的边界更改。 条目bd[i]指定边界的新值。 - nodeest
- 一个双精度值,指定要通过此分支创建的节点的节点估算值。 节点估计值用于从分支-切割树中选择节点,其特定参数值用于控制MIP 节点选择策略(
CPXPARAM_MIP_Strategy_NodeSelect)。 - userhandle
- 指向用户私有数据(这些数据应该与此分支创建的节点相关联)的指针。 可为
NULL。 - seqnum_p
- 指向一个整数的指针。 在返回时,该整数将包含 CPLEX 已分配给从此分支创建的节点的序号。 此序号可用于在以后对节点回调的调用中选择此节点。