Pyomo : JSON 아카이브에서 3 차원 집합 데이터로드 오류 : 인덱싱 된 집합으로 구성 요소를 인덱싱 할 수 없습니다.

다마로

pyomo 라이브러리의 추상 모델에는 세 가지 세트가 있는데, 각각은 이전 세트에 따라 다른 차원 크기를 사용합니다.

model.V = pyo.Set()
model.P = pyo.Set(model.V)
model.m = pyo.Set(model.V, model.P)

JSON 파일에서 Set 값을로드하려고하면 다음 예외가 발생합니다.

TypeError: Cannot index a component with an indexed set

다음은 JSON 파일의 코드입니다.

{
"V" : [1, 2, 3],
"P" : {"1": [1, 2],
       "2": [1, 2, 3],
       "3": [1]},
"m" : {"1": [{"1": [1, 2],
              "2": [1, 2, 3, 4]}],
       "2": [{"1": [1],
              "2": [1, 2],
              "3": [1, 2, 3]}],
       "3": [{"1": [1, 2, 3, 4, 5, 6]}]}
}

Traceback이 나를 model.m = pyo.Set(model.V, model.P)라인 으로 안내하기 때문에 문제가 JSON 파일의 m 정의 때문이라고 생각합니다 .

표모 데이터 포털 문서를 확인 했는데 3D JSON 데이터에 대한 정보가 없습니다.

3 차원 m 집합의 정의에서 오류가 무엇인지 아는 사람이 있습니까?

다마로

내 문제의 오류를 해결했습니다. 세트의 가능한 모든 인덱스를 증명해야한다는 것을 알았습니다.

이것은 세트 정의입니다

model.V = pyo.Set()
model.P = pyo.Set(dimen=2)
model.m = pyo.Set(dimen=3)

그리고 이것은 JSON 파일입니다.

{
"V" : [1, 2],
"P" : [[1, 1], [1, 2],
       [2, 1], [2, 2]],
"m" : [[1, 1, 1], [1, 1, 2],
       [1, 2, 1],
       [2, 1, 1], [2, 1, 2],
       [2, 2, 1]]
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관