CBCソルバー(デフォルト)並列処理
pythonの線形計画法ソルバーpulp
を並列で計算する方法です。
例えば、4スレッドで実行するなら
import pulp prob = pulp.LpProblem(sense=pulp.LpMinimize) (省略) prob.solve(pulp.PULP_CBC_CMD(threads=4))
と書きます。
PULP_CBC_CMDには他にもオプションを入れることができます。
PULP_CBC_CMD(path=None, keepFiles=0, mip=1, msg=0, cuts=None, presolve=None, dual=None, strong=None, options=[], fracGap=None, maxSeconds=None, threads=None)
CBCのdefaultでは
presolve = 1, cunts = 1, strong=5となっています。
なお, msg = 1 とすれば実行途中のログを出力できます。
ソルバー選択
問題を解く際に他のソルバーを使用することもできます。
prob.solve(pulp.GUROBI()) # 例えばGUROBI
使用できるソルバーは
pulp.pulpTestAll()
で確認できます。
より詳しく知りたい場合はpulpの公式ドキュメンテーションをどうぞ。
https://pythonhosted.org/PuLP/solvers.html?highlight=solvers#module-pulp.solvers