JuMPは、 Juliaプログラミング言語に組み込まれた、数理最適化のための代数モデリング言語およびサポートパッケージの集合です。 [ 1 ] [ 2 ] JuMPは、企業、政府機関、学術機関、ソフトウェアプロジェクト、および個人によって、最適化問題を定式化してサードパーティのソルバーに送信するために使用されます。JuMPは、特にオペレーションズリサーチの分野の問題に適用されています。[ 3 ]
JuMP はJuliaパッケージであり、最適化問題を宣言および解決するためのAPIと構文を提供するドメイン固有言語です。決定変数の宣言、制約の追加、目的関数の設定のための特殊な構文は、Julia の構文マクロとメタプログラミング機能によって容易に実現されます。JuMP は、線形計画法、混合整数計画法、半正定値計画法、円錐最適化、非線形計画法、およびその他のクラスの最適化問題をサポートしています。JuMP は、最先端の商用ソルバーやオープンソースソルバーを含む50 を超えるソルバーへのアクセスを提供します。 [ 4 ]
JuMPは、マイルズ・ルービン、イアン・ダニング、ジョーイ・ヒューシェットがマサチューセッツ工科大学の学生だった頃に最初に開発されました。現在、JuMPのコア開発者は、マイルズ・ルービン、ブノワ・レガット、ジョアキン・ディアス・ガルシア、ジョーイ・ヒューシェット、オスカー・ドーソンです。マイルズ・ルービンはBDFLの称号も持っています。[ 5 ] JuMPはNumFOCUSのスポンサー付きプロジェクトです。[ 6 ]
JuMPとその著者は、2015 COIN-OR Cup、2016 INFORMS Computing Society Prize、およびMathematical Optimization Societyの2021 Beale – Orchard – Hays Prizeで評価されています。[ 7 ] [ 8 ] [ 9 ]