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] 삭제
몇 마디 만하겠습니다