如何解决我们可以在 Pyomo 的规则中定义约束或扩展约束列表吗?
对于一个问题,我需要在一些特定的时间点定义多个约束,我想知道这样的事情是否可能:
def rule_c(m,t):
if x[t] == 0: # x is not a variable,but a kNown parameter (dictionary)
return Constraint.skip()
elif (x[t] == 1) & (x[t-1] == 0):
m.new_constraint = Constraint(rule= lambda m: m.var[t] == 0.3)
elif (x[t] == 1) & (x[t+1] == 0):
m.new_constraint_2 = Constraint(rule= lambda m: m.var[t] == 0.8)
return m.var[t+1] == m.var[t] + m.other_var[t]/100
model.constraint = Constraint(model.T,rule = rule_c)
或者是否可以使用 ConstraintList?
m.new_constraint = ConstraintList()
m.new_constraint_2 = ConstraintList()
def rule_c(m,t):
if x[t] == 0:
return Constraint.skip()
elif (x[t] == 1) & (x[t-1] == 0):
m.new_constraint.add(m.var[t] == 0.3)
elif (x[t] == 1) & (x[t+1] == 0):
m.new_constraint_2.add(m.var[t] == 0.8)
return m.var[t+1] == m.var[t] + m.other_var[t]/100
model.constraint = Constraint(model.T,rule = rule_c)
如果您希望我提供有关问题的更多详细信息,请告诉我!包括常量作为示例,这里的 x 是一个已知的字典。
如果您有其他技巧,请告诉我!我可以把它分成 2 条规则吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。