您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python混合整数线性规划

Python混合整数线性规划

一个python建模接口,可连接到 (开源), (商业), (商业), (商业)和 (开源)之类的

您还可以使用 为优化问题建模,然后调用外部求解器,即CPLEX,Gurobi GLPK和AMPL求解器库。

您还可以从 调用GLPK 。

另一种建模语言是 ,它具有用于MIP求解器的python接口(仅适用于线性程序)。

上述所有求解器都可以求解混合整数 程序,而其中某些求解器(可以肯定地使用CPLEX,GUROBI和XRESS- MP)可以求解混合整数 程序二次约束二次程序(以及圆锥程序),但这可能超出了本章的范围题)。

MIP指的是混合整数程序,但通常仅用于指线性程序。为了使术语更精确,应始终参考MILP或MINLP(混合整数非线性编程)。

请注意,CPLEX和GUROBI也具有自己的python API,但它们(以及)XPRESS-MP是商业产品,但可免费用于学术研究。 与上面的Pulp类似,但与COIN- OR求解器CBC和CGL和CLP接口。

请注意,商业和自由求解器的性能差异很大:后者大大落后于前者。 是 _ 也许是最好的非商业求解器 _ (请参阅下面的更新)。它的python接口PySCIPOpt

最后,如果您对简单的约束求解器(而非优化)感兴趣,请查看

我希望这有帮助!

更多的求解器和python接口陷入了我的视野:

MIPCL似乎是 最快 的最快的非商业MIP求解器之一,它具有python界面,该界面具有相当好的文档。但是请注意,Python API不包括本机MIPCLShell附带的高级功能。我特别喜欢MIPCL-PY手册,该手册在一些小规模实现的基础上演示了运维管理中使用的一系列模型。它本身就是一本非常有趣的入门手册,无论您可能想使用哪种求解器/ API。

Google Optimization Tools,其中包括多种功能,例如

它具有有关多个传统OR问题和简单实现的大量文档。我找不到一个完整的Python api文档,尽管存在一些例子在这里。对我来说,还不清楚其他求解器如何与接口连接以及这些求解器的方法是否可用。

CVXOPT一个用于凸优化的开源软件包,它与GLPK(开源)和MOSEK (商业)接口。它具有通用性,因为它可以解决许多问题类别(尤其是线性,二阶,半定,凸非线性)。唯一的缺点是,由于用户需要以“ Matlab-y”方式传递数据(即,指定矩阵,rhs矢量等),因此对复杂问题进行建模可能很麻烦。但是,可以从建模接口PICOS和…调用它。

CVXPY是用于凸优化问题的python嵌入式优化语言,包含CVXOPT作为认求解器,但它可以连接到常用的MIP求解器

感谢RedPanda指出它也CVXOPT/CVXPY支持MIP求解器。

有关软件包和面向对象语言(不限于Python)的优化建模功能的非常全面的文章,请查看本文

python 2022/1/1 18:29:50 有523人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶