第2回将棋電王トーナメント Apery - Selene の王手千日手

これについてだけ少し書いておこう。


(図を入れた方が良さそうだが、面倒。)


Apery - Selene の 129手目、Aperyは▲7七金と打ち、
タダで取らせてから▲8八角
以下は王手千日手となり、Aperyが勝ちになった。


普通に129手目は▲6六金△同角▲同歩でも勝ちなのに、
なぜこの長手数の王手千日手の順なのかというと、
以下の条件が重なったから。


1.Seleneに王手千日手が負けと実装されていなかったこと。(本人談)
2.Aperyの内部では千日手は同一局面2回であること。
3.Aperyは基本的により短手数の勝ちを選ぶ。


1.については西海枝さんに聞いた。


2.については、出来るだけ同じ局面を何度も読みたくない(無駄なので)ので、
同一局面2回で千日手として探索を行なっている。
これは割と一般的な方法。
(ただし探索のルートの局面では、前の局面に戻してから別の手を指した方が良い可能性もあるので、それは特別に千日手扱いにはしなかったりする)


2.によって、129手目に金を捨てることで、132手目の△8八同馬の局面が同一局面2回の王手千日手となる。
詰ますより短手数!
3.により、短手数の方が最善と判断する。
よってこの132手目は△8八同馬と取れないことになるが、他の手では王手が続かないので、Aperyが後手玉を詰ませて勝ちという読み。


内部の読みは同一局面2回で千日手なのでそちらが早いと思って指すが、
実際は4回まで終わらないので、一見無駄な金捨てに見えた。


また、SeleneがもしAperyと同じように同一局面2回で王手千日手と認識していれば、逆に出来るだけ長手数になるように指すので、この手順には入ってこなかっただろう。


色々偶然が重なって起きた珍事。
修正はAperyは不要だけれど、Seleneは少し必要かな。