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

如何在Gurobi Python模型中获取各可行解的变量属性?

Gurobi获取解池中不同可行解的变量值

你的代码问题在于获取变量值时使用了X属性——这个属性默认返回当前最优解的变量值,和你设置的SolutionNumber无关。要获取解池中指定编号的可行解的变量值,需要改用Xn属性。

修正后的代码如下:

nSolutions = model.SolCount
for e in range(nSolutions):
    model.setParam(GRB.Param.SolutionNumber, e)
    obj_val = model.PoolObjVal
    # 使用Xn属性获取对应解编号的变量y的值
    y_value = model.getAttr('Xn', y)
    # 按需输出或保存结果
    print(f"解{e} | 目标值: {obj_val} | 变量y的值: {y_value}")

额外注意事项:

  • 求解前需确保解池容量足够存储你需要的解,可通过model.setParam(GRB.Param.PoolSolutions, 5)设置(数值按需调整)。
  • PoolObjVal的使用是正确的,它会返回当前SolutionNumber对应的目标值。
  • 若要获取所有变量的解,可直接调用model.getAttr('Xn'),无需指定单个变量,返回结果为变量到对应值的字典。

内容的提问来源于stack exchange,提问作者azin rashidi pour

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:00:58