8.4.5. 回调函数¶
函数
设置用户定义的回调函数
检索当前用户定义的回调函数
检索有关优化进度的其他数据
将新割平面添加到MIP模型
通过指定变量和该变量的下界和上界之间的拆分点,来指定分支方法
为MIP模型提供了一种新的可行解
- int MDOsetcallbackfunc(MDOmodel *model, callbackfn cb, void *usrdata)¶
设置用户定义的回调函数。
- Parameters
model (MDOmodel*) – [in] 模型对象。
cb (callbackfn) –
[in] 回调函数。 类型 callbackfn 定义为:
typedef int (*callbackfn)(const MDOmodel* model, void* cbdata, int where, const void* usrdata);usrdata (void*) – [in] 用户定义的回调上下文。
- Returns
指定函数状态的响应代码。
- int MDOgetcallbackfunc(MDOmodel *model, callbackfn *cb)¶
检索当前用户定义的回调函数。
- Parameters
model (MDOmodel*) – [in] 模型对象。
cb (callbackfn*) –
[out] 保存当前回调函数的位置。 类型 callbackfn 定义为:
typedef int (*callbackfn)(const MDOmodel* model, void* cbdata, int where, const void* usrdata);- Returns
指定函数状态的响应代码。
- int MDOcbget(void *cbdata, int where, int what, void *resultP)¶
检索有关优化进度的其他数据。
- Parameters
cbdata (void*) – [in] 传递给用户回调函数的 cbdata 参数。
where (int) – [in] 传递给用户回调函数的 where 参数。
what (int) – [in] 用户回调请求的数据ID。
resultP (void*) – [out] 保存请求数据的位置,其类型取决于请求的数据。
- Returns
指定函数状态的响应代码。
- int MDOcbcut(void *cbdata, int cutlen, const int *cutind, const double *cutval, char cutsense, double cutrhs)¶
将新割平面添加到MIP模型。
- Parameters
cbdata (void*) – [in] 传递给用户回调函数的 cbdata 参数。
cutlen (int) – [in] 与新割平面关联的变量数。
cutind (const int*) – [in] 与新割平面关联的变量索引列表。
cutval (const double*) – [in] 与新割平面关联的变量系数列表。
cutsense (char) – [in] 新的割平面比较符。
cutrhs (double) – [in] 新割平面的右侧值。
- Returns
返回0或负数指定函数状态的响应代码,或一个正数指定提交状态:
1: 提交是合法的,但值不正确(如不可行)
2: 提交是正确的,但没有被接受
- int MDOcbbranch(void *cbdata, int index, double value, int way)¶
通过指定变量和该变量的下界和上界之间的拆分点,来指定分支方法。
- Parameters
cbdata (void*) – [in] 传递给用户回调函数的 cbdata 参数。
index (int) – [in] 变量索引。
value (double) – [in] 分割点。它应该在变量的下界和上界之间。
way (int) –
[in] 首先要考虑的分支。有效选项包括:
<0: 首先考虑下行分支。
>0: 首先考虑向上分支。
- Returns
返回0或负数指定函数状态的响应代码,或一个正数指定提交状态:
1: 提交是合法的,但值不正确(如不可行)
2: 提交是正确的,但没有被接受
- int MDOcbsolution(void *cbdata, const double *solution, double *objP)¶
为MIP模型提供了一种新的可行解。
- Parameters
cbdata (void*) – [in] 传递给用户回调函数的 cbdata 参数。
solution (const double*) – [in] 要提供的新的可行解。
objP (double*) – [out] 保存新可行解目标函数值的位置。
- Returns
返回0或负数指定函数状态的响应代码,或一个正数指定提交状态:
1: 提交是合法的,但值不正确(如不可行)
2: 提交是正确的,但没有被接受