我在pyomo中定义了一个函数,如下所示:
def func(model,i):
alpha = (model.a[i]+model.b[i])/2
X = model.W1[i] if i in model.Vc3 else model.W2[i]
return fuzz.trimf(np.array([X]), [model.a[i], alpha, model.b[i]])
model.func = Expression(model.VcT, rule = func)
def Cons003(model,i):
return model.Mu[i] - model.func(model,i) <= M * (1- model.P[i])
model.Cons003 = Constraint(model.VcT , rule = Cons003)
def Cons004(model,i):
return model.Mu[i] - model.func(model,i) >= M * (1- model.P[i])
model.Cons004 = Constraint(model.VcT , rule = Cons004)
当我执行代码时,我得到如下错误提示:
未初始化的NumericValue对象没有值
model.W1[i]
和model.W2[i]
是问题变量。
我该如何解决这个问题?
您可以在here中找到模型和数据文件。