コインまたは
| Webサイト | www.coin-or.org |
|---|---|
オペレーションズ・リサーチのための計算インフラストラクチャ(COIN-OR )は、「数学理論におけるオープン文献の役割を数学ソフトウェアに果たす」ことを目的としたプロジェクトです。オープン文献(研究ジャーナルなど)は、オペレーションズ・リサーチ(OR)コミュニティに査読プロセスとアーカイブを提供します。オペレーションズ・リサーチの数学理論ジャーナルに掲載される論文には、計算研究による数値結果を裏付けるものが多く含まれています。数値結果を生成するために使用されたソフトウェア実装、モデル、およびデータは、通常、公開されません。現状では、研究者が計算結果を再現し、公平な比較を行い、最先端の技術を拡張することが困難でした。
Linux、Apache、その他のプロジェクトの成功により、ソフトウェア開発と配布におけるオープンソースモデルが普及しました。IBMリサーチのグループは、ソフトウェア、モデル、そしてデータを公開するための類似かつ実行可能な手段としてオープンソースを提案しました。COIN-ORは、計算オペレーションズリサーチコミュニティにおけるオープンソースの普及を促進し、他者が独自のオープンソースソフトウェアプロジェクトを運営するために必要なオンラインリソースとホスティングサービスを提供するイニシアチブとして構想されました。
COIN-ORウェブサイトは、2000年にジョージア州アトランタで開催された第17回国際数学プログラミングシンポジウムに合わせて実験的に開設されました。2007年には、COIN-ORには25のアプリケーションプロジェクトがありました[ 1 ] 。これには、線形計画法(COIN-OR CLPなど)、非線形計画法(IPOPTなど)、整数計画法(CBC、Bcp、COIN-OR SYMPHONYなど)、代数モデリング言語(Cooprなど)などのツールが含まれていました。2011年までに、プロジェクト数は48にまで増加しました[ 2 ] 。COIN -ORは、オペレーションズ・リサーチ・マネジメント・サイエンス研究所(INFORMS)がホストし、教育機関である非営利のCOIN-OR財団が運営しています。
プロジェクト
CLP
COIN-OR LP(CLPまたはClp)は、 C++で書かれたオープンソースの線形計画法ソルバーです。Common Public Licenseの下で公開されているため、 GNU General Public Licenseのように改良への貢献を必要とせずに、プロプライエタリソフトウェアで使用できます。CLPは主に呼び出し可能なライブラリとして使用することを目的としていますが、スタンドアロンの実行可能バージョンも作成可能です。商用ソルバーと同等の信頼性を備え、数倍の速度で動作しますが[ 3 ]、非常に大規模な問題にも対応できるように設計されています。
CLP は次のような線形計画問題を解決するために設計されています。
- 最小化
- 次の形式の問題の制約に従う
- 非負変数
最大数百万の変数および制約を持つ。その主なアルゴリズムは単体法である。
CLP は、 SYMPHONY、Branch Cut and Price (BCP)、COIN-OR Branch and Cut ( CBC )などの他の COIN-OR プロジェクトでも使用されます。
CBC
COIN-OR分岐カット法(CBC または Cbc) は、 C++で書かれたオープンソースの混合整数計画法ソルバーです。スタンドアロン実行ファイルとしても、呼び出し可能ライブラリとしても使用できます ( AMPL ( A Mathematical Programming Language ) [ネイティブ]、GAMS ( General Algebraic Modeling System ) [ COIN-OR Optimization Services (OS) およびGAMSlinksプロジェクトが提供するリンクを使用]、MPL [ CoinMPプロジェクト経由]、AIMMS [ AIMMSlinksプロジェクト経由]、PuLP、CMPL、[ 4 ] OpenSolver for Excel、[ 5 ] JuMP、[ 6 ]またはMiniZinc経由)。長年オープンソースの MIP ソルバーとして人気がありましたが、その性能は HiGHS に比べて大幅に劣っています。[ 7 ] [ 8 ]
交響曲
ネットワーク上の単一または複数プロセスの最適化(SYMPHONY)は、異種ネットワーク上の混合整数計画(MIP)を解くためのオープンソースのブランチアンドカットフレームワーク です。 [ 9 ] CLP、CPLEX、XPRESSなどの線形計画ソルバーを使用して、基礎となる線形計画を解くことができます。
SYMPHONYは、MILP(多重線形計画問題)を解くための分岐・カット・価格法の逐次版と並列版の両方を実装した呼び出し可能ライブラリです。分岐・カット・価格法アルゴリズムは分岐限定法アルゴリズムに似ていますが、切断面法と価格設定アルゴリズムが追加されています。ライブラリのユーザーは、カスタムデータファイルの読み込み、アプリケーション固有の切断面の生成、カスタム分岐規則の適用など、アプリケーション固有のサブルーチンを提供することで、アルゴリズムを様々な方法でカスタマイズできます。その結果、カスタマイズされた分岐・カット法アルゴリズムが実現します。アルゴリズムのほとんどのコンポーネント、例えば探索木管理、線形計画解の管理、カットプール管理、通信管理などはライブラリ内部で実行されており、ユーザーが変更する必要はありません。実行ファイルは、完全に逐次的な構成から、独立して機能するカットジェネレータ、カットプール、LPソルバーを備えた完全並列構成まで、様々な構成でビルドできます。分散バージョンは現在、PVMメッセージパッシングプロトコルがサポートするあらゆる環境で動作します。同じソースコードは、 OpenMP準拠のコンパイラを使用して共有メモリアーキテクチャ向けにコンパイルすることもできます。
SYMPHONYはMPSファイル(COIN-OR MPSリーダー経由)とGNU MathProgファイルを読み込みます。SYMPHONYには独自のLPソルバーはありませんが、Osiインターフェースを介してClp、Cplex、Xpressなどのソルバーと併用できます。カットはCOINのカット生成ライブラリであるCGLを用いて生成されます。SYMPHONYは、巡回セールスマン問題、配車経路問題、集合分割問題、混合郵便配達問題などの問題に対応する構造固有の実装も備えています。SYMPHONYには対話型シェルも搭載されており、ユーザーはコマンドを入力してプログラムを実行・制御することができます。
パルプ
PuLPはPythonで書かれたLP/IPモデラーです。[ 10 ] MPSまたはLPファイルを生成し、GLPK、CLP / CBC、CPLEXを呼び出して線形問題を解くことができます。PuLPはSolverStudio for Excelのデフォルトの最適化ツールです。
SMI
SMIはC++で書かれた確率計画法のモデラーおよびソルバーです。 [ 11 ]確率MPSを読み込み、確率計画法を構築するための直接的なインターフェースを提供します。決定論的等価線形計画法を生成し、それを解き、シナリオ解にアクセスするためのインターフェースを提供します。
RBFOpt
RBFOptは、Pythonで記述され、改訂BSDライセンスの下で配布されているオープンソースのMINLPソルバーです。RBFOptは、ラジアル基底関数代理モデル戦略を用いて、高コストなブラックボックス目的関数を最小化します。連続変数、整数変数、カテゴリ変数が混在するMINLP問題を、ボックス制約の下で解きます。線形制約および一般的な非線形制約はサポートされていません。
このソルバーは長い開発の歴史があり、GitHub上で活発に開発が進められています。整数変数の問題を解くには、外部の平滑化MINLPソルバーが必要です。オープンソースのBonminとIpoptが利用可能です。
参照
- COIN-ORソルバーは、JuMP、AIMMS、AMPL、GAMS、FortSPモデリングシステムで利用可能です。また、 OpenSolverおよびSolverStudioアドインを介してExcelからも使用できます。
参考文献
- ^ 「COIN-OR 年次報告書 2007年」(PDF)。2008年5月15日時点のオリジナルよりアーカイブ(PDF) 。 2008年3月28日閲覧。
- ^ 「COIN-OR 年次報告書 2011年」(PDF)。2016年4月29日時点のオリジナルよりアーカイブ(PDF) 。 2016年7月5日閲覧。
- ^ 「シンプレックスLPソルバーのベンチマーク」。2021年11月11日時点のオリジナルよりアーカイブ。2021年11月11日閲覧。
- ^ coin-or/Cmpl、COIN-OR Foundation、2024年1月20日、2024年4月13日にオリジナルからアーカイブ、 2024年6月20日取得
- ^ 「OpenSolver for Excel – Excel用オープンソース最適化ソルバー」opensolver.org . 2024年6月10日時点のオリジナルよりアーカイブ。2024年6月20日閲覧。
- ^ jump-dev/JuMP.jl , JuMP-dev, 2024-06-19, 2024-05-15にオリジナルからアーカイブ, 2024-06-20に取得
- ^ 「HiGHS - 高性能並列線形最適化ソフトウェア」www.highs.dev。 2024年6月17日時点のオリジナルよりアーカイブ。 2024年6月20日閲覧。
- ^ 「MIPLIB2017ベンチマークインスタンス」。2021年10月30日時点のオリジナルよりアーカイブ。2021年11月11日閲覧。
- ^ "SYMPHONY" . 2014年2月28日時点のオリジナルよりアーカイブ。2013年11月14日閲覧。
- ^ “PuLP” . 2013年12月20日時点のオリジナルよりアーカイブ。2013年11月14日閲覧。
- ^ "SMI" . 2014年10月15日時点のオリジナルよりアーカイブ。2014年1月3日閲覧。
さらに読む
- JT LinderothとTK Ralphs:「混合整数線形計画法のための非商用ソフトウェア」。『整数計画法:理論と実践』、John Karlof編、CRC Press Operations Research Series、2005年、253-303ページ。(ワーキングペーパー版)
- T. Ralphs: COIN-OR最適化スイートの紹介:最適化モデルの構築と解決のためのオープンソースツール。Optimization Days、モントリオール、2013年5月7日。(プレゼンテーションスライド)
外部リンク
- オペレーションズ・リサーチのための計算インフラストラクチャ COIN-OR の公式ウェブサイト