Python的Pulp模块中的条件约束线性程序

时间:2016-07-06 14:14:32

标签: python constraints linear-programming pulp

有没有办法在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。

1 个答案:

答案 0 :(得分:1)

这不是线性的。有一种方法可以使用其他二进制变量y(i)

x(i) >= 5 y(i)
sum(i, y(i)) >= 10

(注意:我假设x(i)是非负变量)。