【问题标题】:pyomo constraints section missingpyomo 约束部分丢失
【发布时间】:2017-08-24 16:35:19
【问题描述】:

我不熟悉使用 pyomo 并遇到以下错误: /var/folders/dk/932rtpm52sg0jdzzkz81mhn00000gn/T/tmp7Psz4a.pyomo.lp:5:缺少约束部分

我的约束是:

matrix_bis = np.ones((size_node, size_node))
c11_param = matrix_bis.copy()
c11_param = np.tril(c11_param)
param11 = np.dot(c11_param, m.Y)

# Constraints
def c11_rule(m,j):
    for e in node_set:
        return (data.ix[e, 'cp_min'], c11_param[e,j]*m.Y[e], data.ix[e, 'cp_max']/interval)
    else:
        return pe.Constraint.Skip
m.c11 = pe.Constraint(node_set, rule = c11_rule)

非常感谢任何帮助。

【问题讨论】:

    标签: python optimization scipy linear-programming pyomo


    【解决方案1】:

    我不确定这是否是您的错误的原因,但我看到的第一个问题是您不需要约束规则内的 for 循环。通过将约束声明为对 node_set 的索引,该规则将自动为 node_set 中的每个值调用一次。看起来你正在区分 c11_param 中的索引“e”和索引“j”,所以我猜你想索引 node_set 的叉积上的约束。您也不需要 Constraint.Skip。也许是这样的:

    def c11_rule(m, j, e):
        return (data.ix[e,'cp_min'], c11_param[e,j]*m.Y[e], data.ix[e, 'cp_max']/interval)
    m.c11 = Constraint(node_set, node_set, rule=c11_rule)
    

    【讨论】:

      猜你喜欢
      • 2021-09-12
      • 2020-09-07
      • 1970-01-01
      • 2018-05-29
      • 2018-06-18
      • 2018-07-22
      • 2017-12-31
      • 2021-03-06
      • 1970-01-01
      相关资源
      最近更新 更多