2012年5月4日金曜日

メカウーサー将棋の歴史と変遷

(注:この記事は名称変更前の記事となります。史事の記述であるため、メカウーサー及びメカウーサー将棋の記述は、メカ将棋と改めず、そのままと致しました。  kimrin)

巷ではコンピュータ将棋選手権の決勝が明日行われますが、メカウーサー将棋的には今年は既に終わっているので(ぉぃ いままでexplicitに書いていなかったメカウーサー将棋の変遷について簡単に触れたいと思います。

まず、2009年の12月頃からコンピュータ将棋ソフトの作成に取りかかりました。
最初は右も左も分からず、GPGPUで作れば相当のソフトが出来るのではと安直に
考えていました。いま考えてもかなり甘い誤算でした。

2010年5月に出場した「メカウーサー」(メカウーサー将棋の前身)は、100% GPGPU
実装でした。これは当時とても新しかったと思います。強さは皆様ご存知の通りの弱さでしたが。。。

GPGPUのメカウーサーは、最初の2手を2次元格子状に展開します。これだけで後半だと数万コアに異なる局面が行き渡ります。そして、その各々でalpha-beta探索を行いました。
だいたい2手〜3手程度がalpha-betaで探索出来ました。つまり5手程度の探索が可能でした。

GPGPUメカウーサーの問題は、時間配分が拙かった点が一つ、強い将棋ソフトを全く参考に
していない我流のソフトだった点が二つ目、ということで問題山積なのでした。
特に初手からの数手は5手読みをほぼno timeで行っており、早いのですが、あと1手多く読めたのではないかと思います。またmove orderingについてもかなりpoorで、minimal treeにはほど遠い状態だったと思います。

こうして史上初のGPGPU将棋ソフト「メカウーサー」は対無明戦において、伝説の「棒玉」
を指して皆様に失笑されるのでした(しょぼ〜ん)

2010年のアピール文書はこちらです。


2011年に出場した「メカウーサー将棋」は100%CPUのソフトでした。
「GPUで強いソフトを作るにはまずCPUである程度強いソフトが作れないとダメだよね」
という信念のもとCPUのソフトを開発したのですが、これもいかんせん我流なソフトで
弱さと云う名の強さwを兼ね備えたソフトとなりました。

結果としてGPUソフトはその後の2012年でも投入することができませんでした。
2011年のソフトにはいくつかバグがありました。特に定跡ルーチンにバグがあり、
折角定跡を入れたのに特定の条件(定跡上で成る)でソフトが落ちるバグがありました。
これを対Tofu戦で見事に踏んでしまい、あえなく一敗してしまうのでした。

また対さわにゃんRL戦では「これは将棋というゲームではない」と言われるような
お恥ずかしいゲームとなってしまい、作者の方と「あれはひどかったね」と振り返る
のでした。

2011年のアピール文書はこちらです。

2012年のソフトもまたCPUソフトなのですが、実はGPGPUのソフトの初期検討を12月頃から行っていました。これは原稿としてプロシンにも載りました。

最初は簡単なゲームから、ということでHexと呼ばれるゲームの実装から開始したの
ですが、Hexのシーケンシャル版は出来たものの、並列版作成で詰まってしまいました。
いわゆるスランプです。
そのため将棋ソフトも並列版を作るまでに至らず、最終的に去年のソースを引っぱり出して来て、それのUIを新しい枠組みに乗り換えて出場することになりました。

去年のメカウーサー将棋との違いは詰みが少し強くなったことと、定跡のバグが消えていることが違います。

また今年はオペレータを女性に行っていただきました。少しだけ見苦しくなかったのでは
ないかと思いますw

2012年のアピール文書には、GPGPU実装の初期検討資料も含まれています。
アピール文書はこちらになります。

仕事の関係上2012--2013年は将棋ソフトにあまり時間を掛けず、仕事に集中する予定
です。GPGPU実装のメカウーサー将棋を生暖かい目で末永くお待ちいただけると幸いです。

ではねちゃお。