GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

詰将棋ルーチンの話

 ネタが無いんで、選手権時にチラホラ話していた詰将棋ルーチンの話です。

 ザックリ言うと「ABC探索ベースで指し手を王手と応手に限定して、Singular Marginを無限大に設定したルーチン」なんですが、詳しく書いてみます。

 まず、探索打ち切りはルートノードからの手数ではなく、先手・後手の「残り深さ」がマイナスになったら打ち切ります。

 で、「残り深さ」ですが、攻め方(王手する側)は1手深く読む度に、そのノードでの「王手の数-1」を残り深さから引いていきます。同様に、守り方(王手される側)は「応手の数-1」を引いていきます。

 ルートノードでは攻め方・守り方の残り深さを同じ値に設定して、残り深さで反復深化します。

 こうするとどうなるかというと、「王手・応手の少ない、一本道に近い展開」をどんどん深く読んでいきます。逆に、応手が多かったりすると有望では無い展開と判断して、浅い所で打ち切ります。

 ま、要するに「劣化版df-pn」みたいなルーチンですが、実装の手間はあんまりかからないので、自分では気に入っています。