8.6.15. MDOCallback¶
- MDOCallback¶
用户定义MIP回调的基类。
方法
在MIP回调函数中向求解器发送停止请求
通过指定变量和该变量的上下界之间的拆分点来提交一个新的分支方法
将新的割平面添加到MIP模型
获取求解过程中的一个浮点型的值
获取求解过程中的一个整数型的值
获取当前松弛问题的解
获取当前松弛问题的解
获取当前松弛问题的解
获取当前最优解的值
获取当前最优解的值
获取当前最优解的值
提供一个可行解给MIP
提供一个可行解给MIP
如果已经通过 setSolution 提供了一些变量的解,可以选择性的立即提交这个解给MIP求解器
- void 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(MDOLinExpr lhs, char sense, double rhs)¶
将新的割平面添加到MIP模型。
- Parameters:
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(MDOVar[][] v)¶
获取当前松弛问题的解。
- Parameters:
MDOVar[][] v – 要获取解的变量
- Returns:
变量对应的解。
- double[][] getSolution(MDOVar[][] v)¶
获取当前最优解的值。
- Parameters:
MDOVar[][] v – 要获取解的变量。
- Returns:
变量对应的解。
- void setSolution(MDOVar var, double val)¶
提供一个可行解给MIP。
- Parameters:
MDOVar var – 要提供解的变量。
double val – 要提供的,变量对应的解。
- void setSolution(MDOVar[] var, double[] val)¶
提供一个可行解给MIP。
- Parameters:
MDOVar[] var – 要提供解的变量数组。
double[] val – 要提供的,变量对应的解。
- MDO.Result<Double> useSolution()¶
如果已经通过 setSolution 提供了一些变量的解,可以选择性的立即提交这个解给MIP求解器。
- Returns:
提交结果。包含两个字段:code和目标值。 code可能为:
0: 提交成功.
1: 提交是合法的,但值不正确(如不可行)
2: 提交是正确的,但没有被接受