优化状态码


优化状态码

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

语言 状态码
C GRB_OPTIMAL
c++ GRB_OPTIMAL
Java GRB.Status.OPTIMAL
net GRB.Status.OPTIMAL
Python 伽马射线爆发。最优

可能的状态码如下:

状态码 价值 描述
加载 1 已加载模型,但没有可用的解决方案信息。
最优 2 对模型进行了优化求解(以公差为约束),得到了最优解。
不可行 3. 模型被证明是不可行的。
INF_OR_UNBD 4 证明了模型是不可行的或无界的。为了得到一个更明确的结论,设置DualReductions参数设置为0并重新优化。
无限 5 证明了模型是无界的。重要注意:无界状态表示存在无界射线,允许目标无限制地改进。它没有说明模型是否有一个可行的解决方案。如果你需要关于可行性的信息,你应该将目标设为零并重新优化。
截止 6 结果表明,模型的最优目标小于中规定的值截止参数。没有解决方案信息。
ITERATION_LIMIT 7 中指定的单形迭代总数超过了优化终止的原因IterationLimit参数中指定的值,或因为屏障迭代的总数超过BarIterLimit参数。
NODE_LIMIT 8 由于已探索的分支切割节点总数超过了NodeLimit参数。
TIME_LIMIT 9 属性中指定的时间超出了优化的值,因此优化终止期限参数。
SOLUTION_LIMIT 10 由于找到的解的数量达到了中规定的值,优化终止SolutionLimit参数。
打断了 11 优化被用户终止。
数字 12 由于不可恢复的数值困难,优化被终止。
次优的 13 无法满足最优公差;有一个次最优解。
INPROGRESS 14 进行了异步优化调用,但相关的优化运行尚未完成。
USER_OBJ_LIMIT 15 用户指定了一个目标限制(或最好的目标或者是最好的肯定),而这一极限已经达到。