설명
평가 함수는 한쪽에 포지션이 얼마나 유리한지를 수치로 추정한다. 은 유한한 탐색으로 가능한 모든 게임의 실제 끝까지 도달할 수 없을 때 이를 사용한다.
평가를 정적이라고 부르는 이유는 그 지점에서 또 하나의 완전한 탐색을 시작하지 않고 포지션에 점수를 매기기 때문이다. 정적이라는 말이 전술적으로 조용하다는 뜻은 아니다.
고려할 수 있는 정보
- 기물, 즉 양쪽에 어떤 기물이 남아 있는지.
- 킹 안전, 기물 배치, 기동성, 즉 기물이 유용한 수를 얼마나 자유롭게 둘 수 있는지.
- 폰 구조, 즉 폰들이 어떻게 배치되어 서로를 지지하거나 약화하는지와 그 밖의 포지션 패턴.
- 일부 엔진에서는 이러한 신호를 결합하도록 많은 예시로 학습된 수학적 모델인 신경망.
부호와 척도에는 맥락이 필요하다. 프로그램에 따라 양수는 백이나 둘 차례인 쪽에 유리하다는 뜻일 수 있다. 폰 하나의 가치와 비슷한 단위라고 해서 보편적인 승리 확률을 뜻하는 것도 아니다.
평가 함수만으로 최종 수를 선택하지는 않는다. 탐색은 많은 미래 포지션을 비교하고 같은 방법으로 그 값을 시작 포지션 쪽으로 되돌린다. 따라서 현재 보드의 빠른 평가는 가능한 수순들을 탐색한 뒤의 결과와 달라질 수 있다.
용법과 맥락
인터페이스에서 0.00은 보통 엔진 자체 척도에서 균형으로 추정한다는 뜻이지, 그 포지션이 무승부로 증명되었다는 뜻은 아니다.
자주 혼동하는 개념
정적 평가와 전체 분석
정적 평가는 새로운 긴 변형을 탐색하지 않고 한 포지션에 점수를 매긴다. 분석은 평가와 탐색을 결합한다.
점수와 객관적 진실
해결된 엔드게임 밖에서는 이 수치가 추정치이므로 엔진이 더 깊이 탐색하면 바뀔 수 있다.
출처
- 1.Evaluation, Chess Programming Wiki
- 2.evaluate.cpp, Stockfish
- 3.UCI Protocol and Stockfish Commands, Stockfish
