春にニコニコ超会議でコンピューター将棋を面白いなーと思ってたけど、この3連休でコンピュータ将棋の電王戦トーナメントをやってたのでちょっと見てたら非常に面白くて半日以上見入ってしまった。 将棋の世界も奥深いし、プログラマー陣の世界も奥深いものですな。 やっぱり人にしろソフトにしろ、将棋って本当に先の先まで読まないといけないのですよね。 そして幅広い視点が必要です。 僕もたまにDSの将棋ソフトとかやっていると、すぐ見落としが発生して簡単に負けてしまう。 まだまだ視野が狭いってこと。 スピードを重視する場合はそれでもいいのだけど、じっくり先を見越して考える力を身につけたいのなら やっぱり将棋を勉強するのが一番なのか。 もっと修行を積みたくなったきたぞ。 それはそうとこんなソフトを作り上げるプログラマー陣には脱帽。よくこんなもん作れるものだ。 アルゴリズム的にはきっと定跡をいくつもインプットしておいて、こういう場面ではこうするとか、 いくつかのパターンの中から重み付けをして、後はそれを何十何百パターンも繰り返して最適解を探すのでしょうけど。 将棋の場合パターンが多すぎるからいわゆる巡回セールスマン問題みたいなNP問題って言われるパターンですよね。 僕の大学では専門分野だったけど、あの時期卒業研究なんて相当適当にやってたし、将棋を取り入れても良かったなあ。 クラスタ組んだりスレッド組んだり、並列化プログラムが非常に重視されるのでしょうし、 言語も相当早い言語じゃないときついだろうし、プログラマーという観点から見てもすごいなーと思います。 でもそんなソフト作りたいって気にはならないけど。 今年は子供の頃のワクワクを振り返るってのを一つのテーマとしているし、また取り組んでみるのもいいかもしれないですな。