코드: 수 순서 효과 측정
같은 알파-베타에 자식 순서만 바꿨는데 노드 방문 수가 2.4배 차이:
- 가운데 우선: 8,232 노드 (틱택토에서 가운데가 강한 수라서)
- 자연 순서: 18,297 노드
- 역순: 20,182 노드 (가운데가 늦게 등장)
- 무작위: 16,851 노드 (평균)
📊 체스에서는 더 극적
체스 엔진 stockfish는 정밀한 수 순서 휴리스틱 덕에 이론값 b^(d/2)에 거의 도달. 1990년대 Deep Blue도 마찬가지. 좋은 수 순서 = 깊이를 한 단계 더 보는 효과.
그래서 체스 엔진 개발자들은 알고리즘 자체보다 수 순서 휴리스틱 개선에 거의 모든 시간을 써.
이게 알파-베타 가지치기의 핵심. 결과는 minimax와 100% 같지만 속도는 알고리즘 차원이 아니라 휴리스틱 차원에서 결정돼.
그런데 — 바둑은 좋은 수 순서가 뭔지 자체가 어려운 문제. 다음 챕터에서 이 문제를 정량적으로 보자.
PYTHON