PYOMO: индексирование набора кортежей

Я хочу создать индексирующий набор кортежей, то есть если я это сделаю: LINEAS_DOWNSTREAM_BARRA[1] Я хочу увидеть [(1,3),(1,2),(1,4)].

Мой код:

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: значение = (1, 2) является кортежем для set = LINEAS_DOWNSTREAM_BARRA, размер которого равен 1

Спасибо!!


person Psanba    schedule 09.03.2017    source источник


Ответы (1)


Вы должны объявить Set m.LINEAS_DOWNSTREAM_BARRA в одной строке. Также убедитесь, что ваша лямбда-функция возвращает список кортежей.

m.LINEAS_DOWNSTREAM_BARRA = Set(m.BARRAS, dimen=2, initialize=your_lambda_fcn)
person Bethany Nicholson    schedule 09.03.2017