どうやらバグがあったらしい

確定勝利優先アルゴリズム(長いです。。いい略語ないですか?)を入れて「5手詰めが解けた」と喜んでいたんですが、他の問題を解かせてみると、解けないはずの9手詰めまで詰みを返してきました。
調べてみると、勝ちフラグを立てる処理が間違っていて、本当は(あるノードの)直下のノードで詰みを発見した場合に勝ちフラグを立てるんですが、「直下のノードで」という条件が抜けていて、そこから何十手先で詰みを見つけてもフラグが立つことになってました。。
昨日の結果は偶然だったみたいで、正しく直したら30,000playoutでも解けませんでした。

原因は分かっていて、5手詰めだと、リーフノードで見つけた勝ちフラグが、親ノードへ伝播していかないんですね。
勝ちフラグを親に伝播させるためには、兄弟ノード全部に勝ちフラグが立つ必要がありますが、深さ5となると、それを満たすだけのplayoutが割り当てられないわけです。
(試しに、昨日の問題を2手進めて3手詰めの問題にしたら、約500playoutで解けました。)

55将棋ではともかく、合法手の多い本将棋ではかなり深刻な問題だと思います。
対策として有望なのは、CSA山田さんがコメントで提案されていた、証明数の考え方を導入する方法ですね。
UCB値の算出のとき、証明数を考慮してボーナスを与えるような実装になると思います。
今のところ他にいい案は思いつきません。