Pyomo总和内各种指标的总和

时间:2018-11-18 23:06:31

标签: pyomo

我想这样做:

enter image description here

但是我不知道怎么做,这就是我尝试过的:

def R2(model, da, gr, cu):
    return sum(sum(model.Dap[asi, pe] for asi in model.A[asi, gr, cu]) for pe in model.Pd[pe, da]) <= 1
model.R2 = Constraint(model.DA, model.GR, model.CU, rule=R2)

1 个答案:

答案 0 :(得分:0)

我不是100%理解您的数学公式。

根据编写约束的方式,您似乎有多个索引集(即,它们本身在其他集上建立索引的集),尽管有时是必要的,但这通常是表示该公式有点笨拙的征兆。

如果您要表达的是一个约束系统,即DAGRCU的每个元素以及集合PdADAGRCU上建立了索引:

equations system

那你应该写

def R2(model, d, g, c):
    return sum(sum(model.Dap[p] for a in model.A[g, c]) 
               for p in model.Pd[d]) <= 1

model.R2 = Constraint(model.DA, model.GR, model.CU, rule=R2)

否则,您应该尝试使表述更加清晰。