【问题标题】:Conditional Constraint Linear Program in Python's Pulp ModulePython 的 Pulp 模块中的条件约束线性规划
【发布时间】:2016-07-06 14:14:32
【问题描述】:

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

【问题讨论】:

    标签: python constraints linear-programming pulp


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      相关资源
      最近更新 更多