1

使用言語は特に気にしません。

世界中のさまざまな航空座標の約 84.1k エントリの大規模なデータベースがあり、次のようにフォーマットされています。

A1 023 UBL 15.245197 104.865917
A1 024 BUTRA 15.418278 105.596083
A1 025 PAPRA 15.766667 107.183333
A1 026 BATEM 15.931389 107.765556
A1 027 DAN 16.052778 108.198333
A1 028 BUNTA 16.833334 109.395000
A1 029 LENKO 17.416667 110.300000
A1 030 IKELA 18.661667 112.245000
A1 031 IDOSI 19.000000 112.500000
A1 032 CH 22.219542 114.030056

最初の数字は航空路です(何百もあります)。2 番目の数値は、航空路のシーケンスに関して座標が保持する位置です。3 番目は修正の名前、4 番目と 5 番目は座標そのものです。

それを説明するより良い方法は、高速道路です。A1 が高速道路だとしましょう。UBL、BUTRA、PAPRA などはすべて出口です。023、024、025 は、これらの出口に遭遇する順序です (UBL は 22 の出口の後に表示されます。23 番目、次に BUTRA、24、次に PAPRA、25 であるため)。

ただし、これらの出口は、都市ではなく新しい高速道路につながります。たとえば、UBL 出口は

A1 023 UBL 15.245197 104.865917
G473 006 UBL 15.245197 104.865917
R470 001 UBL 15.245197 104.865917
W1 018 UBL 15.245197 104.865917
W4 031 UBL 15.245197 104.865917
W5 013 UBL 15.245197 104.865917

私の最終的な目標は、これらのポイントを使用して、これらの航空路を使用して 2 つの都市間の最短距離を見つけることです。しかし、それは私の問題ではありません。それはわかりますが、これを保持するためにどの構造を使用すればよいかわかりません。データを整理するには何らかの構造が必要だと最初に提案したのは、私のプログラミングの先生でした。

私は考えています..最初と最後のポイントを利用できるようにするので、リストを検索して、そのポイントがつながる可能性のあるすべての「高速道路」を取得し、A* のようなものを使用して最短経路を見つけます。いくつかの距離制限を使用して分岐の数を制限します。ただし、前述のとおり、どのデータ構造を使用するかは不明でした。

どんな助けでも感謝します。

4

1 に答える 1

0

PM1 Quadtreeのような空間データ構造を使用する必要があります。

また、 PM2 QuadtreeおよびPM3 Quadtreeに対しても評価して、どちらが制約に適しているかを確認する必要があります。

于 2012-03-28T05:40:18.700 に答える