설명
수 순서화는 포지션을 분석하는 프로그램인 체스 엔진이 합법적인 선택을 살피는 순서를 바꾼다. 미리 약해 보인다는 이유만으로 수를 제거하지 않는다. 대신 강할 가능성이 높거나, 빠른 반박을 만들거나, 유용한 정보를 줄 후보를 앞에 놓으려 한다.
많은 탐색이 알파베타 가지치기를 사용하기 때문에 순서가 중요하다. 이 방법은 한 가지가 현재 결정을 개선할 수 없다는 사실이 증명되면 그 가지를 더 살피지 않는다. 훌륭한 수가 일찍 나오면 높은 기준이 세워지고, 열등한 많은 응수를 적은 작업으로 버릴 수 있다. 같은 수가 마지막에 나오면 엔진은 나중에 무관해질 가지에 이미 시간을 썼을 수 있다.
자주 쓰이는 순서화 신호
- 이전 탐색에서 찾은 최선 라인. 특히 중에 유용하다.
- 엔진이 같은 포지션을 이미 탐색했다는 사실을 알아차렸을 때 저장되어 있던 수.
- 유리해 보이는 잡기. 때로는 물질 교환에 대한 빠른 추정으로 걸러낸다.
- 즉각적인 잡기나 체크가 없는 조용한 수 가운데, 이전 결과의 내부 기록상 비슷한 포지션에서 탐색 중단을 일으킨 수.
고정 깊이의 완전한 탐색에서는 순서가 달라도 최종 결과가 같아야 한다. 크게 달라지는 것은 그 결과에 도달하는 데 필요한 작업량이다. 같은 기법은 좋은 후보를 일찍 찾는 데 더욱 크게 의존한다.
자주 혼동하는 개념
순서화는 완전한 평가가 아니다
수 순서화는 빠른 신호로 우선순위를 정한다. 그 수가 실제로 성립하는지는 뒤이은 탐색이 검증해야 한다.
출처
- 1.Move Ordering, Chess Programming Wiki
