【发布时间】:2018-05-11 11:01:41
【问题描述】:
我有以下优化问题:
以为准
其中 = {0,1}(二进制变量)。
当我在 Pulp 中实现这一点时:
from pulp import *
x1 = pulp.LpVariable('x1', cat=LpBinary)
x2 = pulp.LpVariable('x2', cat=LpBinary)
x3 = pulp.LpVariable('x3', cat=LpBinary)
x4 = pulp.LpVariable('x4', cat=LpBinary)
prob = pulp.LpProblem('x1+x2+2*x3+x4', pulp.LpMaximize)
prob += lpSum([x1, x2, 2*x3, x4])
prob += lpSum([x1, x2, x3, x4]) == 2
prob.solve()
我得到了、、 和 的解决方案。但是,我想禁止此解决方案,在 Pulp 中添加另一个约束为 :
prob += lpSum([x1, x3]) < 2
但我没有得到一个好的解决方案,因为我在 prob.solve() 中有一个虚拟变量。我应该使用另一个约束还是我做错了什么?
【问题讨论】:
标签: mathematical-optimization linear-programming pulp