サブロウ丸

主にプログラミングと数学

【Mac】Cbcソルバー 並列処理

Cbcとはオープンソースの混合整数線形計画(mixed integer liner program)ソルバーです。
混合整数線形計画問題とは読んで字のごとく、
線形計画問題の中に連続変数と、整数変数が混合している問題のことになります。


そのCbcソルバーで並列処理を行えるようにするには
以下のようにインストールの際にオプションを指定する必要があります。

インストール方法

homebrewでインストールする場合

brew tap coin-or-tools/coinor
brew install cbc --with-parallel 



それ以外

1.ソースコード

svn checkout https://projects.coin-or.org/svn/Cbc/releases/2.9.8 Cbc-2.9.8

の実行でダウンロード
(2.9.8はCbcのバージョンです。最新版のバージョンは COIN-OR Branch-and-Cut MIP Solver でチェックしてください)

2.オプション付きでconfigureする

cd Cbc-2.9.8
./configure --enable-cbc-parallel

そのあとは

make; make install

してPATHを通せばok


実行方法

cbc -sec [全スレッド合計の秒数] -threads [スレッド数] -import [LPファイル] -solve -solution [出力ファイル] 

-sec : 時間制限(*実際の時間ではない。時間制限は各スレッドが使っている時間の合計時間に適用される)
-threads : 用いるスレッド数
-import : LPファイルやMPSファイルの読み込み
-solution : 最適解(または時間切れの場合 暫定最適解)の出力先