Pyomo以不同方式设置索引变量的边界

时间:2018-05-31 19:29:48

标签: python modeling pyomo

我正在尝试在pyomo中创建一个索引变量,但我想以不同的方式设置各种索引的边界:

model.vProduct = Var(SC, N, G, bounds=(0, limit[g])

其中SC,N和G是范围,因此它有3个索引。 (哪个不起作用,因为像这样我为每个变量分配一个上限矢量)

现在我希望它像model.vProduct[SC, N, 0] bounds are (0, limit[0])等。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以将规则(a.k.a.一个Python函数)传递给bounds关键字来执行此操作

def _bounds_rule(m, sc, n, g):
    return (0, limit[g])
model.vProduct = Var(SC, N, G, bounds=_bounds_rule)