我不知道如何在 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)

代码正确吗?

我在您的代码中看到两个错误:

  1. 您将 xitb 的第一个索引定义为 NP - 我认为您的意思是 I
  2. 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)