具有指定变量类型的线性优化模型

Linear optimizations model with specified types for variable

python 中是否有任何线性优化模型的实现,它允许明确定义我的变量类型。例如,我希望我的变量只是整数。我可以在 R 中使用 lpSolve 时定义它:

    set.type(model, 1:18,type = "integer")

但我需要在 python 中构建线性优化模型。

有一个 scipy 的 linprog 实现,但它不允许定义我的变量的类型。

由于 IP(整数规划)和 LP(线性规划)是使用非常不同的算法求解的,因此某些求解器不允许将两者混合使用是合理的(IMO):IP 具有指数复杂度,而 LP 具有多项式复杂度。您的问题是 MILP(混合整数线性规划),因此具有指数复杂度,因此您需要 MILP solver for Python。但请注意,如果您引入许多整数变量,即使是小问题实例也可能变得很难解决。 Scipy 根据文档,linprog 只是一个 LP 求解器。

顺便说一下,还有一个 python interface to lpsolve, and another interface pylpsolve 看起来更新了。我尝试了 pylpsolve,并且能够从 github 存储库克隆并安装它,你可以看看这个函数(根据我之前所说的,你会注意到名称令人困惑...... )

>>> from pylpsolve import LP
>>> help(LP.setInteger)