解説
ヌルムーブとは、局面を分析するプログラムであるチェスエンジンの計算内部だけで使う人工的なパスである。手番側は駒を動かさずに1手を放棄し、相手へ手番を渡す。このパスは実際のチェスでは合法ではない。局面がどれほど堅固かを素早く試すために使う。
エンジンは通常探索より先を読む手数が少ない、縮小探索でこの試験を行う。相手へ無償の1手を与えても、局面が必要なカットオフ閾値を明確に上回るなら、少なくとも一つの合法手でも十分だと仮定する。その後、すべての選択肢を個別に調べずに枝を止められる。
この枝刈りは多くの作業を節約するが、仮定は常に正しいわけではない。では、手を指すことが不利であり、パスできるなら実戦には存在しない利点になる。ヌルムーブ試験は、実際には手を指す義務のため負ける局面を安全と判定する可能性がある。少数駒の一部のエンドゲームでは危険が大きい。
そのためエンジンは安全策を加える。キングがチェックを受けている間は試験を使わず、残るマテリアルが少ないときに無効化したり、縮小を控えめにしたり、カットオフを受け入れる前に検証探索を行ったりする。ヌルムーブ枝刈りはのような枠組み内で動作し、ほかの選択的技術と組み合わされるが、それだけで最善手を決めるものではない。
用法と背景
枝刈りとは、ある枝が主要な判断を変えられないと試験から分かった時点で、その枝の完全な分析を避けることを指す。
よくある混同
ヌルムーブと手番の喪失
ヌルムーブは内部探索の道具である。実際に手番を失う選手はおらず、その行為が棋譜へ現れることもない。
枝刈りと誤り
この手法は意図的に選択的である。安全条件と検証探索は、仮定が破れる場合を制御するために設けられる。
出典
- 1.Null Move Pruning, Chess Programming Wiki
