AI用語集・違い比較

深さ優先探索と幅優先探索の違い

深さ優先探索とは幅優先探索とは

最終更新日:作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未出典

結論

深さ優先探索は1本の枝を行き止まりまでたどってから分かれ道に戻る方法で、使うメモリは少ないものの、最初に見つかる解が手数最小とは限りません。幅優先探索は出発点に近い深さから1段ずつすべて調べる方法で、手数が最小の解を最初に見つけられますが、多くのメモリを使います。

比較表

深さ優先探索と幅優先探索の違いの比較表
観点 深さ優先探索幅優先探索
英語 depth-first search(DFS)breadth-first search(BFS)
調べる順番 1本の枝を行き止まりまで進み、戻って次の枝へ同じ深さのノードをすべて調べてから、次の深さへ
これから調べるノードの管理 スタック(後入れ先出し)キュー(先入れ先出し)
最初に見つかる解 手数が最小とは限らない手数が最小の解(1手ごとのコストが等しければ、合計コストも最小)
メモリの使用量 少ない。今の道筋と分かれ道に残った枝だけを保持する(およそb×m)多い。同じ深さのノードをまとめて保持する(およそbのd乗)
解が見つかる保証 無限に深い枝や、同じ状態に戻るループがあると、見つからないことがある枝分かれの数が有限なら、解がある限りいずれ見つかる
向いている問題 メモリが限られている場合や、解が深い位置に多くある問題最短の手順が必要な場合や、解が浅い位置にありそうな問題
G検定での問われ方 探索木の図からノードを調べる順番を答えさせる形や、最短の保証がない点が問われる最短の手数の解が見つかる点とメモリの多さ、ハノイの塔などのパズルへの当てはめが問われる
シラバス項目 技術分野 項目3 探索・推論技術分野 項目3 探索・推論

最終確認日:2026年11月1日

それぞれの説明

深さ優先探索

深さ優先探索は、探索木の1本の枝を、行き止まりに着くまで奥へたどる方法です。解がなければ1つ前の分かれ道まで戻り(バックトラック)、まだ調べていない枝に進みます。迷路で、突き当たるまで進んでから引き返すやり方と同じです。

覚えておくのは、今たどっている道筋と、途中の分かれ道に残った枝だけです。1つのノードから出る枝の数をb、最も深いところまでの深さをmとすると、保持するノードはおよそb×m個で済みます。そのため、深い問題でもメモリが足りなくなりにくい方法です。一方で、先に選んだ枝の奥にある遠回りの解を先に見つけることがあり、無限に続く枝に入り込むと戻ってこられません。

幅優先探索

幅優先探索は、出発点のすぐ下にある深さ1のノードをすべて調べ、次に深さ2のノードをすべて調べる、というように1段ずつ広げる方法です。浅い順に調べるので、最初に見つかる解は、出発点からの手数が最も少ない解です。

その代わり、同じ深さのノードをまとめて覚えておく必要があります。最も浅い解の深さをdとすると、保持するノードはおよそbのd乗個に増えます。b=10、d=6なら約100万個です。

使い分けと発展

最短の手順が必要で、解が浅い位置にありそうなら幅優先探索が向いています。メモリが限られ、解が深い位置に多くあるなら深さ優先探索が向いています。両者の長所を合わせた方法に、深さの上限を少しずつ広げながら深さ優先探索をくり返す反復深化深さ優先探索があります。

どちらも、ゴールまでの近さの見込みを使わずに、決まった順番で機械的に調べる方法です。分岐が増えると、調べるノードの数は爆発的に増えます。第1次AIブームの探索は、迷路やパズルのようなトイ・プロブレムは解けても、選択肢が膨大な現実の問題を解くには至りませんでした。

見分けるコツ

  1. 名前のとおり、深さ優先は「縦に掘る」、幅優先は「横に広げる」と覚えます。探索木の図の問題では、この順番でノードに番号を振っていけば答えが出ます。
  2. 2つの性質は表裏の関係です。手数が最小の解が保証されるのは幅優先、メモリが少なく済むのは深さ優先です。選択肢でこの2つが入れ替わっていないかを確かめます。
  3. ここでの「最短」は手数(段数)の最短です。1手ごとのコストが異なる問題では、幅優先探索でも合計コストが最小の解になるとは限りません。

◯×チェック

3問

次の文が正しいか、誤りかを選んでください。

  1. これから調べるノードを後入れ先出しのスタックで管理すると深さ優先探索に、先入れ先出しのキューで管理すると幅優先探索になる。

    答えを見る

    答え ◯ 正しい

    スタックでは直前に展開したノードの子から調べるので、奥へ奥へと進みます。キューでは先に加えた浅いノードから順に調べるので、1段ずつ広がります。

  2. 枝分かれの数が有限な問題でも、同じ状態に戻るループがあると、幅優先探索は解があっても見つけられなくなる。

    答えを見る

    答え × 誤り

    幅優先探索は浅い順に調べるため、ループで同じ状態が重複しても、解のある深さまでいずれ到達します。ループで解に届かなくなるおそれがあるのは、1本の枝をたどり続ける深さ優先探索です。

  3. 深さの上限を1つずつ広げながら深さ優先探索をくり返す反復深化深さ優先探索は、少ないメモリのまま、幅優先探索と同じく手数が最小の解を見つけられる。

    答えを見る

    答え ◯ 正しい

    上限の深さまでは深さ優先で調べるので、保持するノードは少なく済みます。浅い上限から順に試すため、最初に見つかる解は手数が最小です。Korfの1985年の論文が、この方法の効率を分析しています。

関連問題

3問
  1. #0009幅優先探索と深さ優先探索の違い難易度 基礎・単一選択未回答
  2. #0310深いゴールまでの探索ノード数難易度 標準・単一選択未回答
  3. #0127ハノイの塔の最短手数と探索難易度 基礎・単一選択未回答

出典

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未 最終確認日: 対応シラバス:シラバス第1.4版 技術3

誤りを報告

ほかの違い比較

違い比較の一覧

表示設定

テーマ
文字の大きさ
問題演習