Pyomo 约束函数:在函数中嵌入 if-else 还是在表达式中创建新的二进制参数哪个更昂贵?

Pyomo constraint function: Which is more expensive, embedding if-else within the function or create a new binary parameter in the expression?

提问人:kelly_dias_00 提问时间:11/9/2023 最后编辑:kelly_dias_00 更新时间:11/9/2023 访问量:19

问:

在为具有时间序列(8760 步长)索引的 pyomo 模型创建约束定义时,需要省略表达式的某些部分,以用户定义的输入 (True/False) 为条件

(a) def balance(model, t): if grid: return ...否则:返回......

(b) model.gridBinary = pyo。参数(within=pyo.二进制,initialize=user_input)

def balance(model, t): 返回 model.gridBinary * (网格相关变量) + ...

在 (a) 中,程序是否会在每 8760 步中执行一次 if-else 检查,并导致比 (b) 更昂贵的运行?哪个版本反映了更好的编程实践?

两者都尝试过,但结果 (b) 比 (a) 跑得快

if-语句 优化 二元 约束 pyomo

评论


答: 暂无答案