我不知道如何在 python gurobipy 中表达求和
i don't know how to express summation in python gurobipy
我有一个像 Xitb 这样的变量。
I=[1,2],NC=['1'],NP=['2'] ,time=[1,...10],number=[1,..9]
当我属于NC时,我想这样表达
x111+x112+....x119<= 20
x121+x122+....x129<= 20
...
x1101+x1102+..x1109<=20
我编写了这样的代码
import gurobipy as gp
from gurobipy import GRB
m = gp.Model('Offshore')
xitb = m.addVars(NP, time,number, name = "preventive",vtype=GRB.BINARY)
addConstrs(gp.quicksum(xitb[i,t,b] for i in NC for t in time)<=20)
代码正确吗?
我在您的代码中看到两个错误:
- 您将 xitb 的第一个索引定义为
NP
- 我认为您的意思是 I
- 在
gp.quicksum
内的生成器表达式中,您缺少第 3 个索引 b
我相信这会奏效:
xitb = m.addVars(I, time, number, name = "preventive", vtype=GRB.BINARY)
addConstrs(gp.quicksum(xitb[i,t,b]
for i in NC
for t in time
for b in number) <= 20)
我有一个像 Xitb 这样的变量。 I=[1,2],NC=['1'],NP=['2'] ,time=[1,...10],number=[1,..9] 当我属于NC时,我想这样表达
x111+x112+....x119<= 20
x121+x122+....x129<= 20
...
x1101+x1102+..x1109<=20
我编写了这样的代码
import gurobipy as gp
from gurobipy import GRB
m = gp.Model('Offshore')
xitb = m.addVars(NP, time,number, name = "preventive",vtype=GRB.BINARY)
addConstrs(gp.quicksum(xitb[i,t,b] for i in NC for t in time)<=20)
代码正确吗?
我在您的代码中看到两个错误:
- 您将 xitb 的第一个索引定义为
NP
- 我认为您的意思是I
- 在
gp.quicksum
内的生成器表达式中,您缺少第 3 个索引b
我相信这会奏效:
xitb = m.addVars(I, time, number, name = "preventive", vtype=GRB.BINARY)
addConstrs(gp.quicksum(xitb[i,t,b]
for i in NC
for t in time
for b in number) <= 20)