CPXXbranchcallbackbranchasCPLEX 和 CPXbranchcallbackbranchasCPLEX
例程 "CPXXbranchcallbackbranchasCPLEX/CPXbranchcallbackbranchasCPLEX完成两项任务。
int CPXXbranchcallbackbranchasCPLEX( CPXCENVptr 环境, void * cbdata, int 由此, int 木, void * 用户手柄, CPXCNT * 序列号_p )
int CPXbranchcallbackbranchasCPLEX( CPXCENVptr 环境, void * cbdata, int 由此, int 木, void * 用户手柄, int * 序列号_p )
描述
警告:
这是高级例程。 高级例程通常需要深入了解 CPLEX 所使用的算法。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 所以,本团队鼓励您认真考虑您是否可以改为通过其他 Callable Library 例程来完成同一任务。
例程 "CPXXbranchcallbackbranchasCPLEX/CPXbranchcallbackbranchasCPLEX完成两项任务。 首先,它规定从当前节点出发的分支必须与 CPLEX 选择的第 i 个分支相同。 其次,它会同时将用户数据对象 "userhandle附加到新节点上。 该例程只能在用户编写的分支回调函数中调用。
有关用户编写的分支回调函数参数(如 "nodecnt参数)的详细信息,请参阅 "CPXXsetbranchcallbackfunc/CPXsetbranchcallbackfunc的文档。
参数
- env
- 一个指向
CPXXopenCPLEX/CPXopenCPLEX所返回 CPLEX 环境的指针。 - cbdata
- 传递到用户编写的回调的指针。 此自变量必须是传递给用户编写回调的
cbdata的值。 - wherefrom
- 一个整数值,其报告从何处调用了用户编写的回调。 此自变量必须是传递给用户编写回调的
wherefrom的值。 - 编号
- 整数,指定要创建的分支。 通常,0(零)小于或等于 "
num,而 "num严格小于 "nodecnt,后者是用户编写的回调函数的参数。 CPLEX 创建的第一个分支通常用 0(零)表示,第二个分支用 1(一)表示。 - userhandle
- 指向用户私有数据(这些数据应该与此分支创建的节点相关联)的指针。 可为
NULL。 - seqnum_p
- 指向一个整数的指针。 返回时,该整数包含 CPLEX 分配给该分支创建的节点的序列号。 您可以在以后调用节点回调时使用该序列号来选择该节点。