Pyomo/JuMP/Yalmip 在使用 Python/Julia/Matlab 和 Gurobi Solver 求解优化模型中的作用是什么?

问题描述 投票:0回答:1

我试图了解建模框架(例如 Python 的 Pyomo、Julia 的 JuMP 和 Matlab 的 Yalmip)在求解优化模型中的作用。我正在使用 Pyomo 和 Gurobi 求解器求解具有许多约束的模型。尽管求解器(Gurobi)求解模型实际花费的时间相对较小,但输出求解模型的结果需要很长时间。我假设这些建模框架是瓶颈。因此,我想了解为什么我们需要使用建模框架。此外,我还了解到这些框架中的计算过程无法并行化。有谁知道这些框架在求解优化模型中的作用?

我在网上查了一下,但没有找到任何东西。

optimization solver pyomo gurobi
1个回答
0
投票

第三方优化网络有利有弊。

主要优点是能够切换求解器,而无需更改大量代码(通常只需要更改一行)。

主要有四个缺点:

  1. 通常,并非您选择的求解器中可用的所有功能都可以在第 3 方框架中使用

  2. 框架可能会在将模型提供给求解器之前对其进行转换,这对于求解器来说可能会更糟

  3. 如果您付费购买商业求解器,那么您可能拥有支持组件,但这不包括第 3 方工具

  4. 为了保持求解器不可知,某些框架会构建模型,然后在指定求解器时的优化点,它使用求解器 API 构建模型,这意味着模型会构建两次。这可能解释了您经历的漫长构建时间。

总之:求解器有自己的 API。您不需要使用第三方优化框架。

© www.soinside.com 2019 - 2024. All rights reserved.