探索木を用いて解を探す方法のうち、「深さ優先探索」の特徴として、最も適切なものを1つ選びなさい。
- ①出発点に近い節点から順に調べるため、最短の解が必ず見つかるが、記憶を多く必要とする。
- ②ゴールに近そうだと見積もった節点から優先して調べるため、少ない手数で解に近づきやすい。
- ③行けるところまで深く進み行き止まりで戻るため、記憶は少なくて済むが最短とは限らない。
- ④行けるところまで深く進み行き止まりで戻るため、記憶は多く必要だが最短の解が必ず見つかる。
答えと解説を見る
深さ優先探索は、探索木の1つの枝をたどって行けるところまで深く進み、行き止まりになったら1つ前の分かれ道に戻って別の枝を進む、という方法です。
いま進んでいる道筋の分だけを覚えておけばよいため、必要な記憶(メモリ)は少なくて済みます。一方で、たまたま先に調べた枝の深いところで解が見つかると、それが最短の解でなくても探索を終えることがあるため、最短の解が見つかるとは限りません。
他の選択肢が不適切な理由
・近い節点から順に調べ最短の解が見つかる:これは幅優先探索の特徴です。同じ深さの節点をすべて覚えておく必要があるため、記憶を多く必要とします。
・ゴールに近そうな節点から優先して調べる:これは、ゴールまでの見積もり(ヒューリスティック)を手がかりにする最良優先探索の考え方です。深さ優先探索は見積もりを使わず、決まった順に1つの枝を深くたどります。
・深く進んで戻るが、記憶は多く最短の解が必ず見つかる:進み方は深さ優先探索のものですが、性質が幅優先探索のものと入れ替わっています。深さ優先探索は記憶が少なくて済む一方、最短の解が見つかるとは限りません。
覚え方のポイント
「深さ優先=記憶が少ない・最短とは限らない」「幅優先=最短が見つかる・記憶が多い」と、長所と短所を対にして覚えましょう。