私は現在、A *パスファインディングアルゴリズムを使用して、無限グリッド上のパスを計算しています(GridworldのUnboundedGridを使用して、AP CSのケーススタディを使用しています)。エンドノードが完全に壁に囲まれているために有効なパスが存在しない場合を除いて、すべてがうまく機能します。予想どおり、アルゴリズムは無限に検索を続け、エンドノードを見つけることはありません。
これに対する可能な解決策は、パスファインディング領域全体の周りに非表示の(ユーザーには表示されないがアルゴリズムには表示される)壁を配置し、開始ノード、終了ノード、およびすべての壁ノードがこれらの範囲内にあることを確認することです。壁、2〜3スペースのパディングなど。何かのようなもの:
_________________________________
| |
| S | |
| _____| _____ |
| | E | |
| |___| |
|_______________________________|
...最終的にすべてのノードがクローズドリストに追加され、オープンリストが空になり、その時点で有効なパスが存在しないことがわかります。
これは問題の合理的な解決策のように見えますか?これがうまくいかない可能性がある方法はありますか?別の解決策は、同時にエンドから逆方向にパスファインドすることであることを理解していますが、これは、特にエンドノードがそれほど緊密に囲まれていない場合、潜在的にコストがかかる可能性があるようです。