読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】幅優先探索と深さ優先探索、どっちが速いん?ハノイの塔とSTRIPSも出てきて混乱【G検定】

17レスカテゴリ:AI・機械学習
1: 名無しさん

第1次AIブームの「探索」って、具体的には何をしてたん?
幅優先と深さ優先の違いも、どっちを使えばええかも分からん

2: 名無しさん

前提のおさらい。第1次ブーム(1950年代後半〜1960年代)は、迷路やパズルのようにルールとゴールがはっきりした問題を、手順を探索して解いた時代

3: 名無しさん

>>1
探索では、スタートから選べる手を枝分かれさせた「探索木」を作る
迷路なら、分かれ道のたびに枝が分かれて、ゴールの地点が見つかるまで木をたどる

4: 名無しさん

>>3
幅優先探索は、スタートに近い段から順に、同じ深さを全部調べてから次の深さへ進む
深さ優先探索は、1本の枝を行けるところまで進んで、行き止まりなら1つ戻って別の枝へ

5: 名無しさん

>>4
で、どっちがええの?

6: 名無しさん

>>5
一長一短
幅優先:浅い順に調べるから、最短の手順が必ず見つかる。ただ、途中の段をすべて覚えておくからメモリをたくさん使う
深さ優先:今たどっている枝だけ覚えればいいからメモリは少なくて済む。ただ、最初に見つかった答えが最短とは限らない

7: 名無しさん

>>6
メモリをたくさん使うって、どれくらい?

8: 名無しさん

>>7
1つの点から3本ずつ枝が出るとすると、深さ の段にある点の数は

深さ5なら

幅優先はその段を全部覚えて進む。深さ優先は今たどっている5個ほどで済む

9: 名無しさん

ハノイの塔も探索の例でよく出る
3本の棒と大きさの違う円盤があって、小さい円盤の上に大きい円盤は置けない。全部を別の棒に移す

10: 名無しさん

>>9
円盤が 枚のとき、最小の手数を とすると、上の 枚をよけて、いちばん大きい円盤を動かして、また 枚を戻すから

これを解くと

3枚なら 手、10枚なら 手

11: 名無しさん

>>10
枚数が1枚増えるだけで手数がほぼ倍か。第1次ブームが現実の問題で行き詰まったのも分かる気がする

12: 名無しさん

>>1
シラバスで一緒に出てくるのがプランニング
ロボットの行動計画を、「前提条件」「行動」「結果」の組み合わせで書いて、ゴールまでの行動の並びを探索する考え方

13: 名無しさん

>>12
STRIPS はそれ?

14: 名無しさん

>>13
そう。STRIPS はスタンフォード研究所(SRI)のファイクスとニルソンが1971年の論文で示したプランニングのシステム
「箱を押す」なら、前提条件は「ロボットが箱の横にいる」、結果は「箱の位置が変わる」のように書く

15: 名無しさん

SHRDLU も同じころ
テリー・ウィノグラードがMITで1968〜1970年に作ったシステムで、積み木の世界を英語の命令で動かせた
「赤い積み木を青い箱に入れて」みたいな指示を理解して、画面上の積み木を動かす

16: 名無しさん

>>15
積み木の世界の中だけで動く、っていうのがまさにトイ・プロブレムやな

17: 名無しさん

>>16
世界が小さくて決まりがはっきりしてるから、探索とプランニングでうまくいく。現実の世界はそうはいかない、というのが冬の時代につながる

管理人のひとこと