什么是 MathOpt

MathOpt 是一个用于对数学优化问题进行建模和解决的库,例如线性编程问题 (LP) 或混合整数编程问题 (MIP)。MathOpt 将建模与求解分隔开来,允许用户通过更改枚举(和构建依赖项)来选择求解器,从而在求解方法之间切换。

观看此视频,简要了解 2023 年 JuMP 大会演讲中的 MathOpt。

MathOpt 功能

MathOpt 模型可以包含:

  • 整数或连续变量
  • 线性约束或二次约束
  • 线性目标或二次目标
  • 多个层级的目标
  • 专用 MIP 约束条件(SOS、指示器,将推出更多功能)
  • 一些圆锥约束(二阶圆锥,更多即将出现)

模型的定义独立于任何求解器,并且求解器可以互换使用。MathOpt 支持以下求解器:

MathOpt 提供 C++ 和 Python 的客户端库来构建优化模型。

MathOpt 支持许多高级功能,包括:

  • 不可行性分析(不可行的不可行集合,即 IIS),仅限 Gurobi
  • 增量求解
  • 回调
  • 重复
  • 原光和双射线
  • 不太理想的原初解和二元解
  • 删除变量和限制条件
  • 温启动(按解决方案或基于)
  • 详细的终止原因
  • 分支优先级
  • 中断
  • 许多求解器独立参数