8.5.17. MDOCallback¶
-
class MDOCallback¶
用户定义的回调的基类。
方法
在MIP回调函数中向求解器发送停止请求
通过指定变量和该变量的上下界之间的拆分点来提交一个新的分支方法
将新的割平面添加到MIP模型
获取求解过程中的一个浮点型的值
获取求解过程中的一个整数型的值
获取当前松弛问题的解
获取当前松弛问题的解
获取当前最优解的值
获取当前最优解的值
提供一个可行解给MIP
提供一个可行解给MIP
如果已经通过 setSolution 提供了一些变量的解,可以选择性的立即提交这个解给MIP求解器
-
abort()¶
在MIP回调函数中向求解器发送停止请求。 求解器终止后,将从 MDOModel.optimize 返回错误代码 ABORT_CTRL_C 。
-
int addBranch(MDOVar var, double value, int way)¶
通过指定变量和该变量的上下界之间的拆分点来提交一个新的分支方法。
- Parameters
MDOVar var – 变量。
double value – 分割点。它应该在变量的上下界之间。
int way –
首先要考虑的分支。有效选项包括:
<0: 首先考虑下行分支。
>0: 首先考虑向上的分支。
- Returns
提交状态:
0: 提交成功
1: 提交是合法的,但值不正确(如不可行)
2: 提交是正确的,但没有被接受
-
int addCut(const MDOLinExpr &lhs, char sense, double rhs)¶
将新的割平面添加到MIP模型。
- Parameters
const MDOLinExpr& lhs – 新割平面的左侧值。
char sense – 新割平面的比较符。
double rhs – 新割平面的右侧值。
- Returns
提交状态:
0: 提交成功
1: 提交是合法的,但值不正确(如不可行)
2: 提交是正确的,但没有被接受
-
double getDoubleInfo(what)¶
获取求解过程中的一个浮点型的值。
- Parameters
what – 要获取值的code。
- Returns
要获取的值
-
int getIntInfo(what)¶
获取求解过程中的一个整数型的值。
- Parameters
what – 要获取值对应的code。
- Returns
要获取的值。
-
double *getNodeRel(const MDOVar *v, int len)¶
获取当前松弛问题的解。
- Parameters
const MDOVar* v – 要获取解的变量。
int len – 变量的数目。
- Returns
变量对应的解。
-
double *getSolution(const MDOVar *v, int len)¶
获取当前最优解的值。
- Parameters
const MDOVar* v – 要获取解的变量。
int len – 变量的数目。
- Returns
变量对应的解。
-
void setSolution(MDOVar var, double val)¶
提供一个可行解给MIP。
- Parameters
MDOVar var – 要提供解的变量。
double val – 要提供的,变量对应的解。
-
void setSolution(const MDOVar *var, const double *val, int len)¶
提供一个可行解给MIP。
- Parameters
const MDOVar* var – 要提供解的变量数组。
const double* val – 要提供的,变量对应的解。
int len – 要提供解的变量数目。
-
int useSolution(double *obj)¶
如果已经通过 setSolution 提供了一些变量的解,可以选择性的立即提交这个解给MIP求解器。
- Parameters
double* obj – [out] The objective value of submitted solution.
- Returns
0: 提交成功.
1: 提交是合法的,但值不正确(如不可行)
2: 提交是正确的,但没有被接受
-
abort()¶