CPXXsetlpcallbackfunc 和 CPXsetlpcallbackfunc
对将在每次迭代后调用的用户编写的旧回调例程进行修改,并且还会在 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);