Local Optima

数理最適化を趣味的に楽しむ。

python-mip.Model.add_constr について

本日もPython MIPの話題だが,その前に,PuLPの話から。

PuLPのモデルに制約を追加するときの記法

# PuLP
model += 2*x + 3*y<= 6

という記法が,個人的にあまり好みでない。完全に好みの問題だ。

Python MIPでは,もともとPuLPに触発されて開発が始まったという経緯もあるそうなので,PuLP流の書き方もできるし,モデルオブジェクトがadd_constr()という関数を公開しているので,

#python-mip
model.add_constr(2*x + 3*y <= 6)

という,gurobipy風の書き方が可能である。(これを薦めている人があまり見当たらないが。)

ついでに言えば,

#python-mip
model.add_constr(2*x + 3*y <= 6, name='hogehoge')

のように,制約オブジェクトに名前をもたせることができ,これは,.lpや.mpsファイルに書き出したときに反映されるらしい。

詳しくは(英語だが)公式ドキュメントを参照されたし。

docs.python-mip.com