我正在尝试在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])
等。
有人知道如何解决这个问题吗?
答案 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)