有没有办法在python中添加一个约束,将所有变量计算在5以上,并且要求计数大于10?我目前有以下代码,但它只调用一次函数;
def min_qty_constraint(vars):
count = 0
for v in vars:
if v.varValue > 5 :
count += 1
print count
return -count
prob = pulp.LpProblem('problem',pulp.LpMaximize)
prob += min_qty_constraint(vars) <= 10
所以例如,如果我有vars = [x1,x2,..,x20]其中xi是纸浆.Lpvariable和x1,..,x10 = 6那么这些变量中的10个大于5因此满足至少10个变量的值大于5。
答案 0 :(得分:1)
这不是线性的。有一种方法可以使用其他二进制变量y(i)
:
x(i) >= 5 y(i)
sum(i, y(i)) >= 10
(注意:我假设x(i)
是非负变量)。