1

A *を使用すると、ゴールに最も近い最適なノードが選択されますか?(f(n)= g(n)+ h(n)を使用)(h(n)にマンハッタン距離を使用)

しかし、スタートとゴールの間に壁があるとしたらどうでしょう。言葉では説明できませんが、写真をお見せします。

A *がゴールに最も近いノードを選択した場合、パスが赤で囲まれたパスではないのはなぜですか?しかし、緑で囲まれたもの。特に通行できないセル/タイル/ノードなどがある場合、私はA*を本当に理解していません。(壁)。また、私がこのビデオhttp://www.youtube.com/watch?v=DINCL5cd_w0(パスファインディングアルゴリズム(A *、ダイクストラ、双方向BFS))で作成したこの写真を1:20で見ることができます。

4

2 に答える 2

3

A *は、現在のパスの長さとゴールまでの距離も考慮します。可能なすべてのパスが拡張されますが、次のパスが優先されます。

  1. ゴールに最も近い
  2. 最短

パスコストf(n)は、前のステップのコストg(n)に、ゴールまでの距離に基づく係数h(n)を加えたものに等しくなります。したがって、パスが通過する余分なグリッドスペースごとに、パスのコストが増加します。これにより、短いパスと、ゴールに直接移動するパスのバランスが効果的に作成されます。

したがって、例のパスが再び結合するまでに、最も短いのは紫色のパスであり、それが最初に展開され、最終的に最初にゴールに到達するパスになります。

Udacityコースがあります:A *(および同様の)アルゴリズムに関する優れたセクションがあるロボットカーのプログラミング。

于 2012-06-14T14:42:53.733 に答える
2

あなたが述べたように、A *はf(n)= g(n)+ h(n)に基づいて現在の最良のパスを選択します。ここで、g(n)は現在計算されたコストであり、h(n)は残りのコストの推定値です。現時点で最も有望なノード(f(n)が最小のノード)のみが展開されます。したがって、青と紫のパスが分岐すると(ポイントAと呼びます)、h(n)が小さくなり、f(n)全体が小さくなるため、壁に向かってまっすぐ進みます。

h関数は通常、問題の緩和であることに注意してください。あなたの場合、それはおそらくゴールまでの直線距離です。したがって、f全体が小さくなります。現在のfが、追跡されていないパスに対して行われた推定よりも大きくなる場合は、別のパスが検討されます。

したがって、紫色のパスを通過しない可能性のある理由は、青色のパスのすべてのポイントでのfの現在の値が、紫色のパスの値よりも常に小さいためです。

これは私にとって非常に奇妙なことです。なぜなら、gは常に増加しており、青いパスにはポイントAよりもゴールから離れたポイントがたくさんあるからです。それでも、確認したい場合は、各値のデバッグと検証を行う必要があります。現在のパルスパスの値に対する、追跡されていないすべてのポイントでのf、g、およびhの値。

于 2012-06-14T14:51:16.250 に答える