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]:
因为只有一小部分操作需要 运行。我仍然对将这些约束添加到我的模型的更简洁的方式感兴趣
我正在尝试在 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]:
因为只有一小部分操作需要 运行。我仍然对将这些约束添加到我的模型的更简洁的方式感兴趣