2017-04-12 67 views
0

我想用pyomo.environ进口*和有这样的代码:错误:不是有效的数组帕拉姆

## Define sets ## 
model.i = Set(initialize=i_set) 
model.p = Set(initialize=j_set) 

## Define parameters ## 
model.precedence = Param (model.i, initialize=precedence, doc='precedence relationship') 
model.duration = Param (model.p,initialize=duration,doc='duration') 


## Define variables ## 
model.x = Var(model.i, within=NonNegativeReals) 
model.z = Var(within=NonNegativeReals) 

,但我给了我这个错误:

ERROR: Constructing component 'duration' from data=None failed: 
    KeyError: "Error setting parameter value: Index '42' is not valid for array Param 'duration'" 
Traceback (most recent call last): 
    File "D:\0.- MS CM UH\3.- Data Analysis in CM\hwk#7\Exercise 9.5.py", line 33, in <module> 
    model.duration = Param(model.p,initialize=duration,doc='duration') 

我已经定义参数参数。我不知道为什么我有这个错误。

回答

0

您对duration初始化程序的定义是什么? j_set怎么样?错误几乎肯定是因为duration对象(一个dict?)有一个密钥(42),它不在j_set中用于初始化model.p