web-dev-qa-db-ja.com

ベストファースト検索とA *検索の違いは何ですか?

私の教科書では、これらの両方のアルゴリズムがほぼ同じように機能することに気づき、それらの間の大きな違いを理解しようとしています

Example from the textbook

教科書は、A *を使用してベストファースト検索と同じ方法でこの例を走査しました。

任意の助けをいただければ幸いです。

12
Computerphile

ベストファースト検索アルゴリズムはヒューリスティック関数に基づいて次の状態を訪問しますf(n)= hヒューリスティック値が最も低い(多くの場合呼び出されます)貪欲)。その特定の状態へのパスのコストは考慮されません。関心があるのは、現在の状態の次の状態が最も低いヒューリスティックであるということです。

A *検索アルゴリズムは、履歴に基づいて次の状態を訪問しますf(n)= h + gwherehコンポーネントは、ベストファースト検索と同じヒューリスティックが適用されますが、gコンポーネントは初期からのパスです特定の状態への状態。したがって、ヒューリスティック値が最も低い次の状態だけを選択するのではなく、その状態に到達するためのヒューリスティックとコストを考慮すると、値が最も低い状態を選択します。

上記の例では、アラドから出発する場合、シビウ(253km)またはゼリンド(374km)またはティミショアラ(329km)に直行できます。この場合、両方のアルゴリズムが低い値f(n) = 253を持っているため、Sibiuを選択します。

アラド(366km)またはオラデア(380km)またはファラガス(178km)またはリムニクビルチャ(193km)に戻ることができます。 best firstを検索する場合、Faragasの最低値はf(n) = 178ですが、A *の場合はRimnicu Vilcea f(n) = 220 + 193 = 413ここで、220はアラド(140 + 80)からリムニクに到達するためのコストであり、193はリムニクからブカレストに到達するコストですが、ファラガスの場合はf(n) = 239 + 178 = 417.

したがって、今では明らかに、best-firstは貪欲なアルゴリズムであることがわかります。これは、初期状態からその状態に到達するコストを考慮しないため、ヒューリスティックが低いが全体のコストが高い状態を選択するためです

25
MichaelDD

A *は、ヒューリスティックを使用して検索をガイドすることにより、パフォーマンスを向上させます。 A *は、ベストファースト検索と均一コスト検索の利点を組み合わせたものです。ヒューリスティックを使用して、アルゴリズムの効率を高めながら、最適化されたパスを見つけます。 A *関数はf(n) = g(n) + h(n)で、h(n)がランダムな頂点nとターゲット頂点間の推定距離。g(n)は、開始点と頂点n間の実際の距離です。 g(n)= 0の場合、A *はBest-First Searchになります。 h(n)= 0の場合、A *は均一コスト検索になります。

1
Jianqiang Chen