「十六式いろは」のあれこれ

コンピュータ将棋ソフトのエンジン「十六式いろは」の開発者のブログです。

wcsc32のアピール文の追記部分

wcsc32での実装について

wcsc32 第32回世界コンピュータ将棋選手権

基本的な動作

dlshogi(※1)と水匠5(※2)の両エンジンによる楽観合議(※3)が
このソフトの最大の特徴。
Ayane(※4)を使用して両エンジンを呼び出し、
評価値を比較して指し手を決める。

手数によるエンジンの切り替え

( )は、対戦結果を見て都度手動で調整したとき値。
初手から10手目(あるいは20手目)まで水匠5
 →定跡(※5~7)を使うことが目的。
80手目(あるいは100手目)までdlshogiと水匠5の楽観合議
 →評価値が高い読みを選択する。
  詰みを読んだときはその読みを選択し、
  両エンジンが詰みを読んだときは短手数の方を選択する。
 →この楽観合議が、このソフトのメインの強み。
80手目(あるいは100手目)以降は水匠5
 →終盤はdlshogiよりも水匠5の寄せと詰み能力を採用。

手数による思考時間

初手から10手目(あるいは20手目)まで2秒
 →できるだけ持ち時間を減らさない目的。
60手目(あるいは40手目)まで5秒(あるいは8秒)
 →有利になるように、だが終盤にも時間を残したいので。
60手目(あるいは40手目)以降は、両エンジンの返事が遅かった時間
 →各エンジンの最大限の能力を発揮してもらいたいので。

先読みが当たっていたときの思考時間

 自分の手番が来てからの思考時間。
 実際の思考時間は、上記に相手の思考した時間も加える。
初手から10手目(あるいは20手目)まで1秒
 →できるだけ持ち時間を減らさない目的。
10手目(あるいは20手目)以降は5秒
 →持ち時間がないときでもこの時間を確保する実装のため、
  5秒以上長いと時間切れ負けの可能性があるので。

水匠5に追加で搭載した定跡について

1次予選

 振り飛車で戦いたい対戦相手の場合はハニワ定跡(※5)
 それ以外のときは100テラショック定跡(※6)

2次予選

 1次予選時の定跡に加え、先手番のときはRy-book(※7)

水匠5のデフォルトからの変更点

オプション設定

思考を打ち切る時間的余裕: 1.2秒
 →通信タイムラグを考慮して。
メモリの割当: 4GB
スレッド数 1次予選: 6
      2次予選: 8

dlshogiのデフォルトからの変更点

学習モデル

選手権までに学習させる時間に余裕がなかったため
時間的なコストパフォーマンスを優先し、下記のモデルとブロック数を選択。
棋力は書籍「強い将棋ソフトの創りかた」(※8)のモデルと比較し
少し劣るレベル(勝率30~40%)で留まった。
 モデル: Wide ResNet
 活性化関数: Swish
 ブロック数: 5
 オプティマイザー: RAdam
 学習率: 0.004から徐々に下げていき
      102エポック目から0.0004固定
 教師データ: 書籍「強い将棋ソフトの創りかた」の教師データ
 学習回数:  144エポック(2周)

オプション設定

思考を打ち切る時間的余裕: 1.2秒
 →通信タイムラグを考慮して。
メモリの割当: 8GB
スレッド数 1次予選: 4
      2次予選: 2
DNN_Batch_Size: 32
 →この環境で最もnpsが出たので。
Eval_Coef: 285
 →水匠5と評価値を合わせるため。

(※1)dlshogi - 山岡忠夫
Release 第2回世界将棋AI電竜戦バージョン
 TadaoYamaoka/DeepLearningShogi · GitHub
https://github.com/TadaoYamaoka/DeepLearningShogi/releases/tag/denryu2021

(※2)水匠5 - たややん
Release やねうら王 V7.00 実行ファイル一式 · yaneurao/YaneuraOu · GitHub
https://github.com/yaneurao/YaneuraOu/releases/tag/v7.00

(※3)GougiShogi: 合議将棋 - tttak
GitHub - tttak/GougiShogi: 合議将棋
https://github.com/tttak/GougiShogi
 →プログラムは利用していないがアイデアを参考にした。

(※4)Ayane - やねうらお
GitHub - yaneurao/Ayane: python Adaptor to YaneuraOu
https://github.com/yaneurao/Ayane

(※5)ハニワ定跡 - 32hiko
GitHub - 32hiko/HoneyWaffleWCSC27: HoneyWaffle 第27回WCSC版
https://github.com/32hiko/HoneyWaffleWCSC27

(※6)100テラショック定跡 - やねうらお
Release 100テラショック定跡(WCSC29時点 , 700T)
yaneurao/YaneuraOu · GitHub
https://github.com/yaneurao/YaneuraOu/releases/tag/BOOK-700T-Shock

(※7)Ry-book - くらっきぃ
Ry-book - くらっきぃ(Twitter @MysteriousBook
https://twitter.com/MysteriousBook
/status/1521124533515685888?s=20&t=lZMsQeAoJp69aFT2Y0QlQA

(※8)強い将棋ソフトの創りかた
(書籍) 強い将棋ソフトの創りかた | マイナビブックス
著作者名:山岡忠夫、 加納邦彦
https://book.mynavi.jp/ec/products/detail/id=126887