0

ブースト グラフ ライブラリの使用を開始しています。astar_search を使用してゼロ コストで実装できるベスト ファースト検索が必要です。(間違っていたら訂正してください。)

しかし、これを行う別の可能性があるのだろうか?コストが考慮されていない場合、アルゴリズムはわずかに効率的になります。

編集: 説明がわかりにくくてすみません。私は実際に潜在的なフィールド検索を実装しているので、エッジに関連するコスト/重みはありませんが、最急降下検索を行う必要があります (局所最小値を克服できます)。

ヒントをありがとう!

4

3 に答える 3

1

A* を使用してこれに取り組むことができます。g(x)ではなくh(x)を 0 にする必要があります。A* によって定義される F に基づいてノードを評価します。

F(n) = g(n) + h(n).

TotalCost = PathCost + Heuristic.

g(n) = パス コスト、初期状態から現在の状態までの距離

h(n) = ヒューリスティック、現在の状態から最終状態までのコストの見積もり。

ウィキペディアから:

最良優先探索アルゴリズムの別の例としてのダイクストラのアルゴリズムは、すべての x に対して h(x) = 0 である A* の特殊なケースと見なすことができます。

于 2010-12-20T17:03:00.300 に答える
1

C++ に慣れている場合は、YAGSBPLを試すことをお勧めします。

于 2011-04-16T20:03:14.540 に答える
0

Aphexの回答で示唆されているように、ダイクストラのアルゴリズムを使用することをお勧めします。エッジの重みを設定する1つの方法は、が非負であると仮定して、に設定w(u, v)することです。potential(v) - potential(u)ダイクストラのアルゴリズムは、エッジの重みが正であり、ソースノードから離れるにつれて距離が増加することを前提としています。最小のポテンシャルを探している場合は、減算の側面を反転します。上下両方の可能性がある場合は、ベルマンフォード法のようなものを使用する必要があるかもしれませんが、これは最善ではありません。

于 2011-01-21T05:50:29.553 に答える