Pyomo 以不同方式设置索引变量的界限
Pyomo Setting bounds of indexed variables differently
我正在尝试在 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])
等
有人知道如何解决这个问题吗?
您可以将规则(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)
我正在尝试在 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])
等
有人知道如何解决这个问题吗?
您可以将规则(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)