Killer Moves も奥が深い
「いっせ式futility pruning - 毎日がEveryDay!」のコメントに「なんでkiller Moveは2個まで登録するの?」とあったり、「killer move - gamidereの日記」には「なんでkiller moveは取らない手から選ぶのだろう」とあって、私も疑問に思っていた。
chessprogramming - Killer Heuristicには「some programs use killers from two plies ago」なんてことも書かれている。これも気になったので少し実験してみた。たぶんプログラムの作りや局面によって違ってくると思うけど、sakurapyonでの傾向を見ると、こんな感じ。
- Killer有りと無しはだいぶ違う
- 1個あるとかなり探索量が減る
- 2個あっても探索量は減るとは限らないけど、最善手が早く見つかるかもしれない(なぜだろう?)
- 過去や未来は有効じゃないし、探索量増えた
- Hash, SEE>=0, Killer の順が良さそう。 Hash, Killer, SEE>=0 はダメっぽい。
- このへんはもうちょっとがんばると面白いかもだけど、そこまでするなら学習したほうがいいんだろうな(^_^;
- Killer 2個目はもっと後ろでもいいかもしれない
- 無しでは困るけど、優先しすぎても困るようだ
以前、CounterやKillerでのβカット率を調べたときの感触とだいたい同じだ。オーダリング面白いけど、難しい…
メモ: