CPXXbranchcallbackbranchbdsCPXbranchcallbackbranchbds

例程 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
一个整数。 该整数指定在数组 indiceslubd 中指定的边界更改次数。
indices
一个数组。 此数组与 lubd 一起定义分支的边界更改。 条目 indices[i] 是变量的索引。
lu
一个数组。 此数组与 indicesbd 一起定义每个所创建节点的边界更改。 条目 "lu[i]是三个可能值之一,指定要更改的边界:"L表示下边界,"U表示上边界,或 "B表示两个边界。
bd
一个数组。 此数组与 indiceslu 一起定义每个所创建节点的边界更改。 条目 bd[i] 指定边界的新值。
nodeest
一个双精度值,指定要通过此分支创建的节点的节点估算值。 节点估计值用于从分支-切割树中选择节点,其特定参数值用于控制MIP 节点选择策略CPXPARAM_MIP_Strategy_NodeSelect)。
userhandle
指向用户私有数据(这些数据应该与此分支创建的节点相关联)的指针。 可为 NULL
seqnum_p
指向一个整数的指针。 在返回时,该整数将包含 CPLEX 已分配给从此分支创建的节点的序号。 此序号可用于在以后对节点回调的调用中选择此节点。

返回

如果此例程成功,那么会返回 0,而如果发生错误,那么会返回非零。