決定変数の種類#
jijmodeling
は、決定変数としてバイナリ変数BinaryVar
に加えて、整数変数IntegerVar
および連続変数ContinuousVar
をサポートしています。BinaryVar
とは異なり、IntegerVar
とContinuousVar
には下限と上限の設定が必要です。
import jijmodeling as jm
# 下限を0、上限を10とする整数変数
x = jm.IntegerVar("x", lower_bound=0, upper_bound=10)
# 下限を0、上限を2.5とする実数変数
y = jm.ContinuousVar("y", lower_bound=0.0, upper_bound=2.5)
また、jijmodeling
は範囲内の値または\(0\)を取る半整数変数および半連続変数もサポートしています。
# 区間[3, 10]または0を取る整数変数
sx = jm.SemiIntegerVar("x", lower_bound=3, upper_bound=10)
# 区間[0.5, 2.0]または0を取る実数変数
sy = jm.SemiContinuousVar("y", lower_bound=0.5, upper_bound=2.0)
変数の下限と上限には決定変数を含まないPlaceholder
または数値を設定することができます。
L = jm.Placeholder("Lower")
U = jm.Placeholder("Upper")
x = jm.IntegerVar("x", lower_bound=L, upper_bound=U)
y = jm.ContinuousVar("y", lower_bound=L/2, upper_bound=U*U)