Gurobi - 在 python 中声明约束

Gurobi - declare constrains in python

我试图在 Python 中声明下面的约束,但它不起作用。

这是我的代码:

m.addConstrs((tsk*Xkt[i]).sum(k, '*') + (tbk*Qkt[i]).sum(k, "*") <= bt[i]+Ot[i] for i in range(0, t))

tupledict.sum() 方法适用于 tupledict 对象,而不适用于 LinExpr,例如 tsk*Xkt[i]。您有两个选择:

  1. 使用 sum()quicksum() 函数,创建如下表达式:

    m.addConstrs(quicksum(ts[k]*X[k,t] + tb[k]*Q[k,t] for k in Krange) <= b[t]+O[t] for t in Trange)
    
  2. 使用tupledict.prod()方法:

    m.addConstrs(X.prod(ts, '*', t) + Q.prod(tb, '*', t) <= b[t]+O[t] for t in Trange)
    

几点评论:

  1. 我更改了您的下标符号以更好地匹配数学表达式。我不清楚表达式是 ts 和 tb 还是 t ˙ s 和 t ˙ b;相应地调整您的代码。
  2. 目前 tupledict.prod() 的语法中存在文档错误;我上面的代码反映了这种方法的正确使用。