「 イテレーティブ ディープニング デプス ファースト サーチ やろうぜ?」
「 時間切れ負け しないように 途中で 計算を投げ捨てる 探索よ」
「 IDDFS のことか。
説明すると お父んが寝てしまうので 手順を進めながら やってみよう」
「 👆 まず、 デプス(Depth)というのを 覚えてくれだぜ。
これから、上図を使って デプス を説明しよう」
「 👆 デプス1 というのは、最後の扉の 前にいるところだぜ」
「 奥の扉を開けるのは、将棋で例えると 1手指すことだと思ってくれだぜ」
「 👆 デプス 0 というのは、基本的には 指さない ということだぜ」
「 デプス 0 で何をやるかは まあ プログラマーが好きにしろだぜ」
「 デプスをいったん忘れて、もうちょっと 深く読む、とか そういうことだぜ」
「 👆 探索(たんさく;Search) と呼ばれるものは、行ったっきり戻ってこないものと、
再び帰ってくるものがある。 コンピューター将棋で探索と言えば、 再び帰ってくると思っていい。
これを 再帰(さいき;Recursive)と呼ぶぜ」
「 絵を描くのが めんどくさいので 省略するぜ。
頭の中で バタン バタン してくれだぜ」
「 👆 イテレーションが 1回終わっているときの デプス 0 もまた、基本的には 指さない ということだぜ」
「 その 数えで1歳、 満0歳 みたいなの、どうにかなんないの?」
「 デプス0 と同じ呼ばれ方をしても、
イテレーションが 0回目、1回目、2回目 と増えていくたびに デプス0 に着くまでに開けたドアの数が増えていることを
よく意識しておいてくれだぜ」
「 8年ぐらいブログを書いているが、クイズが出たのは 初めてだよな」
「 先ほどの図で、 イテレーションが 1回終わってるときの デプス0 のすべての部屋に入ったとき、
それまでに開けた ドアの数を答えなさい」
「 わざわざ クイズにするんだから 6 とか答えたら ハズレなんだろ。
同じ部屋に 何度も出たり入ったりすれば 答えは無限にあるんじゃないかだぜ?」
「 んー、どこを どう数えたら 8なんて言う 中途半端な数が 出てくるのかなあ?」
「 👆 イテレーションが 2回終わっているときの デプス 0 も、基本的には 指さない ということだぜ」
「 👆 次に デプス3 で 深さ優先探索 をするぜ。 おっ、玉を発見」
「 👆 目的のものを見つければ すぐ帰ってきても いいわけだしな」
「 👆 時間が切れる前に すぐ帰るのも 同じ手順を踏まえろだぜ」
「 👆 時間切れになったら、途中まで探索していた分、全部 無駄になんの?」
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!