サブロウ丸

Sabrou-mal サブロウ丸

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

pulp

SCIP version 8.0.3 コンパイル + おまけでpulpから実行

SCIP: https://www.scipopt.org/は言わずと知れたLP、MIPソルバ。 このプロジェクトにはfscip: https://ug.zib.de/も同封されています。これはSCIPのスレッド並列版ソルバです。 Environment Ubuntu 18.04.2 LTS Build unzip scipoptsuite-8.0.3.zip cd scip…

pulp: 制約追加の高速化

環境 >>> import pulp >>> pulp.__version__ '2.5.1' 本文 制約を大量に追加する場合 例えば; を追加した場合、下記のコードだと実行時間 28.81 s かかります。(f(i)は実数を返す何かしらの関数) prob = pulp.LpProblem() # 変数の生成 x = [pulp.LpVariable…

pulp制約の削除, 入れ替え

pulpにおける動的な制約の削除, 入れ替えのサンプルコード gist.github.com

pulpとamplifyの相互変換

Qiitaに記事を投稿しました qiita.com

【Python】pulp, CPLEXで並列数指定

pulpでsolverとしてCPLEXを指定する場合, 並列数はDefault設定では使用可能なthread数を全て使用する設定になっています. 並列数を自分で指定したい場合は, 以下のようにすれば良いです. import pulp class MyCPLEX(pulp.CPLEX): def __init__(self, mpi=Tru…

【Python】PuLP; 多段階最適化

まだ PuLPのdocumentに載っていない(執筆時)関数ですが sequentialSolveという多段階最適化を行う関数が実装されています import pulp from pulp import LpVariable # 問題の宣言 problem = pulp.LpProblem() # 変数の宣言(連続変数, 上限2) x = LpVariable(…

Pulp ソルバー選択 / 並列計算 (python)

Pulpについて Pulp は線形計画問題を解く Python パッケージです. install pip install pulp pulpの処理フロー Pulpについて 使用できるソルバ一覧 CBC CBC > オプション(並列計算など) CBC > 自分でインストールしたCBCソルバーを使用する CBC > 1. 公式サ…

pulp エラー集

pulp solvers.PulpSolverError pulp.solvers.PulpSolverError: Pulp: Error while executing /usr/local/lib/python3.6/site-packages/pulp/solverdir/cbc/osx/64/cbc このエラーが起きた時は, ソルバー自体の問題ではなく、宣言した変数名LpVariable(name='…