如何在 Gurobi addMConstr 中组合多个术语?

How to combine multiple terms in Gurobi addMConstr?

我正在尝试使用以下项创建矩阵约束:

sp1 = gp.Model('subproblem1')
I6 = np.identity(6)
y = sp1.addMVar(4,vtype=gp.GRB.CONTINUOUS,name='y') 
vp = sp1.addMVar(6,vtype=gp.GRB.CONTINUOUS,name='vp')
vm = sp1.addMVar(6,vtype=gp.GRB.CONTINUOUS,name='vm')
W = a 6x4 np array
rhs = a 6x1 np array
sp1.addConstr(W@y + I6@vp + I6@vm == rhs)

我收到以下错误: GurobiError:向量维度不兼容

这是什么问题?最好我可以告诉所有条款应该等于 [6x1] 数组。

因为 rhs 的形状是 (6,1) Gurobi 认为它是矩阵,而不是向量。您应该确保它的形状为 (6,):

sp1.addConstr(W@y + I6@vp + I6@vm == rhs.flatten())