どちらの方法にも、拡張するノード(およびそのコスト)を保持するデータ構造があります。どちらの方法でも、最初に最適なコストでノードを拡張します。それで、それらの違いは何ですか?
均一コスト検索はブラインド方式であり、ベストファースト検索はそうではないと言われたため、さらに混乱しました(ノードコストに関する情報があるかどうか)。
違いは ヒューリスティック 関数にあります。
均一コスト検索はunformed検索です。ドメインの知識は使用しません。最小コストのノードを拡張し、目標に関する情報が提供されないため、あらゆる方向に拡張します。これは関数f(n) = g(n)
として見ることができます。ここでg(n)
はパスコストです(「パスコスト」自体は、パフォーマンス測定に関してパスに数値コストを割り当てる関数です。キロメートル単位の距離、または移動回数など)。ノードに到達するためのコストですn。
Best-first search isinformedsearch:ヒューリスティック関数を使用して、現在の状態が目標にどれだけ近いかを推定します(ゴール?)。したがって、コスト関数f(n) = g(n)
は、nから目標までのコストであるh(n)
(そのコストを推定するヒューリスティック関数)と組み合わされて、f(n) = g(n) + h(n)
が得られます。ベストファースト検索アルゴリズムの例は、A *アルゴリズムです。
はい、どちらの方法にも展開されたノードのリストがありますが、ベストファースト検索はその展開されたノードの数を最小化しようとします(パスコスト+ヒューリスティック関数) 。
ここで少し誤解があります。均一コスト検索、最適な最初の検索、およびA *検索アルゴリズムはすべて異なるアルゴリズムです。 均一コストは、Best FirstおよびA *検索アルゴリズムは、情報に基づいた検索アルゴリズムです。インフォームドとは、ヒューリスティック関数を使用して、展開するノードを決定することを意味します。最適な最初の検索とA *の違いは、最適な最初はf(n) = h(n)
を使用して展開し、A *はf(n) = g(n)+h(n)
を使用して拡張ノードを選択することです。 h(n)
はヒューリスティック関数です。 g(n)
は、開始ノードからノードnまでの実際のコストです。
https://www.cs.utexas.edu/~mooney/cs343/slide-handouts/heuristic-search.4.pdf 詳細はこちらをご覧ください。
違いは次のとおりです。
均一コスト検索(UCS)は、パスコストが最小(つまり、g(n)が最小)のノードを展開しますが、ベストファースト検索(BFS)は、目標に最も近いノードを展開します
UCSはヒューリスティック関数を処理できませんが、BFSはヒューリスティック関数を処理できます
UCSでは、f(n) = g(n)、BFSでは、f(n) = g(n) + h(n)。
均一コスト検索は、最も低い距離の未訪問ノードを選択し、それを経由して各未訪問ネイバーまでの距離を計算し、より小さい場合はネイバーの距離を更新します。
ベストファースト検索は、パスの最後(パスの最後のノード)が目標ノードにどれだけ近いかを予測しようとするヒューリスティックベースのアルゴリズムであるため、ソリューションに近いと判断されるパスが展開されます。最初。