我正在尝试使用 Python 上的 GLPK 求解器在 PuLP 上使用混合整数线性规划来解决优化问题。到目前为止,我已经成功地解决了具有约束的基本优化问题,例如:
prob = LpProblem("MILP", LpMinimize)
x1 = LpVariable("x1",lowBound=0, cat = 'Binary')
x2 = LpVariable("x2", cat = 'Continuous')
prob += 4*x1 + x2, "Objective Function"
prob += x2 - 4*x1 <= 0
prob += x2 - 2*x1 >= 0
status = prob.solve()
LpStatus[status]
value(x1), value(x2), value(prob.objective)
Run Code Online (Sandbox Code Playgroud)
这给出了最佳结果,其中 x1 = 1.0、x2 = 3.0 和目标函数 = 7.0
我想弄清楚的是如何解决具有if条件的优化问题,例如,以下约束:
x1 > 0 IF x2 > 2
Run Code Online (Sandbox Code Playgroud)
或类似的东西:
x1 > 0 IF x2 == 3
Run Code Online (Sandbox Code Playgroud)
基本上,如何将 if …