【发布时间】:2023-02-23 01:52:21
【问题描述】:
我正在与 pyomo 合作,我对它真的很陌生。我一直在尝试解决一个小问题,但我不断收到此错误,尽管我遵循了在这里发现的大量更正和建议,但仍然无法正常工作,有人知道此错误的含义吗:KeyError: "Index '(None, 0)' 对索引组件 'sigma' 无效”?西格玛是我的变量。我检查了看起来像我的可用问题,但没有解决任何问题
我将把代码和错误放在下面, 谢谢
波纹管是我当前的代码:
from pyomo.environ import *
import numpy as np
model = ConcreteModel()
def flatten(l):
return [item for sublist in l for item in sublist]
matrix = numpy.array(matrixnw)
liste=flatten(myd.values())
def W_init(model, i, j):
return matrix [i,j]
def W_init1D(model, i):
return liste [i]
model.i = Set(initialize=range(0,3), doc='paths')
model.j = Set(initialize=range(0,15), doc='subflows')
model.capa = Param(model.i, initialize=W_init1D)
model.routing = Param(model.i, model.j, initialize=W_init)
model.sigma = Var(model.i, model.j, within= NonNegativeReals)
def limite(model, i):
return sum(model.sigma[i,j]*model.routing[i,j] for j in model.j) <= model.capa[i]
model.limite = Constraint(model.i, rule=limite)
错误图片:
我期待模型接受约束,因为我对目标函数使用相同的编写方式(定义一个函数然后在目标函数中调用它)并且它没有显示任何错误
【问题讨论】:
标签: indexing model pyomo concrete