CPXXsetmipcallbackfuncCPXsetmipcallbackfunc

例程 CPXXsetmipcallbackfunc/CPXsetmipcallbackfunc 用于设置用户编写的回调例程,在混合整数程序优化期间和某些割平面生成例程期间,在分支裁剪法树中(包含根节点)将调用这些回调例程。

int  'CPXXsetmipcallbackfunc'('CPXENVptr' '环境',' 'int( 'CPXPUBLIC'*' '回调)(CPXCENVptr, void *, int, void *) ', void *' 'cbhandle')

int  'CPXsetmipcallbackfunc'('CPXENVptr' '环境',' 'int( 'CPXPUBLIC'*' '回调)(CPXCENVptr, void *, int, void *) ', void *' 'cbhandle')

描述

例程 CPXXsetmipcallbackfunc/CPXsetmipcallbackfunc 用于设置用户编写的回调例程,在混合整数程序优化期间和某些割平面生成例程期间,在分支裁剪法树中(包含根节点)将调用这些回调例程。

此例程与例程 CPXXsetlpcallbackfunc/CPXsetlpcallbackfunc 以相同方式工作。 此例程可使用户创建将在混合整数规划问题 (MIP) 求解期间调用的单独回调函数。

回调函数的原型与 CPXXsetlpcallbackfunc/CPXsetlpcallbackfunc 相同。

参数

env

一个指向 CPXXopenCPLEX/CPXopenCPLEX 例程之一所返回 CPLEX 环境的指针。

callback

一个指向用户编写的回调函数的指针。 将 callback 设置为 NULL 将阻止在优化期间调用任何回调函数。 优化期间和特定割平面生成例程期间,在每个节点后将执行对 callback 的调用。 此函数必须由用户编写。 其原型在 Callback 描述中进行了说明。

cbhandle

一个指针,指向用户专用数据。 此指针将传递到回调函数。

返回

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

示例


 status = CPXsetmipcallbackfunc (env, mycallback, NULL);

Callback 描述


 int CPXPUBLIC
 callback (CPXCENVptr env,
           void *cbdata,
           int wherefrom,
           void *cbhandle);
 

这是用户编写的回调例程。

回调返回值

非零值将终止优化。

回调自变量

env

一个指向传递到关联优化例程的 CPLEX 环境的指针。

cbdata

一个从优化例程传递到用户编写的回调函数(用于识别将优化的问题)的指针。 cbdata 指针的唯一用途是将其传递到例程 CPXXgetcallbackinfo/CPXgetcallbackinfo

wherefrom

一个整数值,用于报告从其调用用户编写的回调函数的优化算法。 表中显示了可能的值及其含义。

符号常量 含义
101 CPX_CALLBACK_MIP 从 mipopt
107 CPX_CALLBACK_MIP_PROBE 从探测或团合并
108 CPX_CALLBACK_MIP_FRACCUT 从 Gomory 小数割平面
109 CPX_CALLBACK_MIP_DISJCUT 从分离式割平面
110 CPX_CALLBACK_MIP_FLOWMIR 从混合整数舍入割平面

cbhandle

一个指向传递到 CPXXsetmipcallbackfunc/CPXsetmipcallbackfunc 的用户私有数据的指针。