【发布时间】:2017-09-10 19:17:30
【问题描述】:
我对 Pyomo 生成具有大量约束和变量(大约 10e6)的 OR 模型的性能感兴趣。我目前正在使用 GAMS 来启动优化,但我想使用不同的 python 功能,因此使用 Pyomo 来生成模型。
我做了一些测试,显然当我编写模型时,每次实例化约束时都会调用用于定义约束的 Python 方法。在进一步实施之前,我想知道是否存在一种基于 numpy 数组数据直接创建约束块的方法?在我看来,按块构造约束对于大型模型可能更有效。
您认为使用 pyomo 或其他 python 建模库可以获得与 GAMS 或其他 AML 语言相当的性能吗?
提前感谢您的帮助!
【问题讨论】:
-
通常 GAMS 比 Pyomo 快(在我的模型上通常也比 AMPL 快,尤其是当我们有很多数据操作步骤但我知道 AMPL 明显更快的模型时)。
-
Pyomo 生成模型的速度非常慢。在我的问题中,该程序总共需要大约 3 个小时,其中求解器 (Gurobi) 只需要 5 秒。
标签: python mathematical-optimization pyomo