我对Python和Gurobi还是很陌生。我想为几个“维度”添加一个二进制变量:
A = [1,2,3,4]
B = [1,2,3,4]
C = [1,2,3,4,5]
D = [1,2,3]
我需要具有索引A,B,C,D的二进制变量x。
我不确定如何使用该命令:
m.addVars()
答案 0 :(得分:0)
这是从给定的索引列表创建变量的方法:
import gurobipy as gp
A = [1,2,3,4]
model = gp.Model()
variables = model.addVars(A, name='A', vtype='B')
调用model.update()
后,您会看到以下变量名称/类型:
{1: <gurobi.Var A[1]>,
2: <gurobi.Var A[2]>,
3: <gurobi.Var A[3]>,
4: <gurobi.Var A[4]>}
documentation中也对此进行了说明。您只需对其他列表B
,C
和D
重复此过程。
编辑
将所有索引合并为一个变量结构的另一种方法是:
A = [1,2,3,4]
B = [1,2]
C = [1,2,3]
model = gp.Model()
variables = model.addVars(A, B, C, vtype='B')
您将像这样访问这些变量:
variables[1,2,1]