如何在 Python 中使用 Gurobi quicksum
How to use Gurobi quicksum in Python
我正在尝试弄清楚如何在 Python 中为 Gurobi 编写此约束。
这是正确的方法吗?
model.addConstr(
(gp.quicksum(a[i,r]*y[r] for i in range (len(n))) for r in range(len(R)))==1 , name='firstConst')
您应该始终尝试直接使用 Python 迭代器而不是使用 range(len(R)
.
因此,编写这些约束(实际上 |P|
很多)的更好方法是
for i in P:
model.addConstr(gp.quicksum(a[i,r]*y[r] for r in R) == 1, name='firstConst')
您还可以使用 addConstrs():
在单个调用中创建一组类似的约束
model.addConstrs((gp.quicksum(a[i,r]*y[r] for r in R) == 1 for i in P), name='firstConst')
您还应该以类似的方式添加变量:
y = model.addVars(R)
我正在尝试弄清楚如何在 Python 中为 Gurobi 编写此约束。
这是正确的方法吗?
model.addConstr(
(gp.quicksum(a[i,r]*y[r] for i in range (len(n))) for r in range(len(R)))==1 , name='firstConst')
您应该始终尝试直接使用 Python 迭代器而不是使用 range(len(R)
.
因此,编写这些约束(实际上 |P|
很多)的更好方法是
for i in P:
model.addConstr(gp.quicksum(a[i,r]*y[r] for r in R) == 1, name='firstConst')
您还可以使用 addConstrs():
在单个调用中创建一组类似的约束model.addConstrs((gp.quicksum(a[i,r]*y[r] for r in R) == 1 for i in P), name='firstConst')
您还应该以类似的方式添加变量:
y = model.addVars(R)