sakurapyon’s blog

sakurapyon’s blog

一手詰めは何のためにあるのか

一手詰めのバグをチェックするために探索中の情報を表示させて見比べてわかったんだけど、「一手詰は詰のためにある」と思ってたのは認識不足だったようだ。

確かに、一手詰を入れると入れる前よりも手数の長い詰みが読めるようになったり、詰めろをかけて勝ちにいくことが増えるんだけど、効果はそれだけじゃない。

例えば、一手詰めろがかかってるこんな局面(後手番)。受けなしでどうしようもない局面なんだけど、これを一手詰なしで処理すると結構な局面を探索していたりする。オーダリング上、取る手・成る手が先になるので △4二歩▲5一歩成…のような手を先に読んでいる。探索の浅い方なら反復深化中に1二と を見つけてそれがキラーに入るからまだいいんだけど、探索の奥深いところだとそれだけには頼れない。オーダリング順序が取る手>キラー手なら、やっぱり5一歩成のような手を先に読んでしまう。打つ手はオーダリングが後ろになりがちなので、成る手じゃなくて打つ手で詰む場合にはもっと悲惨なことになる。

一手詰ルーチンがあれば先手の応手は1二と だけになるので、探索局面数は後手の初手の数だけになる。この局面ほど極端ではないにせよ 終盤の探索中は1手トン死の局面も多く出現するから 一手詰に少々時間がかかっても探索局面数の削減で元が取れる。先の理由から「打つ一手詰」だけでも効果がでてくることは容易に想像できる。同様に高速な三手詰ルーチンがあれば終盤で多くの局面の探索を端折れるだろう。高速な三手詰欲しい……


Mate Killer も カウンター手も短手数詰みも、人間なら考えもしない悪手をいかに早く刈るか・そもそも処理しないですませられないか、という視点から見たほうが良さそうな気がする。ついつい人間視点で考えて見落としてしまうんだよね、こういうことは。

後手の持駒:飛二 角 金三 銀三 桂二 歩 
  9 8 7 6 5 4 3 2 1
+---------------------------+
|v歩v歩v歩v歩v歩v歩 ・v香v玉|一
| 歩 歩 歩 歩 歩 歩 ・v歩 ・|二
| ・ ・ ・ ・ ・ ・ ・v香 と|三
| ・ ・ ・ ・ ・ ・ ・ ・ 香|四
| ・ ・ ・ ・ ・ ・ ・ ・ ・|五
| ・ ・ ・ ・ ・ ・ ・ ・ ・|六
| ・ 歩 ・ ・ ・ ・ ・ ・ ・|七
| 香 銀 ・ ・ ・ ・ ・ ・ ・|八
| 玉 桂 金 ・ ・ ・ ・ ・ ・|九
+---------------------------+
先手の持駒:角 桂 歩二 
手数=0    まで

後手番