深さ優先探索とは

ふかさゆうせんたんさく

グラフや木を、1本の道を行けるところまで進み、行き止まりになったら戻って別の道を進む順に訪れる探索の方法。再帰やスタックで実装し、迷路の探索、連結成分や閉路の検出、トポロジカルソートなどに使われる。英語の頭文字からDFSともいう。

「深さ優先探索」は、1分野の3問の練習問題に出てきます(データ構造とアルゴリズムなど)。

この用語の分野: データ構造とアルゴリズム

深さ優先探索の練習問題に挑戦

辺に向きのないグラフで、各頂点の隣の頂点が次のとおりである。A: B, C / B: A, D, E / C: A, F / D: B / E: B, F / F: C, E。頂点 A から再帰的な深さ優先探索を行う。隣の頂点はここに書いた順に調べ、まだ訪れていない頂点が見つかったらすぐにその頂点へ進む。頂点を訪れる順はどれか。

  1. AA, B, C, D, E, F
  2. BA, B, D, E, C, F
  3. CA, B, D, E, F, C
答えと解説を見る

正解:C. A, B, D, E, F, C

A から B へ進み、B の隣で最初の未訪問の D へ進みます。D の隣は訪問済みの B だけなので B に戻って次の E へ進み、E から未訪問の F へ、F からその隣の C へと進みます。したがって A, B, D, E, F, C の順です。A, B, C, D, E, F は、出発点から近い順に訪れる幅優先探索の順です。A, B, D, E, C, F は、E から未訪問の F へ進まずに戻ってしまっており、深さ優先探索の順にはなりません。

解説の中の「深さ優先探索」

「深さ優先探索」が出てくる問題(3問)

  1. 辺に向きのないグラフで、各頂点の隣の頂点が次のとおりである。A: B, C / B: A, D, E / C: A, F / D: B / E: B, F / F: C, E。頂点 A から再帰的な深さ優先探索を行う。隣の頂点はここに書いた順に調べ、まだ訪れていない頂点が見つかったらすぐにその頂点へ進む。頂点を訪れる順はどれか。
  2. 辺に重みのないグラフで、出発点から各頂点までの最短の辺の数を求めたい。適した探索の方法と、そのとき使うデータ構造の組はどれか。
  3. 作業 A〜E に「A は C より前」「B は C より前」「C は D より前」「B は E より前」「E は D より前」という順序の制約がある。すべての制約を満たす作業の順(トポロジカルソートの結果)はどれか。

データ構造とアルゴリズムの参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

再帰 幅優先探索 キュー スタック 安定ソート 計算量 ダイクストラ法 動的計画法 貪欲法 二分探索

用語集の一覧へ