王手回避手のオーダリング
昔、王手回避手の順序について書いたんだけど、MiyakoShogiSystemのアピール文書にも王手回避のオーダリングの話が載っている。
王手を受ける手が3手以上なら次の順番で手を並び替える
トランスポジションテーブルに登録された手
駒得の手
HistoryHeuristicの手
駒損の手
sakurapyonの今の実装は、こんな順番:
- 置換表の手(1手)
- カウンター手(1手)
- 王手している駒を取る手
- 玉が逃げる手
- 合駒
ヒストリー手やキラー手も試してみたけど、効果が感じられなかったのでいまはこの順序。カウンターや置換表も1手が良さそうだ。
大槻将棋アピール文書には、こう書かれている。
・取られない王手を先に、上に逃げる手を先に生成するなど、王手・逃げる手の生成順を工夫している。
(詰め将棋でない)通常探索の王手生成・王手回避の部分には、まだまだ改善できる余地が多いのかもしれない。
高速な詰め将棋があれば、こういうので悩まなくてもいいのだろうか?