×
科目A|アルゴリズムとプログラミング

幅優先探索 | 応用情報技術者試験

幅優先探索とは

幅優先探索(はばゆうせんたんさく)とは、グラフや木構造といったデータ構造のすべての要素を調べる(探索する)ための代表的なアルゴリズムの一つです。英語の「Breadth-First Search」の頭文字をとって「BFS」とも呼ばれます。この探索法の特徴は、出発地点に近い階層から順番に、横方向(同じ深さの要素)をすべて調べ尽くしてから、次の深い階層へと進んでいくことです。スタート地点からの距離が近い順に調べていくため、最短経路(最も少ないステップ数でのゴール)を見つける問題に非常に適しています。実装には「キュー(Queue)」という先入れ先出しのデータ構造がよく使われます。

具体例

迷路のスタート地点からゴール地点までの最短ルートを探す場面を想定します。幅優先探索では、スタートから1歩で行けるすべてのマスを調べ、次に2歩で行けるすべてのマスを調べ、というように波紋が広がるように探索を進めます。これにより、最初に見つかったゴールへの経路が必ず最短のルートになります。

もう少し詳しく