설명
널 무브는 포지션을 분석하는 프로그램인 체스 엔진의 계산 안에서만 사용하는 인공적인 패스다. 둘 차례인 쪽이 기물을 움직이지 않고 한 턴을 포기해 상대가 두게 한다. 이 패스는 실제 체스 게임에서 합법적인 수가 아니다. 포지션이 얼마나 견고한지 빠르게 시험하는 용도다.
엔진은 정상 탐색보다 앞을 덜 보는 축소 탐색으로 이 시험을 수행한다. 상대에게 공짜 턴을 준 뒤에도 포지션이 필요한 중단 기준을 분명히 넘으면, 프로그램은 적어도 하나의 합법적인 수도 충분할 것이라고 가정한다. 그러면 모든 선택을 하나씩 확인하지 않고 그 가지를 중단할 수 있다.
이 가지치기는 많은 작업을 줄이지만 가정이 언제나 성립하지는 않는다. 에서는 수를 두는 것이 해롭고 패스가 허용된다면 실제 체스에는 없는 이점이 생긴다. 널 무브 시험은 선수가 반드시 움직여야 해서 실제로는 지는 포지션을 안전하다고 판단할 수 있다. 기물이 적은 일부 엔드게임에서 위험이 더 크다.
그래서 엔진은 안전장치를 둔다. 킹이 체크받을 때는 시험을 사용하지 않으며, 기물이 적으면 비활성화하거나 감축을 덜 공격적으로 적용하거나, 중단을 받아들이기 전에 검증 탐색을 실행할 수 있다. 널 무브 가지치기는 같은 틀 안에서 작동하고 다른 선택 기법과 결합되지만, 그 자체로 최선의 수를 결정하지는 않는다.
용법과 맥락
가지치기는 어떤 시험으로 해당 가지가 주된 결정을 바꿀 수 없다고 판단되면 가지 전체를 완전히 살피지 않는 것을 뜻한다.
자주 혼동하는 개념
널 무브와 턴 상실
널 무브는 내부 탐색 장치다. 실제 선수가 턴을 잃는 것도 아니고 이 동작이 게임 기록에 나타나지도 않는다.
가지치기와 오류
이 방법은 의도적으로 선택적이다. 안전 조건과 검증 탐색은 가정이 실패하는 사례를 통제하기 위해 사용된다.
출처
- 1.Null Move Pruning, Chess Programming Wiki
