TadaoYamaokaの日記

山岡忠夫Homeで公開しているプログラムの開発ネタを中心に書いていきます。

将棋AIの進捗 その44(大会直前の調整)

世界コンピュータ将棋オンライン大会はいよいよ明日から開催です。

今日は、直前に簡単に変更できる部分をいくつか調整を行っていました。

探索延長の条件変更

今までは、ルートの訪問数が1番目の手と2番目の手の差が1.2倍未満の場合に、1.5倍探索を延長していましたが、floodgateで時間を余す傾向があったので、1.5倍未満もしくは勝率が逆になっている場合に、2倍探索を延長するようにしました。
本番のルールはfloodgateと異なるため、どうなるか多少不安があります。
大会中に修正するかもしれません。

Linuxでの性能向上

大会は諸事情によりLinuxを使用する予定ですが、Linuxのスレッド起動は、Windowsに比べて遅いため、スレッドをプールするようにしました。

C++のcondition_variableを使って、スレッドの処理が終了してもスレッドは終了しないで待機するようにしました。
これにより、npsが10%程改善(秒読み5秒の場合、試行時間が長くなると影響は小さくなる)しました。

逆にWindowsでは、4%程低下するため、マクロ定義でビルド時にコードを分けるようにしました。



あとは、強化学習を後1サイクルくらい回すのと、定跡作成を後1日分行うくらいです。
dlshogiは、2日目からなので明日は観戦したり、開発者の皆さんとオンラインで交流したいと思います。