pyomo.environ을 사용하여 LP 모델을 만들려고했습니다. 그러나 세트를 만드는 데 어려움을 겪고 있습니다. 내 문제는 두 세트를 만들어야합니다. 하나의 집합은 여러 노드의 집합이고 다른 집합은 노드 사이의 여러 개의 호에서 온 집합입니다. Networkx를 사용하여 노드와 호를 저장하여 네트워크를 만듭니다. 노드 데이터는 (경도, 위도)처럼 튜플 형식으로 저장됩니다. 호는 (nodeA, nodeB)로 저장됩니다. 여기서 nodeA와 nodeB는 둘 다 튜플의 좌표입니다.pyomo.environ 모듈에서 2 차원 집합 객체를 만드는 방법
그래서, 노드가 같은 것입니다 : 호이며,
(-97.97516252657978, 30.342243012086083)
가 뭔가 같은 :
((-97.97516252657978, 30.342243012086083), (-97.976196300350608
# import pyomo.envrion as pe
# create a model m
m = pe.ConcreteModel()
# network is an object I created by Networkx module
m.node_set = pe.Set(initialize= self.network.nodes())
m.arc_set = pe.Set(initialize= self.network.edges())
을 : 30.34247219922803))
나는 세트를 만들려고하는 방법은 다음과 같습니다
그러나 arc_set에 오류 메시지가 계속 나타납니다.
ValueError: The value=(-97.97516252657978, 30.342243012086083,
-97.976196300350608, 30.34247219922803) does not have dimension=2,
which is needed for set=arc_set
필자의 arc_set이 두 개가 아닌 하나의 튜플로 바뀌었다. 그런 다음 노드와 호를 문자열로 변환하려고했지만 여전히 오류가 발생했습니다. 누군가 나에게 힌트를 보여줄 수 있습니까? 또는이 버그를 어떻게 삭제합니까? 감사합니다.