Gurobi Python获取已定义变量的值

8

我如何在gurobi python中获取之前定义的变量的值(使用addVar)?我需要比较gurobi变量的值,然后执行计算以达到我的目标变量。在优化之前必须完成相同的操作。

3个回答

10

你有两个选项。最简单的是保存由Model.addVar返回的Var对象的引用。另一种方法是在addVar中使用名称参数为变量命名,然后使用Model.getVarByName检索变量。

from gurobipy import *
a_var = m.addVar(name="variable.0")
# ...
a_var_reference = m.getVarByName("variable.0")
# a_var and a_var_reference refer to the same object
m.optimize()
#obtain the value of a_var in the optimal solution
if m.Status == GRB.OPTIMAL:
   print a_var.X

1
有两个步骤:如上所述检索Var对象,然后通过X属性检索解决方案值。 - Greg Glockner

1

打印(z [a] .x)

使用属性X获取特定索引变量的值。 在我的示例中,z是变量,a是索引,而.x是属性。


0

如果您没有名称或引用可用(例如在解决已保存的模型时),也可以执行以下操作:

import gurobipy as gu
mdl = gu.read(<model_path>)
mdl.optimize()
mdl.getVars()

最后一行将返回每个变量的引用列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接