CPXXsetlpcallbackfuncCPXsetlpcallbackfunc

对将在每次迭代后调用的用户编写的旧回调例程进行修改,并且还会在 CPLEX 预求解算法期间定期修改。

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

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

描述

在线性程序优化期间,例程 CPXXsetlpcallbackfunc/CPXsetlpcallbackfunc 对将在每次迭代后调用的用户编写的旧回调例程进行修改,并且还会在 CPLEX 预求解算法期间定期修改。

提示:

此例程属于遗留回调。 请勿将此例程用于应用程序中通用回调。 有关通用回调的更多信息,请参阅《CPLEX 用户手册》中的 "通用回调"主题。

Callback 描述


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

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

回调返回值

非零值将终止优化。

回调自变量

env

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

cbdata

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

wherefrom

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

符号常量 含义
1 CPX_CALLBACK_PRIMAL 从主单纯形法
2 CPX_CALLBACK_DUAL 从对偶单纯形法
4 CPX_CALLBACK_PRIMAL_CROSSOVER 从初始交叉
5 CPX_CALLBACK_DUAL_CROSSOVER 从对偶交叉
6 CPX_CALLBACK_BARRIER 从内点
7 CPX_CALLBACK_PRESOLVE 从预求解
8 CPX_CALLBACK_QPBARRIER 从 QP 内点
9 CPX_CALLBACK_QPSIMPLEX 从 QP 单纯形法

cbhandle

指向传递到 CPXXsetlpcallbackfunc/CPXsetlpcallbackfunc 的用户私有数据的指针。

参数

env

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

callback

一个指向用户编写的回调函数的指针。 将 callback 设置为 NULL 可阻止在优化期间调用任何回调函数。 优化期间每个迭代后以及定期在 CPLEX 预求解算法期间,将执行对 callback 的调用。 此函数由用户编写,在此处根据记录创建了原型。

cbhandle

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

返回

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

示例


status = CPXsetlpcallbackfunc (env, myfunc, NULL);