CPXXgetcallbacklpCPXgetcallbacklp

例程 CPXXgetcallbacklp/CPXgetcallbacklp 用于检索一个指针,该指针指向调用用户编写回调函数时使用的 MIP 问题。

int  CPXXgetcallbacklp( CPXCENVptr 环境, void * cbdata, int 由此, CPXCLPptr * lp_p )

int  CPXgetcallbacklp( CPXCENVptr 环境, void * cbdata, int 由此, CPXCLPptr * lp_p )

描述

警告:

这是高级例程。 高级例程通常需要深入了解 CPLEX 所使用的算法。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 所以,本团队鼓励您认真考虑您是否可以改为通过其他 Callable Library 例程来完成同一任务。

例程 CPXXgetcallbacklp/CPXgetcallbacklp 用于检索一个指针,该指针指向调用用户编写回调函数时使用的 MIP 问题。 如果 "在原始模型和缩小的预分解模型之间进行 MIP 回调切换CPXPARAM_MIP_Strategy_CallbackReducedLP)设置为 "CPX_OFF,则为原始 MIP;否则为预解 MIP。 要获取与此 MIP 相关联的节点 LP 的相关信息,请使用以下例程:

如果MIP 回调在原始模型和缩小的预分解模型之间的切换CPXPARAM_MIP_Strategy_CallbackReducedLP)被关闭(即设置为 "CPX_OFF),则每个例程都将返回与原始 MIP 相关的节点信息;否则,它们将返回与预分解 MIP 相关的信息。

对比之下,函数 CPXXgetcallbacknodelp/CPXgetcallbacknodelp 将返回指向节点子问题(这是一个 LP)的指针。 请注意,在原始模型和缩小的预分解模型之间切换 MIP 回调的设置(CPXPARAM_MIP_Strategy_CallbackReducedLP)不会影响 "lp指针。 因为 CPLEX 不会显式维护未预求解的节点 LP,所以 lp 指针将对应于预求解节点 LP,除非 CPLEX 预求解已关闭,或者 CPLEX 完全未进行任何预求解缩减。 通常,此指针只能在 CPLEX Callable Library 查询例程(例如 CPXXsolution/CPXsolutionCPXXgetrows/CPXgetrows)中使用。

可以从任何 MIP 回调中调用例程 CPXXgetcallbacklp/CPXgetcallbacklp

参数

env
一个指向 CPXXopenCPLEX/CPXopenCPLEX 所返回 CPLEX 环境的指针。
cbdata
传递给用户编写回调的指针。 此自变量必须是传递给用户编写回调的 cbdata 的值。
wherefrom
一个整数值,用于报告从何处调用用户编写的回调。 此自变量必须是传递给用户编写回调的 wherefrom 的值。
lp_p
一个指向类型为 CPXLPptr 的变量的指针,该变量接收指向 LP 问题对象(这是一个 MIP)的指针。

返回

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

示例


 status = CPXgetcallbacklp (env, cbdata, wherefrom, &origlp);

另请参阅标准分发版中的 admipex1.cadmipex2.cadmipex3.c