CPXXbranchcallbackbranchconstraints 和 CPXbranchcallbackbranchconstraints
通过向节点问题添加一个或多个约束来指定分支时,例程 CPXXbranchcallbackbranchconstraints/CPXbranchcallbackbranchconstraints 指定要从当前节点产生的分支。
int CPXXbranchcallbackbranchconstraints( CPXCENVptr 环境, void * cbdata, int 由此, CPXDIM rcnt, CPXNNZ nzcnt, double const * 根部, char const * 感觉到, CPXNNZ const * rmatbeg, CPXDIM const * rmatind, double const * rmatval, double 节点, void * 用户手柄, CPXCNT * 序列号_p )
int CPXbranchcallbackbranchconstraints( CPXCENVptr 环境, void * cbdata, int 由此, int rcnt, int nzcnt, double const * 根部, char const * 感觉到, int const * rmatbeg, int const * rmatind, double const * rmatval, double 节点, void * 用户手柄, int * 序列号_p )
描述
这是高级例程。 高级例程通常需要深入了解 CPLEX 所使用的算法。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 所以,本团队鼓励您认真考虑您是否可以改为通过其他 Callable Library 例程来完成同一任务。
通过向节点问题添加一个或多个约束来指定分支时,例程 CPXXbranchcallbackbranchconstraints/CPXbranchcallbackbranchconstraints 指定要从当前节点产生的分支。 只能从用户编写的分支回调函数内对其进行调用。
如果在调用回调的 "CPXXmipopt/CPXmipopt之前将 "在原始模型和缩小的预分解模型之间进行 MIP 回调切换(CPXPARAM_MIP_Strategy_CallbackReducedLP)设置为 "CPX_OFF,则约束条件与原始问题相同。 否则,约束与已预求解问题有关。
| L | 小于或等于约束 |
| E | 等于约束 |
| G | 大于或等于约束 |
参数
- env
- 一个指向
CPXXopenCPLEX/CPXopenCPLEX所返回 CPLEX 环境的指针。 - cbdata
- 传递到用户编写的回调的指针。 此自变量必须是传递给用户编写回调的
cbdata的值。 - wherefrom
- 一个整数值,其报告从何处调用了用户编写的回调。 此自变量必须是传递给用户编写回调的
wherefrom的值。 - rcnt
- 一个整数,其指定分支的约束数。
- nzcnt
- 一个整数,指定分支的非零约束系数的数量。 这指定数组
rmatind和rmatval的长度。 - rhs
- 长度为
rcnt的数组,其中包含分支的每个约束的右侧项。 - sense
- 长度为
rcnt的数组,其中包含要为分支添加的每个约束的含义。 含义的值显示在“表 1”中。 - rmatbeg
- 与
rmatind和rmatval一起定义分支约束的数组。 - rmatind
- 与
rmatbeg和rmatval一起定义分支约束的数组。 - rmatval
- 与
rmatbeg和rmatind一起定义分支约束的数组。 格式类似于例程CPXXaddrows/CPXaddrows中用于描述约束矩阵的格式。 每一行都必须存储在此数组的顺序位置中,从位置rmatbeg[i]到rmatbeg[i+1]-1(或者从rmatbeg[i]到nzcnt-1,如果i=rcnt-1)。 每个条目rmatind[i]均指定对应系数rmatval[i]的列索引。 所有行都必须邻接,并且rmatbeg[0]必须为0。 - nodeest
- 一个双精度值,指定要通过此分支创建的节点的节点估算值。 节点估计值用于从分支-切割树中选择节点,其特定参数值用于控制MIP 节点选择策略(
CPXPARAM_MIP_Strategy_NodeSelect)。 - userhandle
- 指向用户私有数据(这些数据应该与此分支创建的节点相关联)的指针。 可为
NULL。 - seqnum_p
- 指向一个整数的指针,该整数在返回时将包含 CPLEX 已分配给从此分支创建的节点的序号。 此序号可用于在以后对节点回调的调用中选择此节点。