什么是 MathOpt
MathOpt 是一个用于对数学优化问题进行建模和解决的库,例如线性编程问题 (LP) 或混合整数编程问题 (MIP)。MathOpt 将建模与求解分隔开来,允许用户通过更改枚举(和构建依赖项)来选择求解器,从而在求解方法之间切换。
观看此视频,简要了解 2023 年 JuMP 大会演讲中的 MathOpt。
MathOpt 功能
MathOpt 模型可以包含:
- 整数或连续变量
- 线性约束或二次约束
- 线性目标或二次目标
- 多个层级的目标
- 专用 MIP 约束条件(SOS、指示器,将推出更多功能)
- 一些圆锥约束(二阶圆锥,更多即将出现)
模型的定义独立于任何求解器,并且求解器可以互换使用。MathOpt 支持以下求解器:
MathOpt 提供 C++ 和 Python 的客户端库来构建优化模型。
MathOpt 支持许多高级功能,包括:
- 不可行性分析(不可行的不可行集合,即 IIS),仅限 Gurobi
- 增量求解
- 回调
- 重复
- 原光和双射线
- 不太理想的原初解和二元解
- 删除变量和限制条件
- 温启动(按解决方案或基于)
- 详细的终止原因
- 分支优先级
- 中断
- 许多求解器独立参数