私は現在、無限グリッド上のパスを計算するためにA *経路探索アルゴリズムを使用しています(GridWorldのUnboundedGrid、AP CSのケーススタディ、誰にも役立つ場合)。エンドノードが完全に壁に囲まれているため、有効なパスが存在しない場合を除いて、すべてが素晴らしく機能します。予想どおり、アルゴリズムは無限に探索を続け、エンドノードを見つけることはありません。私の経路探索エリアの周りに境界線を置くことは許容されますか?
可能な解決策は、開始ノード、終了ノード、およびすべての壁を確認しながら、不可視(ユーザーは表示されていませんがアルゴリズムはそうしているように)、経路探索領域全体の壁を配置することですノードはこれらの壁の中にあり、2〜3個のスペースが埋められています。ような何か:
_________________________________
| |
| S | |
| _____| _____ |
| | E | |
| |___| |
|_______________________________|
...最終的にすべてのノードがclosedlistに追加されますアイデアビーイングは、openlistは空になり、その時点で私は有効なパスが存在しないことを知っているだろう。
これは問題の妥当な解決策のようですか?これが潜在的に間違っている可能性のある方法はありますか?私は別の解決策は、終わりから後方へ同時に進路を見つけることであると理解していますが、特にエンドノードがきつく囲まれていない場合には、コストがかかる可能性があります。
これは主観的な回答の質問です。それは正しいですか?場合によってはそうですが、そうではないものもあります。プロジェクトの制限に依存します。あなたは道を見つけなければなりませんか?もしそうなら、あなたは上記のような状況に遭遇し、パスがないと言ってそれらを解決できなければなりませんか?はいの場合は、何らかの制限が必要です。そうでなければ、まあ、あなたはしない:)。 – bastijn
ユーザーは好きなだけ環境を手配することができます。ええ、私は悪い道に対処できなければなりません。同時に両側からのパスファインディングは、おそらくこれを実行する最善の方法であると確信しているようですが、私のコードをリファクタリングして動作させる必要があるかもしれません。ああよく:D – Lewis