You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gurobi:如何通过状态码获取状态消息?

获取Gurobi状态码对应的状态消息

当然可以!Gurobi其实内置了专门的工具函数,帮你把状态码转换成对应的可读状态消息,不用去扒库内部的存储或者自己维护映射表~

核心方法:gurobi.StatusName()

Gurobi提供了StatusName()函数,你只需要把从model.status拿到的状态码传入这个函数,就能直接得到对应的字符串消息,和求解时库自动打印的内容完全一致。

举个简单的代码示例:

import gurobi as grb

# 假设你已经完成模型构建与求解
model = grb.Model()
# ... 模型构建代码 ...
model.optimize()

# 获取状态码并转换为消息
status_code = model.status
status_msg = grb.StatusName(status_code)

print(f"模型求解状态: {status_msg}")

常见状态码对应的消息示例

比如这些典型场景下的转换结果:

  • 当模型找到最优解时:grb.GRB.OPTIMAL → "Optimal"
  • 模型不可行时:grb.GRB.INFEASIBLE → "Infeasible"
  • 模型无界时:grb.GRB.UNBOUNDED → "Unbounded"
  • 达到求解时间限制时:grb.GRB.TIME_LIMIT → "Time limit reached"

额外提示:异常场景的状态消息

如果是捕获GurobiError异常,除了访问异常对象的.message属性,你也可以用StatusName()来转换异常关联的状态码(如果有的话),比如:

try:
    model.optimize()
except grb.GurobiError as e:
    print(f"异常消息: {e.message}")
    if hasattr(e, 'status'):
        print(f"异常状态: {grb.StatusName(e.status)}")

这个方法是Gurobi官方API的标准功能,完全可靠,不用自己手动维护状态码和消息的映射关系~

内容的提问来源于stack exchange,提问作者Derek 朕會功夫

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:53:19