MathOpt とは

MathOpt は、線形計画問題(LP)や混合整数プログラミング問題(MIP)などの数学の最適化問題をモデル化して解くためのライブラリです。MathOpt は、モデリングと解を分離するため、ユーザーが列挙型(およびビルド依存関係)を変更して解法を選択することにより、解法を切り替えられるようになります。

2023 年の JuMP カンファレンス プレゼンテーションで発表された MathOpt の簡単な紹介については、こちらの動画をご覧ください。

MathOpt の機能

MathOpt モデルには次のものを含めることができます。

  • 整数または連続変数
  • 線形制約または二次制約
  • 線形または二次的な目標
  • 複数の階層目標を設定できる
  • 特殊な MIP の制約(SOS、指標、今後さらに追加予定)
  • 円錐制約(2 次の円錐、今後さらに追加される)

モデルはソルバーとは独立して定義され、ソルバーは相互に入れ替えることができます。MathOpt は、以下のソルバーに対応しています。

MathOpt には、最適化モデルを構築するために、C++ と Python のクライアント ライブラリが用意されています。

MathOpt は、次のような多くの高度な機能に対応しています。

  • 実現不可能分析(Irreducible Infeasible Set(IIS)、Gurobi のみ)
  • 増分ソルビング
  • コールバック
  • 二重
  • Primal rays と Dual rays
  • 最適ではない基本ソリューションと二重ソリューション
  • 変数と制約の削除
  • ウォーム スタート(ソリューション別またはベース別)
  • 解約の詳しい理由
  • 分岐優先度
  • 割り込み
  • 解法に依存しない多くのパラメータ