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ファイルに書き出したときに反映されるらしい。
詳しくは(英語だが)公式ドキュメントを参照されたし。