【发布时间】:2021-11-28 07:51:29
【问题描述】:
作为在创建具体模型时触发的 BuildAction 规则的一部分,我正在动态创建额外的“内部”决策变量(取决于构建时提供的数据)。
除了创建这些变量(在约束表达式中使用)之外,我知道我还需要将它们添加到模型中以避免“变量 'XXX' 不是模型的一部分被写出,而是出现在此模型上使用的表达式中。”错误。
VarList 类似乎是为此而设计的(类似于我已经成功用于动态创建约束的 ConstraintList 类)。但是,我找不到有关如何从预先创建的变量填充 VarList 的文档。我可以创建一个 VarList 并向其中添加变量,但这并不能让我控制变量的创建方式...
import pyomo.environ as pyo
self.vl = pyo.VarList()
newVar = self.vl.add() # this does not give me control over the variable creation
# and I can't set all required properties of newVar, once created
似乎我应该能够通过传递变量字典来创建 VarList,但我找不到说明其工作原理的文档或示例。
【问题讨论】: