python、gurobi:高效添加约束

python, gurobi: add constraints efficiently

我正在尝试在 gurobipy 中优化具有 800 多个维度和 3000 多个不等式的模型。由于找不到将整个矩阵添加为约束的方法,因此我使用以下代码添加它们:

for index,inequality in enumerate(inequalities):
    expression = 0
    for index2,variable in enumerate(inequality):
        expression += variable*x[index2]
    m.addConstr(expression >= rhs[index])

x 是变量。这部分程序需要 70+ 秒,而问题在几分之一秒内得到优化。有人可以指出如何更有效地添加约束的方向吗?

我能够将时间缩短到一秒以下,因为通过更改行

几乎所有矩阵都由零组成
for index2,variable in enumerate(inequality):

for index2,variable in [(index2,variable) for index2,variable in enumerate(inequality) if variable!=0]:

因为只有一小部分操作需要 运行。我仍然对将这些约束添加到我的模型的更简洁的方式感兴趣