通过 Constraints() 构造函数创建多个约束

问题描述 投票:0回答:1

我正在使用 _rule_function 来构建约束。 约束(model.S,model.T,model.sc,rule=_rule_function,doc='RestrictionX')

在其中,我想根据模型的参数返回多个约束。 规则函数循环遍历一系列列表,对于每个内部列表,我想创建一个单独的约束。在循环结束时,我将约束附加到一个数组,并让规则函数返回该约束数组。

这个过程在 pyomo 5.7 中可行吗? 我认为尝试返回许多约束的元组可能会导致问题。

我尝试返回一个约束元组和一个约束数组。 两个都没有成功。

在某些参数情况下,我添加了一个占位符约束 placeholder_constraint = 约束.跳过 area_constraints.append(placeholder_constraint)

目前的错误是: 错误:从 data=None 构造组件“cons_area_at_site”失败: 类型错误:无法将值“(1000,)”视为常量,因为它具有 未知类型“元组” 错误:从 data=None 构造组件“cons_area_at_site”失败: 类型错误:无法将值“(1000,)”视为常量,因为它具有未知类型“元组”

pyomo
1个回答
0
投票

我认为这种结构不可能做到这一点。函数规则概念旨在为函数中的每个索引项生成 1 个约束。它用于“为每个”制定约束。

您可能会考虑其他方法,例如制作约束列表并将其附加到任意循环结构内。

附注:如果您包含代码或一个可重现的小示例来解决您的问题,您将获得更好的帮助

© www.soinside.com 2019 - 2024. All rights reserved.