优化状态代码#

一旦优化调用返回,Gurobi优化器会将模型的状态属性设置为几个可能的值之一。该属性采用整数值,但我们建议您在程序中检查状态时使用预定义的状态常量。每个代码都有一个名称,并且每种语言都需要在此名称前加上前缀以获得适当的常量。您可以通过以下方式从可用的Gurobi接口访问状态代码OPTIMAL

语言

状态码

C

GRB_OPTIMAL

C++

GRB_OPTIMAL

Java

GRB.Status.OPTIMAL

.NET

GRB.Status.OPTIMAL

Python

GRB.OPTIMAL

在MATLAB和R中,状态码以字符串形式返回(例如 'OPTIMAL')。

可能的状态码如下。请注意,对于涉及限制或其他优化提前终止的状态,如果报告解决方案的可行性从状态中不明显,您可以通过访问适当的解决方案质量属性来评估可行性。

状态码

描述

LOADED

1

模型已加载,但没有可用的解决方案信息。

OPTIMAL

2

模型已解决至最优(在容忍度范围内),并且可获得最优解。

INFEASIBLE

3

模型被证明是不可行的。

INF_OR_UNBD

4

模型被证明是不可行或无界的。为了获得更明确的结论,请将DualReductions参数设置为0并重新优化。

UNBOUNDED

5

模型被证明是无界的。重要提示:无界状态表明存在一个无界射线,使得目标可以无限改进。这并不说明模型是否有可行解。如果你需要关于可行性的信息,你应该将目标设为零并重新优化。

CUTOFF

6

模型的最优目标被证明比截止参数中指定的值更差。没有可用的解决方案信息。

ITERATION_LIMIT

7

优化终止,因为执行的单纯形迭代总数超过了IterationLimit参数中指定的值,或者因为障碍迭代总数超过了BarIterLimit参数中指定的值。

NODE_LIMIT

8

优化终止,因为探索的分支切割节点总数超过了NodeLimit参数中指定的值。

TIME_LIMIT

9

优化终止,因为所花费的时间超过了时间限制参数中指定的值。

SOLUTION_LIMIT

10

优化终止,因为找到的解的数量达到了SolutionLimit参数中指定的值。

INTERRUPTED

11

优化已被用户终止。

NUMERIC

12

由于无法恢复的数值困难,优化已终止。

SUBOPTIMAL

13

无法满足最优性容差;可获得次优解。

INPROGRESS

14

进行了异步优化调用,但相关的优化运行尚未完成。

USER_OBJ_LIMIT

15

用户指定了一个目标限制(对最佳目标最佳界限的约束),并且已经达到了该限制。

WORK_LIMIT

16

优化终止,因为消耗的工作量超过了工作限制参数中指定的值。

MEM_LIMIT

17

优化终止,因为分配的内存总量超过了SoftMemLimit参数中指定的值。