【问题标题】:Pyomo sum inside sum with various indexPyomo sum inside sum 各种索引
【发布时间】:2018-11-18 23:06:30
【问题描述】:

我想这样做:

但我不知道具体如何,这是我尝试过的:

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)

【问题讨论】:

    标签: pyomo


    【解决方案1】:

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

    根据您编写约束的方式,您似乎有多个索引集(即本身在其他集上被索引的集),这通常是公式有点笨拙的症状,尽管有时是必要的。

    如果您要表达的是一个约束系统,即DAGRCU 的每个元素都有一个约束,并且集合PdA 的索引超过@987654328 @、GRCU

    那你应该写

    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)
    

    否则,您应该尝试使公式更清晰。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 2020-08-31
      • 2013-07-15
      • 2016-05-26
      • 1970-01-01
      相关资源
      最近更新 更多