CPXXgetcallbacknodeub 和 CPXgetcallbacknodeub
例程 CPXXgetcallbacknodeub/CPXgetcallbacknodeub
用于在 MIP 优化期间从用户编写的回调检索子问题当前节点的上限值。
int CPXXgetcallbacknodeub( CPXCENVptr 环境, void * cbdata, int 由此, double * ub, CPXDIM 兴办, CPXDIM 最后 )
int CPXgetcallbacknodeub( CPXCENVptr 环境, void * cbdata, int 由此, double * ub, int 兴办, int 最后 )
描述
警告:
这是高级例程。 高级例程通常需要深入了解 CPLEX 所使用的算法。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 所以,本团队鼓励您认真考虑您是否可以改为通过其他 Callable Library 例程来完成同一任务。
例程 CPXXgetcallbacknodeub/CPXgetcallbacknodeub
用于在 MIP 优化期间从用户编写的回调检索子问题当前节点的上限值。 上限会在找到新现任解之后收紧,因此
CPXXgetcallbacknodex/CPXgetcallbacknodex
所返回的值可能会在找到新现任解的节点处违反这些界限。 如果MIP 回调在原始模型和简化的预解决模型之间的切换(CPXPARAM_MIP_Strategy_CallbackReducedLP)设置为 "CPX_OFF,则这些值来自原始问题;否则,这些值来自预解决的问题。
可以使用 wherefrom 的任何值(CPX_CALLBACK_MIP_DELETENODE 除外)调用此例程。
参数
- env
- 一个指向
CPXXopenCPLEX/CPXopenCPLEX所返回 CPLEX 环境的指针。 - cbdata
- 传递给用户编写回调的指针。 此自变量必须是传递给用户编写回调的
cbdata的值。 - wherefrom
- 一个整数值,用于报告从何处调用用户编写的回调。 此自变量必须是传递给用户编写回调的
wherefrom的值。 请勿以wherefrom==CPX_CALLBACK_MIP_DELETENODE来调用此例程。 - ub
- 一个数组,用于接收上限值。 该数组的长度必须至少为 (
end-begin+1)。如果成功,"ub[0]到 "ub[end-begin]包含当前子问题的上限值。 - 开始
- 一个整数,用于指定要返回的上限值范围的开始。
- 结束
- 一个整数,用于指定要返回的上限值范围的结束。
返回
如果此例程成功,那么会返回 0,而如果发生错误,那么会返回非零。示例
status = CPXgetcallbacknodeub (env, cbdata, wherefrom,
ub, 0, cols-1);