4

グラフ内のすべてのノードにポテンシャルを割り当て、このポテンシャルを下げようとする障害物回避アルゴリズムをMatlabに実装しました(パスプランの目標はグローバル最小値にあります)。現在、極小値が表示される可能性があるため、(グローバル)計画にはこれらから抜け出す方法が必要です。私はこの戦略を使用して、すでにアクセスしたノードから到達可能なオープンノードのリストを作成しました。次に可能性が最も低いオープンノードにアクセスします。

これをC++で実装したいのですが、BoostGraphにそのようなアルゴリズムがすでにあるのではないかと思います。そうでない場合-アルゴリズムを自分で作成する必要がある場合、このライブラリを使用する利点はありますか。また、グラフが大きすぎて隣接リスト/エッジリストとしてメモリに保存できないため、独自のグラフクラスを作成する必要があります。

アドバイスをいただければ幸いです。

4

2 に答える 2

4

boost::graph最短経路/コスト最小化アルゴリズムのリストを提供します。次のことに興味があるかもしれません: ダイクストラ最短経路A*
アルゴリズムは簡単にカスタマイズできます。それがあなたのニーズに正確に合わない場合は、訪問者の概念を見てください。これにより、事前定義されたイベントポイントでアルゴリズムをカスタマイズできます。

最後に、分散BGLは巨大なグラフ(潜在的に数百万のノード)を処理します。グラフがメモリに収まらない場合に機能します。

Boostグラフライブラリの概要については、こちらをご覧ください。そしてもちろん、stackoverflowのBGLについてより具体的な質問をすることを躊躇しないでください。

于 2010-11-16T23:34:02.027 に答える
1

私の考えでboost::graphは、さまざまなデータホルダー、アダプター、および一般的に使用されるもの(明らかに、新しく構築されたアルゴリズムの一部として使用できる)を提供するため、新しいアルゴリズムを実装するのに非常に優れています。

最後のものも訪問者の使用法や他のスマートなパターンのためにカスタマイズ可能です。

実はboost::graph慣れるまで少し時間がかかるかもしれませんが、私の意見ではそれだけの価値はあります。

于 2010-11-14T20:23:12.970 に答える