棚瀬将棋のこと


昨日の激指と棚瀬将棋の対戦で、棚瀬将棋は持ち時間をサーバー側から返ってきたタイムではなくローカルパソコンのタイムで判定していたため、残り時間がサーバー側のタイムと異なり時間切れ負けになってしまった。


形勢は棚瀬将棋有利だっただけにもったいない。これに勝てていれば棚瀬将棋の全勝優勝だったのだが、これに負けたので棚瀬将棋は準優勝になった。


棚瀬将棋は去年は、詰めルーチンのバグ、今年は残り時間のバグで優勝を逃した。実力的には最強のコンピュータ将棋と言っていいだろう。R3000ぐらいだと思う。もう早指しなら(コンピュータ将棋対策をしてこない)プロ四段と互角ぐらいかも知れない。


作者の棚瀬さんは将棋自体の棋力も高くBonanzaのように棋譜からの学習でパラメータのチューンをしているが、その勘所をよく理解出来されている。


また、GPS将棋のOSLと言うC++のtemplateで書かれた将棋ライブラリを参考にコードを書かれているが、functorはinliningされるのでかなりnpsを稼げているのではないかと思う。


Bonanzaと同じように学習を用いていても決定的にその2つが異なるのだと思う。開発者のプログラミング技術的にも見ても、将棋に対する開発者の理解度的に見てもコンピュータ将棋として最高レベルで、今回はBonanzaを突き放した(?)結果となったのではないかと思う。


私見だが、棋譜からの学習、df-pn+、並列探索、強度の水平線効果の対策、singular extension、MTD(f) or PVS、null move search、extended futility pruning、LMR (history pruning)、(C++の)template technicなど、現在の既知の技術だけでも(現在最新のマシンなら)R2400ぐらいにはなる。


しかし、そこからが腕の見せ所で、他の参加者と比べて桁違いに速いマシンが使えるわけでもないので(むしろモンスターマシンで出場してくる上位陣より遅いマシンしか使えないだろう)、学習の時に選出した特徴ベクトルの差や、コードの最適化技術などの差になってくる。きちんと将棋というゲームの性質を理解しているかだとか、きちんと計算機アーキテクチャを理解しているかだとか、そういう差が強さの違いになって出てくるのではないかと思う。


Bonanzaの登場以降、全幅探索 + 学習と言うのがそれ以降のコンピュータ将棋のトレンドとなったが、激指は非全幅探索の代表として最後の砦であるし、YSSは非学習型(たぶん)の職人芸的なプログラムである。Bonanzaは将棋の棋力に乏しいプログラマでも強い将棋プログラムが書けるのだと言う夢を与えてくれた。アマトップに肉薄した実力を兼ね備えた2008年の4強がこの4つのプログラムであると言うのは、非常に意義深い。


コンピュータ将棋プログラムはプロ棋士に迫ると言う意味で、もっとも面白い時代に突入したのではないかと思う。

棚瀬さんには「僕の壁は厚いですよ」といわれましたが,壁どころかおなじ世界でつながっているのかも怪しいです.

2月にfloodgateで大敗して以来,プログラムを1から書き直し,この2,3か月は文字通り死ぬ気で開発に取り組んだのですが,そんなものではやはり話になりませんでした.山下さんや棚瀬さんほどの人が人生をかけてやっているくらいのものです.最大限の情熱と時間をかけなければ上位陣には永久に近づけないと実感しました.


選手権まとめ -- 「棋理(遠見)」開発日記
http://d.hatena.ne.jp/yos92/20080505

人生をかけてかぁ…。