詰将棋ルーチンの話
ネタが無いんで、選手権時にチラホラ話していた詰将棋ルーチンの話です。
ザックリ言うと「ABC探索ベースで指し手を王手と応手に限定して、Singular Marginを無限大に設定したルーチン」なんですが、詳しく書いてみます。
まず、探索打ち切りはルートノードからの手数ではなく、先手・後手の「残り深さ」がマイナスになったら打ち切ります。
で、「残り深さ」ですが、攻め方(王手する側)は1手深く読む度に、そのノードでの「王手の数-1」を残り深さから引いていきます。同様に、守り方(王手される側)は「応手の数-1」を引いていきます。
ルートノードでは攻め方・守り方の残り深さを同じ値に設定して、残り深さで反復深化します。
こうするとどうなるかというと、「王手・応手の少ない、一本道に近い展開」をどんどん深く読んでいきます。逆に、応手が多かったりすると有望では無い展開と判断して、浅い所で打ち切ります。
ま、要するに「劣化版df-pn」みたいなルーチンですが、実装の手間はあんまりかからないので、自分では気に入っています。