如何使用 model.getVars() 获取 tupledict 对象?
How do I get the tupledict object using model.getVars()?
Gurobi 允许您使用(例如)一次创建多个变量:
x = model.addVars(2,3,vtype=GRB.BINARY)
这个 returns 一个包含 6 个二进制变量的 tupledict 对象,可以像 x[0,2]
、x[1,1]
、... 等访问
但是,当我使用命令 x = model.getVars()
(例如在回调中)时,它 returns 是一个变量列表,而不是元组字典。因此,当我转到引用变量 x[0,1]
时,出现错误:
TypeError: list indices must be integers or slices, not tuple
我已经根据它们的 tupledict 键建立了我的所有变量,而不是列表索引,所以我不知道哪个变量是哪个。有什么方法可以让模型给我 tupledict 而不是列表?
正确,Model.getVars() returns所有变量的列表;它不知道 Python tupledict 结构。要保存 tupledict x 用于回调,请将其添加到模型对象,例如:model._myxvars = x,然后您可以在回调函数中使用它。
Gurobi 允许您使用(例如)一次创建多个变量:
x = model.addVars(2,3,vtype=GRB.BINARY)
这个 returns 一个包含 6 个二进制变量的 tupledict 对象,可以像 x[0,2]
、x[1,1]
、... 等访问
但是,当我使用命令 x = model.getVars()
(例如在回调中)时,它 returns 是一个变量列表,而不是元组字典。因此,当我转到引用变量 x[0,1]
时,出现错误:
TypeError: list indices must be integers or slices, not tuple
我已经根据它们的 tupledict 键建立了我的所有变量,而不是列表索引,所以我不知道哪个变量是哪个。有什么方法可以让模型给我 tupledict 而不是列表?
正确,Model.getVars() returns所有变量的列表;它不知道 Python tupledict 结构。要保存 tupledict x 用于回调,请将其添加到模型对象,例如:model._myxvars = x,然后您可以在回调函数中使用它。