ビーム探索アルゴリズムについて質問があります。
n = 2
(すべてのノードから拡張するノードの数)としましょう。したがって、最初はルートしかなく、そこから2つのノードを拡張します。ここで、これら2つのノードから、さらに2つを展開します。ですから、現時点では、4枚の葉があります。答えが見つかるまで、このように続けていきます。
これはビーム検索の仕組みですか?すべてのノードのn = 2
のみを展開しますか、それとも常に2つのリーフノードを保持しますか?
以前は、n = 2
は、ツリー全体で2つではなく、各ノードから最大2つのアクティブノードが必要であることを意味すると考えていました。
"標準"ビーム検索アルゴリズム では、すべてのステップで、現在「知っている」ノードの総数。制限されています-各ノードからフォローするノードの数ではありません。
具体的には、n = 2
の場合、「ビーム」のサイズは常に最大2になることを意味します。したがって、最初は1つのノードから開始し、そこから到達可能なすべてのノードを検出しますが、2つを除くすべてのノードを破棄し、2つのノードでステップ1を終了します。ステップ2では、2つのノードがあり、両方を展開し、正確に2つのノード(それぞれからではなく合計)を除くすべてのノードを再度破棄します。次のステップでも、同様に、各ステップの後に2つのノードを保持します。
保持するノードの選択は、通常、ターゲットに最も近いノードを評価するヒューリスティック関数によって行われます。
ビーム探索アルゴリズムは完全ではない(つまり、解決策が存在する場合は解決策が見つからない可能性がある)か、最適ではない(つまり、最良のものが見つからない可能性がある)ことに注意してください解決)。これを確認する最良の方法は、n = 1
の場合、基本的に best-first-search に減少することを確認することです。