最良優先探索(Best First Search)とは?仕組みとアルゴリズムを解説
最良優先探索(Best First Search)は、次に訪問するノードを決定するグラフ走査手法の一つです。探索の各段階で「どのノードが最も有望か」を評価関数によって判断し、有望度の高いノードから順に訪問していきます。
この手法は、ヒューリスティック探索(発見的探索)やインフォームド探索(情報に基づく探索)と呼ばれるカテゴリに分類されます。ゴールまでの距離やコストなどの追加情報を活用することで、無駄な探索を減らし、効率的に解を見つけられる点が特徴です。
優先度付きキューによる実装
最良優先探索では、各ノードのコスト(評価値)を優先度付きキュー(プライオリティキュー)に格納します。優先度付きキューは、値が小さい(優先度の高い)要素から順に取り出せるデータ構造です。
この性質により、最良優先探索の実装は幅優先探索(BFS)と非常によく似たものになります。BFSで通常のキューを使うのと同じように、代わりに優先度付きキューを使うだけで実装できます。
最良優先探索のアルゴリズム
Step 1 : 優先度付きキュー pqueue を作成する。
Step 2 : 開始ノードを pqueue に挿入する : pqueue.insert(start)
Step 3 : pqueue の要素を1つずつ取り出す。
Step 3.1 : 取り出した要素がゴールであれば、探索を終了する。
Step 3.2 : そうでなければ、隣接ノードを調べてキューに追加し、
調べ済みのノードとしてマークを付ける。
Step 4 : 終了。このアルゴリズムでは、キューの中で評価値が最も良い(最短と予測される)パスから優先的に探索が進められます。
計算量
最悪の場合、最良優先探索の計算時間は O(n log n) となります。これは、優先度付きキューへの挿入・削除操作がそれぞれ O(log n) の計算量を必要とするためです。
なお、最良優先探索の考え方は、A*アルゴリズムや貪欲最良優先探索など、さまざまな経路探索アルゴリズムの基礎となっており、迷路探索、ゲームAI、経路案内など幅広い分野で応用されています。
-
【徹底比較】格安旅行を実現するおすすめフライト検索エンジン8選
旅行のご予定はお決まりですか?ハネムーン、友人との旅、ひとりでの年末年始の旅行など、目的は何であれ、飛行機を使った移動には意外と高額な費用がかかるものです。航空券代は旅行予算の大きな割合を占めるため、最適なフライト検索エンジンを活用し、良い運賃・日程・サービス内容をできる限り低価格で見つけることが大切です。 次の休暇におすすめのフライト検索エンジン ベスト8 Google フライト(Google Flights) Momondo(モモンド) CheapOair(チープオーエア) TripAdvisor(トリップアドバイザー) Arihla Travelocity(トラベロシティ) Skysc
-
Systweak VPN – ブラウジングと検索履歴を守る最善の方法
私たちは皆同じです。あなたも私と同じように、何かを調べるときにGoogleを使っているのではないでしょうか。 確かにGoogleは代替のきかない存在です。しかし、Googleが提供するアプリやサービスを利用することには「代償」が伴うことをご存じでしょうか。その代償とは、あなたのデータと生活のコントロールです。このコントロールを取り戻したいなら、DuckDuckGo、Qwant、SearchEncryptといったプライバシー重視の検索エンジンを活用するのがおすすめです。 とはいえ、「Googleを使い続けたいけど、安全にもなりたい」という方のために、その解決策もご紹介します。 なぜ検索エンジンに