2.2.6. 整数変数

ここまでは,運転日数を連続変数とみなして解いてきました. しかし実際には油田は 1 日単位でしか運転できません. そこで,運転日数を 1 日単位の整数変数とした,整数計画問題を解くことを考えます. そのために,変数(運転日数)の宣言を以下のように変更します.:

from pysimple import Problem, Element, Parameter, Variable, Sum

from pysimple import Problem, Element, Parameter, IntegerVariable, Sum
# 油田 i の運転日数(変数)
x = Variable(lb=0, ub=5, index=i, name='油田の運転日数')

# 油田 i の運転日数(変数)
x = IntegerVariable(lb=0, ub=5, index=i, name='油田の運転日数')

IntegerVariable で整数変数を宣言します. 整数変数として宣言された変数は,値として整数のみを取ります.以上で変更完了です.

実行すると,以下の結果が得られます.:

油田の運転日数[0].val=2.0
油田の運転日数[1].val=3.0
製品の生産量[重油].val=15
製品の生産量[ガス].val=26
全運転コスト.val=840

運転日数が整数になっているのが確認できます. このように変数を IntegerVariable で宣言するだけで,整数計画問題を記述することができます.

このモデルは PySIMPLE のサンプルとして同梱されています. このサンプルを実行するには次のようにします.:

$ python -m pysimple.sample.tutorial oil6