pyomo.environ を使って LP モデルを作ってみました。しかし、セットを作るのに苦労しています。私の問題では、2 つのセットを作成する必要があります。1 つのセットは一連のノードからのもので、もう 1 つはノード間の複数のアークからのものです。Networkx を使用してネットワークを作成し、ノードとアークを保存します。ノードデータは (経度、緯度) のようにタプル形式で保存されます。アークは (nodeA, nodeB) として保存されます。ここで、nodeA と nodeB は両方ともタプルの座標です。
したがって、ノードは次のようなものです。
(-97.97516252657978、30.342243012086083)
そして、弧は次のようなものです:
((-97.97516252657978, 30.342243012086083), (-97.976196300350608, 30.34247219922803))
セットを作成しようとした方法は次のとおりです。
# 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())
しかし、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 が 2 つではなく 1 つのタプルになったのは奇妙だと思いました。次に、ノードとアークを文字列に変換しようとしましたが、それでもエラーが発生しました。誰かヒントを教えてくれませんか?または、このバグをどのように削除しますか? ありがとう!