LoginSignup
1
1

More than 1 year has passed since last update.

Pulpのソルバーとして最新のCBCをインストールして使う方法(Windows環境)

Posted at

1. 概要

Windows11 Anaconda環境にPulpをcondaでインストールして、デフォルトのソルバーで混合整数問題を解いていると、あるシンプルな制約を追加すると、いくら待ってもsolve()が返って来なくなった。モデルが悪いのかなと、さんざん試行錯誤したが解決できず、ソルバーを最新のCBC (2023/3/26現在で、2.10.8) に変更することにした。変更したソルバーで実行すると、最初のモデルでも問題なく計算結果を得ることができた。
参考:以下のDOWNLOADの章
[COIN-OR FoundationサイトのCBC] (https://github.com/coin-or/Cbc)

2. 環境

  • Windows 11 Pro 22H2
  • CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  • Anaconda3
  • Python 3.9.15
  • Pulp 2.7.0

3. 実際にやった手順

手順は、以外と簡単で、

  1. インストール

    • [CBCの最新リリース] (https://github.com/coin-or/Cbc/releases) から、自分の環境にあったファイル、Winodwsの場合はCbc-releases.2.10.8-i686-w64-mingw32.zipをダウンロードして解凍する。

    • 解凍してできたフォルダ(Cbc-releases.2.10.8-i686-w64-mingw32)を、好きな場所に移動する。私の場合は、以下に移動した。
      C:\Users\ユーザ名\anaconda3\envs\仮想環境名\lib\site-packages\pulp\solverdir\

  2. Pulpでソルバーを指定して実行
    インストールしたcbc.exeのパスを指定して、ソルバーを生成し、ソルバーを指定してsolve()を呼び出す。

    solverPath=r'C:\Users\ユーザ名\anaconda3\envs\仮想環境名\lib\site-packages\pulp\solverdir\Cbc-releases.2.10.8-i686-w64-mingw32\bin\cbc.exe'
    solver = pulp.COIN_CMD(path=solverPath)
    model.solve(solver)
    
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1