2017-03-09 78 views
0

我想創建一個元組索引集,我的意思是如果我這樣做: LINEAS_DOWNSTREAM_BARRA[1]我想查看[(1,3),(1,2),(1,4)]PYOMO:元組索引集

我的代碼是:

m=ConcreteModel() 
m.BARRAS = Set() 
m.LINEAS_DOWNSTREAM_BARRA = Set(dimen = 2) 

m.LINEAS_DOWNSTREAM_BARRA = Set(m.BARRAS, initialize=lambda m, i: 
set(tuple(z) for z in m.LINEAS if (i == z[0]))) 

而問題是:

ValueError: The value=(1, 2) is a tuple for set=LINEAS_DOWNSTREAM_BARRA, which has dimen=1

謝謝!

回答

1

您應該在一行中聲明Set m.LINEAS_DOWNSTREAM_BARRA。此外,請確保您的lambda函數返回列表元組

m.LINEAS_DOWNSTREAM_BARRA = Set(m.BARRAS, dimen=2, initialize=your_lambda_fcn)