今年の5月に開催されたWCSC26(第26回 世界コンピュータ選手権)では、Aperyをライブラリとして使ったチームが非常に多かったですが、今年10月の電王トーナメントではそのへんの勢力図はどう移り変わっていくのでしょうか。開発者向けのライブラリとして見たときに、Aperyではなくやねうら王を用いるメリットについて書いてみます。
本記事は、やねうら王の開発側から見た一方的な見解ですので、そのつもりでご覧ください。
VisualStudio2015(無償版でも可)でビルドを実行するだけで一発でビルド出来る。
また、Windows/MacOS/Linuxでビルド可です。Aperyの場合、Windows用はVisualStudio用のプロジェクトファイルが含まれていない&多少の修正が必要になるようです。
ソースコード上に解説コメントが豊富。
C++のコードよりコメント行のほうが多いはずです。これは、ソースコードを理解する上でかなり役立つはずです。
Stockfishの変数名に忠実
AperyはStockfishから変数名を変えてあったりしてStockfishのソースコードとの差分をとるのがツライです。また、現在公開されているAperyは最新のStockfishと比べるとずいぶん古いのです。
Silent Majorityのほうが、より最新のStockfishに近いですが、Silent MajorityもAperyの変数名を引き継いでいるのでStockfishのソースコードとの差分を取りにくいです。
やねうら王では、Stockfishを参考にしている部分は、あえてStockfishの変数名・関数名をそのままにしてあります。
最新のStockfishにキャッチアップ
やねうら王は、常に最新のStockfishにキャッチアップしています。また、Stockfish側のバグも本家よりかなり早い段階で修正しています。例えば、Stockfishの今月の12日にcommitされたponderのバグに関しては、数ヶ月以上前に修正してあります。
評価関数ファイルが豊富。
Apery(WCSC26)と同程度の強さの評価関数ファイルを含め28バリエーションの評価関数ファイルが公開されています。自己対戦などをさせるときにとても便利なはず。
魔女と同等以上の探索部。
Apery(WCSC26)よりSilentMajorityの探索部のほうが長い持ち時間において強いことは周知の事実ですが、そのSilentMajorityと探索部において同等以上の性能を誇ります。(たぶん) まだやねうら王のほう、探索部はチューニング中の部分もありますが、電王トーナメントまでチューニングしていきGitHubで公開しつづける予定です。
巨大な定跡ファイル。
やねうら大定跡という巨大な定跡ファイルが使えます。またこの定跡を自らのPCでさらに開拓することも出来ます。かなりの深さで探索しているため、定跡レベルで不利になることはまずありえないでしょう。
教師局面の生成ルーチン、学習ルーチンが公開されている。
また、やねうら王2016Midを用いて、depth 6で探索して生成した53億局面も配布されています。このデータを用いてすぐに学習させることが出来ます。また、学習時に消費するメモリ消費量も極めて小さいので、8GB程度のメモリしか搭載していないPCでも学習に用いることが出来ます。Aperyはいまのところスレッドごとに評価関数を確保していたりするので、これとは比べ物にならないほどメモリを消費するはずです。
共有メモリを用いた評価関数パラメーターの配置
やねうら王にはWindowsの共有メモリ上に評価関数パラメーターを配置する機能があります。この機能を用いて、やねうら王の開発では、40C80HTのマシンで並列80対局させています。(160個プロセスが起動していますが、1プロセス当たりのメモリ消費量は微々たるものなので問題ないです。)
まとめ
やねうら王のメリットをたくさん書きましたが、冒頭にも書きましたように、本記事はやねうら王の開発側から見た一方的な情報ですので、いくらか割り引いて理解しておいてくださいね。
しゅごい。って言葉が出てきました。
積極的にAperyをつぶしに行くスタイル!ライバルいてこそですね。
いろんな視点から見ても面白いと思います。
私はAperyをライバル視はしてないですよ?マイペースで(他のソフトのことは何も気にせず)開発してます。
へぇ、なんか意外です。