df-pn 終了のお知らせ

そんなわけでバックグラウンドで(スレッド1つだけで)探索開始局面でdf-pnの詰将棋ルーチンを呼び出すだけならもしかしたら意味があるかも知れないと思い、今日、苦労して実装しました。df-pnで不詰めが証明されれば、通常探索の並列用スレッドとしての役割を果たすというなかなかの優れものです。

ところが、そのdf-pn付きのひよこカルロ将棋neoと、df-pnなしのひよこカルロ将棋neoとを対戦させてみましたところ、持ち時間5分だと後者が8割ぐらい勝ち越すのです。

バグっているのかさんざん検証してみましたが、どうやらこれが正常動作のようです。

この理由について、ざっと説明しますと、まず、df-pnの詰将棋ルーチン、置換表を参照する回数が非常に多いのでメモリの転送帯域の大半をこれで消費しているようです。そのため通常探索のときに置換表にアクセスするのが遅れ、それゆえ通常探索のnpsが若干低下するようです。

この若干というのが、ひよこカルロ将棋neoにとっては致命的でして、評価関数は駒得しか見てませんから、わずかにでも読みが上回ったほうが大きく勝ち越すという性質があるようです。

そこで、df-pn搭載→通常探索のnps低下→読み負けというコンボのようです。
即詰みのある局面に到達する以前に敗勢になっているのでdf-pnの出番がありません。

おまけに、ひよこカルロ将棋はもともとnpsが高く、20手ぐらいの詰将棋は普通の探索時にでも読めなくはない範疇です。ということはdf-pnがあったおかげで即詰みに討ち取れるということは極めて稀で、勝率にほとんど影響しません。

ゆえに、ひよこカルロ将棋neoとdf-pnは極めて相性が悪いということが言えると思います。

裏を返せばこれが、
・通常探索時に置換表にあまりアクセスしないタイプの将棋ソフト
・評価関数が優秀でnpsが少し低下しても強さにあまり響かない将棋ソフト
・nps自体は低く、あまり深くまでは読めていないので20手ぐらいの即詰みを発見しにくいソフト
であればdf-pnの詰将棋ルーチンをバックグラウンドで動かす価値はあるのかも知れません。

GPS将棋とかBonanzaとかは、おそらくそういうタイプに分類されるのでしょうね。

逆に言えばひよこカルロ将棋neoには無用の長物でしたという実験結果に終わりました。

丸3日ぐらいかけて苦労して実装したdf-pnがひよこカルロ将棋neoには使えないということがわかりました。今日も枕を濡らしながら寝ます。みなさん、おやすみなさい。