sakurapyon’s blog

sakurapyon’s blog

Mate Killers 再び

以前 Mate Killersを検討したときは、副作用が多すぎて採用できなかったんだけど、終盤力強化に使えないかなーといろいろ考えてみた。前回は、Mate Killersを通常探索で使ったため、王手→探索延長が発生しすぎて深く探索できなくなったのが不採用の理由。

静止探索1段目で - 小宮日記詰み部分木 - マイムーブの話を読んでいて思いついたのが、以下の方法。

  • 通常探索の中で betaカットが発生した手と、その1つ前の手との組み合わせをカウンター手として覚えておく
    • さらに、上記の中で王手だったものを別に覚えておく
  • 静止探索の中で、取る手・成る手に加えて上記のカウンター手・カウンター王手を生成する
    • (ここはもっと調整が必要だと思う。終盤度を使うとか)

詰めろがかかっている側がnull move探索する or 甘い手を指すと、相手の手番のときに詰みが発生してbeta cutされて、そのときの手順がカウンター手として記憶されている、はず。なので、それを静止探索で流用すれば、詰みがある場合は検出しやすくなる、んじゃないかな? という発想。少し前に簡易1手詰を組み込んであるので、カウンター王手→簡易1手詰みのコンボが発生してくれる、かもしれない。

ただでさえ 重たい静止探索が増えた手の分だけさらに重たくなるのが難点だけど、少なくとも終盤では効果があるようだ。実際に組み込んでみると、勝ちを読みきれないにしても以前よりも負けにくい手・勝ちやすい手を選んでいるような気がする。ぬるい手がさっさとrefuteされてるせいか、詰みがありそうな局面の探索は速くなってる気もする。

詰みそうな局面だけ使うと良さそうだけど、高速1手詰め(まだ途中): ななしとかによると中盤でも結構ヒットしそうなので悩ましい。


静止探索は、昔の通常探索の前向き枝刈り・手生成ノウハウが再利用できる場所なのかもしれない。8bitマイコンのメモリ節約テクニックが、イマドキのCPUのL1/L2キャッシュにプログラムを押し込むのに使えたりするように。

追記:静止探索の結果が状況依存になるのは、もしかしたらまずい?