用于建模和求解混合整数线性规划 (MIP) 的 Python 工具
项目描述
Python MIP(混合整数线性规划)工具
包网址: http: //python-mip.com
Python MIP 是 Python 工具的集合,用于混合整数线性程序 (MIP) 的建模和解决方案。MIP 语法受到 Pulp的启发。就像 CyLP一样,它还提供对高级求解器功能的访问,例如切割生成、惰性约束、MIPstarts 和解决方案池。移植 Pulp 和 Gurobi 模型应该很容易。
MIP 的一些主要特点是:
-
高级建模:在 Python 中编写 MIP 模型就像在 MathProg等高级语言中一样容易:运算符重载使得在 Python 中编写线性表达式变得容易;
-
全功能:
- 切割生成器和惰性约束:通过在分支和切割搜索期间仅生成所需的不等式来处理具有大量约束的强公式;
- 解池:查询搜索过程中找到的精英解集;
- MIPStart:使用问题相关启发式算法为 MIP 搜索生成初始可行解决方案。
-
快速:Python MIP 包使用现代 python CFFI模块直接调用已安装求解器的本机动态可加载库 ;模型由求解器有效存储和优化,MIP 透明地处理与 Python 代码的所有通信;它还与Pypy即时编译器兼容,这意味着您可以获得更好的性能,创建大型 MIP 的速度比仅在 CPython 上运行的官方 Gurobi python 接口快 25 倍;
-
多解算器:Python MIP 被编写为与开源 COIN-OR Branch-&-Cut CBC解算器和商业解算器 Gurobi的 C 库深度集成;与不同求解器通信的所有细节都由 Python-MIP 处理,您只需编写一个独立于求解器的代码;
-
用现代类型的Python 3 编写(需要 Python 3.6 或更高版本)。
例子
许多 Python-MIP 示例记录在https://docs.python-mip.com/en/latest/examples.html
这些示例和其他示例的代码(在教程中发布)可以在https://github.com/coin-or/python-mip/tree/master/examples下载
文档
完整的 Python-MIP 文档可在 https://docs.python-mip.com/en/latest/获得
还提供 PDF 版本: https ://python-mip.readthedocs.io/_/downloads/en/latest/pdf/
邮件列表
可以在讨论中发布问题、建议和功能请求。