【问题标题】:advantages of cplex in pyomo versus cplex in pythonpyomo 中的 cplex 与 python 中的 cplex 的优势
【发布时间】:2017-09-18 12:34:18
【问题描述】:

我已经使用 GAMS 很长时间了,但是我无法在 GAMS 下使用 CPLEX 的所有功能。你能用 Pyomo 做到这一点吗?还是直接在 Python 中使用 CPLEX?谢谢!

【问题讨论】:

    标签: python cplex pyomo gams-math


    【解决方案1】:

    使用Pyomo 的优势在于它是一种建模语言,独立于用于解决问题的底层求解器。例如,您可以编写模型,然后使用 glpk 求解。通过更改命令行选项,您可以使用 CPLEX、Gurobi 等求解相同的模型。它提供了许多功能,例如支持分布式优化,并允许您根据需要使用自己的自定义求解器(请参阅文档)。

    CPLEX Python API 位于频谱的另一端。它不是一种建模语言。它是一个相对轻量级的层,围绕底层 CPLEX Callable Library (C API)。变量、约束等由索引或名称引用。它允许你做几乎所有可以在 Callable Library 中做的事情。从这个意义上说,它为您提供了对 CPLEX 功能(甚至是回调等高级功能)的最大访问权限。

    位于中间某处的选项是DOCplex。 DOCplex 是 IBM 提供的一种开源建模语言,它允许您在云端或本地进行求解。它支持用于数学规划的 CPLEX,也支持用于约束规划的 CP Optimizer。

    【讨论】:

    • 感谢 rkersh!您知道 pyomo 在访问 CPLEX 功能方面与游戏相比如何吗?例如,在 gams 下,您可以在每次找到新的现有解决方案时停止分支定界算法。这在pyomo下也能做到吗?
    • 我对此表示怀疑。 Here is some indication,虽然它是在谈论另一个大型商业求解器。这在高级优化语言中也不常见,尤其是开源语言。我知道的唯一一个是JuMP。但这显然不是 python。
    猜你喜欢
    • 2021-08-07
    • 2018-06-21
    • 1970-01-01
    • 2017-02-16
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2017-07-08
    相关资源
    最近更新 更多