CPXXbranchcallbackbranchasCPLEXCPXbranchcallbackbranchasCPLEX

例程 "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 分配给该分支创建的节点的序列号。 您可以在以后调用节点回调时使用该序列号来选择该节点。

返回

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