2017-03-09 6 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

m.LINEAS_DOWNSTREAM_BARRA를 한 줄로 선언해야합니다. 또한 람다 함수가 튜플의 목록을 반환하는지 확인하십시오.

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