ノードである既知のポイントAとBの間の最短ルートを見つけることができ、それらが他のノードに接続されているパス検索アルゴリズムを探しています。
私の場合、約20,000のノードがあり、それぞれが最大16の接続(リンク)を持つことができます(つまり、ノードAがノードBに接続されている場合、ノードBがに接続されているわけではありません)ノードA、これは右車線運転と左車線運転用で、高速道路用です)
問題を回避するために、これが私が接続で意味することのイメージです(指示されたものと一緒に):
マップの例:
ここでのAからDへの最短ルートはA->C->Dであり、DからAへの最短ルートはD->Aです。
私は各リンク間のすべての距離を知っており、負の距離はありません。(ノードのXYZ位置をすべて知っているため)
要するに:
-私の場合、CまたはC ++(両方を使用できます)で最速のアルゴリズムは何でしょうか?
-もちろん、ルートを取得する必要がありますが、ポイントAからポイントBまでの距離を(計算/または)取得する必要もあります)
-私のニーズに対応できるライブラリはありますか
-オプション:このためのマルチスレッド(サポート)を備えたライブラリはありますか(ある場合はどれですか)?
-利用可能なコード例はありますか?
私がこの質問をする理由は、非常に遅いコードを改善したいからです。現在ダイクストラが使用されており、この状況に対応していないため、コードを書き直してやりたいと思います。
私が現在使用しているコードは次のとおりです。
https://gpb.googlecode.com/files/RouteConnector_180.zip
また、コードの実際の使用例を次に示します。