Python 如何有效地将矩阵约束“Ax=b”添加到Pyomo模型中?

Python 如何有效地将矩阵约束“Ax=b”添加到Pyomo模型中?,python,performance,optimization,mathematical-optimization,pyomo,Python,Performance,Optimization,Mathematical Optimization,Pyomo,我想用我的numpy数组a和b尽可能有效地将约束Ax=b添加到Pyomo模型中。不幸的是,目前的性能非常差。对于下面的示例 导入时间 将numpy作为np导入 将pyomo.environ作为pyo导入 开始=时间。时间() 行=287 科尔斯=2765 A=np.random.rand(行、列) b=np.random.rand(行) mdl=pyo.ConcreteModel() mdl.rows=范围(行) mdl.cols=范围(cols) mdl.A=A mdl.b=b mdl.x_v

我想用我的
numpy
数组
a
b
尽可能有效地将约束
Ax=b
添加到Pyomo模型中。不幸的是,目前的性能非常差。对于下面的示例

导入时间
将numpy作为np导入
将pyomo.environ作为pyo导入
开始=时间。时间()
行=287
科尔斯=2765
A=np.random.rand(行、列)
b=np.random.rand(行)
mdl=pyo.ConcreteModel()
mdl.rows=范围(行)
mdl.cols=范围(cols)
mdl.A=A
mdl.b=b
mdl.x_var=pyo.var(mdl.cols,bounds=(0.0,无))
mdl.constraints=pyo.ConstraintList()

[mdl.constraints.add(sum(mdl.A[row,col]*mdl.x_var[col]表示mdl.cols中的col)2765≠ 巨大。现在我们通常用数千万列来求解模型。请注意,您生成了一个完全密集的模型。几乎所有实际模型都是(非常)稀疏。所以这个测试可能不太相关。我理解实际模型比这个模型更稀疏。然而,如果你说这个模型远不是巨大的,为什么它需要30秒?没有更有效的方法将这个模型传递给pyomo吗?