思うだけで学ばない日記 2.0

思うだけで学ばない日記から移転しました☆!よろしくお願いします。

終盤DBの可能性?

まあ登録すべき局面はチェスよりは桁違いに増えるだろうが、そう極端に悲観することも無いんでねえが

将棋のn手詰め(nは常に奇数)では次が成り立つ:

  • 玉方は高々floor(n/2)手しか駒を動かせない
  • 玉方の駒取りは、合駒か、玉方玉に直接利きが届かせた脅威の排除のどちらかを兼ねる置駒移動のみが許される。(∵合駒とは無関係の駒移動をやったり2手以上先の合駒の可能性「だけ」のために駒を動かす1手損の余裕がある、というのは、n手詰めかn+2手以上の詰めか選択する主導権が玉方にあることになり、n手詰めである仮定に反する(詳細略
  • 玉方の駒打ちは、直後に合駒となるケースのみが許される。(∵上と同様の理由

で、終盤DBに登録すべき情報は、n手詰めが明かになった瞬間の局面、かつ関係する駒のみである。

ということは、終盤DBに登録される局面の上では、

  1. 玉方の置駒の数は決して((1からfloor(n/2)までの奇数の総和)+1)を超えない*1
  2. 玉方の持駒の条件は置駒よりちょっと複雑っぽいが、次のことが言える
    1. 打った直後に合駒になり、さらに次の移動*2でも合駒になり得る駒があるならその駒を打つべき
    2. そのような駒が無く、駒打ちによる合駒の必要のみがあるなら駒の種類は何でも良い

従って、終盤DBに登録される局面の上では、玉方の持駒については、これらに該当する持駒が十分な個数(≦floor(n/2))あるかのみを判定条件として持てばよい*3

ここまで玉方の話だったが、攻方もまあ同様のはず。n手詰めをn手できちんと終わらせるためには(←重要)攻方も玉方同様に駒の運用に強力な制約がかかる

以上の考察から、将棋のn手詰めにおいては、DBに登録すべき情報は、玉方の置駒(種類と位置)と、持駒の条件判定式と、攻方の置駒(種類と位置)と、攻方の持駒の条件判定式で済むだる*4
そして、持駒の個数を上記条件判定式を満たす駒の種類を同一視して数えるとする限り、DBに登録される局面の上では、関係する駒の総数は、決して((1からnまでの奇数の総和)+1)を超えないという

ただし、((1からnまでの奇数の総和)+1)もの駒が関係するというのは、n手詰めが最終的に1手詰めまで遷移する過程で現れる全てのk手詰めにおいて、攻方が目下のk手詰をk-2手以下の詰め筋に短縮するのを妨害するのに必要十分な玉方駒のまったく新規の一揃いが、異なるk毎に出現して攻方に立ち塞がるという極端なケースであって、つまり極めて用心深い発言なので、現実には大多数が2nぐらいで押さえられるんジャマイカ、*5

あ〜良かった、

本当か?

我々は実戦で現れ得る(例えば)3手詰め局面を網羅した後に、それらを集約して5手詰め局面DBに拡張すれば強くなるんジャネ?、と普通考えるわけだが
将棋の場合、終盤でも駒の数が減らないことから、受方手番のノードの子がn以下の手数の詰めの局面のみで占められる確率は、nが3を超えたら急激に低下しそうな悪寒、
つまり、n手詰めをもれなく網羅したらn+1手詰めの大多数も網羅されたことになる、という数学的帰納法はかなり成立しなさげ

終盤DBはks

*1:+1は考察外な玉方の玉の数。また、総和なのは、n手詰めが、玉方の出方によらず2手先でn-2手詰めであるという再帰性からの要請

*2:攻方の出方次第、というほどの意味であり、打った次の玉方手番という意味ではない

*3:全ての種類の持駒と個数の組み合わせを網羅的に持つ必要はない、的な意味で

*4:壁を駒の一種と見なすなら、置駒同士と壁の相対位置関係をDBに登録することで、位置の違いによる組み合わせ爆発を押さえる工夫も有り得る。

*5:多分盤面のトポロジー的にそんなケースは発生し得ない