探索木を用いて解を探す方法のうち、「幅優先探索」の特徴として、最も適切なものを1つ選びなさい。
- ①出発点に近い節点から順番に調べるため、最短の解を必ず見つけられるが、多くの記憶領域を必要とする。
- ②出発点に近い節点から順に調べるため、使う記憶領域は少ないが、最短の解を見つけられるとは限らない。
- ③行けるところまで深く進んでから引き返すため、最短の解を必ず見つけられるが、多くの記憶領域を必要とする。
- ④ランダムに選んだ節点から調べ始めるため、使う記憶領域は少ないが、解が見つかる保証はまったくない。
答えと解説を見る
幅優先探索は、探索木のうち出発点に近い(浅い)節点から順に、同じ深さのものをすべて調べてから次の深さへ進む方法です。浅い順に調べるので、最短で到達できる解を必ず見つけられます。その代わり、途中で調べた節点を記憶しておく必要があるため、問題が複雑になると多くの記憶領域(メモリ)を使います。
他の選択肢が不適切な理由
・近い節点から調べるが、記憶領域は少なく最短の解とは限らない:調べ方は幅優先探索のものなのに、性質が「深さ優先探索」のものになっており、組み合わせが誤っています。深さ優先探索は、行けるところまで深く進み、行き止まりになったら一つ手前に戻って別の道を探します。
・深く進んでから引き返し、最短の解を必ず見つける:進み方は深さ優先探索の説明なのに、性質が幅優先探索のものになっており、組み合わせが誤っています。
・ランダムに選んだ節点から調べ始める:幅優先探索の説明ではありません。
覚え方のポイント
「幅優先=最短解が見つかる・メモリを多く使う」「深さ優先=メモリは少ない・最短解とは限らない」。長所と短所がちょうど逆になる関係として覚えましょう。