import pulp prob = pulp.LpProblem('sample') # 変数の定義 x = pulp.LpVariable('x', lowBound = 0) y = pulp.LpVariable('y', lowBound = 0) # 目的関数 prob += x + y + 1 # 制約条件 prob += 3 * x + 5 * y <= 15 prob += 2 * x + y >= 4 prob += x - y == 1 print(prob) # 実行 status = prob.solve(pulp.PULP_CBC_CMD(msg=0)) print("Status", pulp.LpStatus[status]) # 結果の表示 print("Result") print("x", x.value()) print("y", y.value()) print("z", prob.objective.value())
- 数理モデルオブジェクト
prob = LpProblem(name='NoName', sense=LpMinimize)
- name : 名前
- sense : LpMinimize (最小値を求める), LpMaximize (最大値を求める)
- 変数定義
var = LpVariable(name, lowBound=None, upBound=None, cat='Continuous')
- name: 変数名
- lowBound: 変数の下限値, None で -∞
- upBound: 変数の上限値, None で ∞
- cat: 変数の種類
- Continuous, 実数
- Integer, 整数
- Binary, 0 または 1
- 目的関数と制約条件の指定
- 演算
- 参考: