# はじめに tanuki-はtanuki-製作委員会によって開発されているコンピュータ将棋ソフトシリーズです。 『Apery』や『やねうら王』といったオープンソースコンピュータ将棋エンジンを改造して作られています。 # たぬきのもり (tanuki- 第26回世界コンピュータ将棋選手権バージョン) 『大樹の枝 (Apery 第3回電王トーナメント版)』に改造を加えたものです。 ソースコードはtanuki-レポジトリに含まれています。 大樹の枝に加え、以下の機能を追加実装しています。 ## Lazy SMPによる探索ルーチンの並列化 Stockfishに実装されているLazy SMPによる探索ルーチンの並列化を実装しています。 実装はmasterブランチにあります。 ## クラスタ化 複数のコンピュータ将棋エンジンを束ねてクラスタ化する機能を実装しています。 クラスタ化の方式として合議制と早押しクイズ方式の2種類を実装しています。 早押しクイズ方式はParallel Aspiration Window Search[1]を改造したものです。 これは反復深化法中にある深さの探索が終わったら他のノードに通知し、 通知された側は、通知された深さが現在の探索深さ以上の場合は探索を中止、 次の深さに移行するというものです。 この方式はYBWCノードとLazy SMPノードが混在していても動きます。 合議制はvote-2016-05-07ブランチのtanuki-/tanuki-proxyに、 早押しクイズ方式はmasterブランチのtanuki-/tanuki-proxyにあります。 ## リンク ソースコード (Github) * https://github.com/nodchip/tanuki- たぬきのもり PR文書 * http://www.computer-shogi.org/wcsc26/appeal/tanuki-no-mori/tanuki-_0316_light.pdf たぬきのもり 技術文書 * https://drive.google.com/file/d/0B-tvvyU4WOofdG1QTFFXdWtDMG8/view # †白美神† (tanuki- 第4回電王トーナメントバージョン) 『やねうら王 コンピューター将棋フレームワーク』に改造を加えたものです。 ソースコードはhakubishin-レポジトリに含まれています。 やねうら王に加え、以下の機能を実装しています。 ## 深い深さの探索の評価値を浅い深さの探索の評価値で近似する手法 やねうら王の雑巾絞りのルーチン実装のための予備実験で使用したプロトタイプが実装されています。 ソースコードはlearner-2016-09-30ブランチの以下のファイルです。 - experimental_learner.cpp - experimental_learner.h - kifu_generator.cpp - kifu_generator.h - kifu_reader.cpp - kifu_reader.h - kifu_writer.cpp - kifu_writer.h ## リンク ソースコード (Github) * https://github.com/nodchip/hakubishin- †白美神† PR文書 * http://denou.jp/tournament2016/img/PR/Hakubishin.pdf # 参考文献 [1] Baudet, G. “The design and analysis of algorithms for asynchronous multiprocessors.” Ph.D. dissertation, Computer Science Dep., Carnegie-Mellon Univ., Pittsburgh, Pa., Apr. 1978. # 謝辞 Aperyを開発されたAperyチームの平岡拓也様、杉田歩様、山本修平様、白岩大地様、 やねうら王を開発された磯崎元洋様、 そしてコンピュータ将棋を愛する全ての方にこの場をお借りしてお礼申し上げます。