【发布时间】:2017-09-18 12:34:18
【问题描述】:
我已经使用 GAMS 很长时间了,但是我无法在 GAMS 下使用 CPLEX 的所有功能。你能用 Pyomo 做到这一点吗?还是直接在 Python 中使用 CPLEX?谢谢!
【问题讨论】:
标签: python cplex pyomo gams-math
我已经使用 GAMS 很长时间了,但是我无法在 GAMS 下使用 CPLEX 的所有功能。你能用 Pyomo 做到这一点吗?还是直接在 Python 中使用 CPLEX?谢谢!
【问题讨论】:
标签: python cplex pyomo gams-math
使用Pyomo 的优势在于它是一种建模语言,独立于用于解决问题的底层求解器。例如,您可以编写模型,然后使用 glpk 求解。通过更改命令行选项,您可以使用 CPLEX、Gurobi 等求解相同的模型。它提供了许多功能,例如支持分布式优化,并允许您根据需要使用自己的自定义求解器(请参阅文档)。
CPLEX Python API 位于频谱的另一端。它不是一种建模语言。它是一个相对轻量级的层,围绕底层 CPLEX Callable Library (C API)。变量、约束等由索引或名称引用。它允许你做几乎所有可以在 Callable Library 中做的事情。从这个意义上说,它为您提供了对 CPLEX 功能(甚至是回调等高级功能)的最大访问权限。
位于中间某处的选项是DOCplex。 DOCplex 是 IBM 提供的一种开源建模语言,它允许您在云端或本地进行求解。它支持用于数学规划的 CPLEX,也支持用于约束规划的 CP Optimizer。
【讨论】: