8

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

4

3 回答 3

10

你有两个选择。最直接的方法是保存对返回的 Var 对象的引用Model.addVar。另一种方法是使用 addVar 中的 name 参数为变量命名,然后使用 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
于 2013-05-08T22:00:14.837 回答
0

如果您手头没有名称或参考资料(例如求解保存的模型时),您还可以执行以下操作:

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

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

于 2021-11-22T20:06:21.593 回答
0

打印 (z[a].x)

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

于 2020-04-12T18:24:19.903 回答