1. A* パスファインディングはどのような問題を解決しますか?
最短経路を見つけるための計算プロセス中に、プレーヤーが障害物を回避するための最短経路を計算するために使用されます。
2. A* 経路探索の基本原理
A* アルゴリズムの基本ロジックは、開始点から開始し、並べ替えと比較のために周囲のノードを検索し、最良の点を取得し、その最良の点を新しい開始点として使用して再度検索および比較し、この検索ロジックを繰り返すことです。終点が見つかるまで検索は終了し、最短点が返されます。
3. A* 経路探索の詳細な原理
原則をベースに詳細を展開して最大のポイントを得るにはどうすればよいでしょうか?
経路探索のコストを計算する式は次のとおりです。F=G+H、G はノードから始点までの距離を表し、H はマンハッタン アルゴリズムによって取得されたノードから終点までの距離を表します。水平距離 + 垂直距離の値。ノードに G と H を追加して、総コストである F を取得します。
検索するたびに、始点の周囲のノードがオープン リストに追加され、比較により F 値が最も小さい最適な点が取得されます。周囲のノードをオープン リストに追加するたびに、判断を下す**
1.ブロックするか手放さないか
2. オープンリストまたはクローズドリストにあるかどうかに関係なく、リストに含まれている場合はリリースされません。そうでない場合はリリースされます。
最良の点を検索して取得し、最良の点を閉じたリストに追加し、保存するたびにその点が終点であるかどうかを判断し、終点であれば経路探索を終了し、そうでない場合は経路探索を続行します。
最短経路が得られたら経路探索は終了しますか?
リスト内のノードには F 値と現在のノードの親ノード ポインタが含まれており、親ノードは検索の開始点でもあり、ポインタを遡ることで最短パスが得られます。
それ以外の場合、それが行き止まり (終点全体を障害物が囲んでいる) の場合、継続的な検索プロセス中に、閉じたリストに格納されているノードの数が増加し、開いたリストは空になるまで減少します。 、終点に到達できないこと、つまり行き止まりを示します
1. パスファインディングの消費計算式
f=g+h
f (経路探索コスト) = g (始点からの距離) + h (終点からの距離)
g 値: (開始点の距離は固定アルゴリズムです)、グリッドの単位を 1 とすると、水平グリッドの距離は 1、斜めのグリッドは 1.4 (正三角形の斜辺) となります。
h 値: (マンハッタン ブロック アルゴリズム): x+y
2. リストを開く
開始点の周りのグリッドの経路探索によって消費される情報を保存するコンテナー。各グリッド情報には (f、g、h、現在のグリッドの親グリッド) が含まれます。
ソート後、最小の f 値を持つグリッド (最良の点) を見つけ、それを閉じたリストに格納します
周囲のポイントをオープンリストに入れるたびに、判断を下す必要があります
1.ブロックするか手放さないか
2. オープンリストにあるかクローズドリストにあるかに関係なく、そこにある場合は入れ、ない場合は入れない
3. リストを閉じる
最良の点を格納するコンテナは、最良の点がクローズドリストに追加されるたびに、その点が終点であるかどうかを判断する必要があります
「はい」の場合はパスファインディングが終了し、そうでない場合はパスファインディングが続行されます。
4. グリッドオブジェクトの親オブジェクト
この情報により、実際に検索パスを見つけることができます。特殊なケースでは、エンドポイントが最後に探索パスに戻るのは、終点から親ノードポインタを遡って最短パスを求めることです。
開いているリストが空の場合は行き止まりと判断します