JavascriptでBreadth First Search(他のアルゴリズムでも現在はbfs)の実装を試みています。幅優先検索実装
最終的に、すべての検索アルゴリズムをグリッドに適用して、最初からゴールノードまでのパスを見つけたいと思います。私は実装をしましたが、問題は私が事前にツリー全体を持っていないということです。私が望むのは、startnodeとendnodeを与え、それに基づいてそれらの間のパスを見つけることです。
私が遭遇している問題は、隣接するグリッドスクエアを決定すると、すべてのネイバーが返されるため、既にトラバースされているネイバーも戻ってしまうことです。これは、ツリー検索ではなくグラフ検索に変わります。それを解決する方法は、すべてのパスを覚えておいて、どの隣接ノードが既に横断されているかを調べることができるため、さらに検討する必要はありません。しかし、検索アルゴリズムのコースで学んだように、bfsは現在の深さレベルですべてのノードのメモリ使用量を持っています。私がすべてのパスを保存すると、それはそのメモリよりもはるかに多くのメモリを消費しますか?
ツリー構造を事前に持っていなくても、サイクルが発生しないようにしておくと、bfsが検索している現在の深さのノードだけをメモリに保持できますか?
私は自分自身を明確にしたいと思います。事前に
おかげで、 ステファン
ツリーやグラフで検索していますか?あなたは本当にグラフを持っているように思えますが、ツリーベースの検索アルゴリズムを使用したいと思う - それはうまくいかないでしょう。 – BrokenGlass