시즌 1 · 알파고편 / PART 2 · PART 2 · 게임을 푸는 첫 방법: 탐색 / Ch 3 · 알파-베타 가지치기

코드: 수 순서 효과 측정

같은 알파-베타에 자식 순서만 바꿨는데 노드 방문 수가 2.4배 차이:

  • 가운데 우선: 8,232 노드 (틱택토에서 가운데가 강한 수라서)
  • 자연 순서: 18,297 노드
  • 역순: 20,182 노드 (가운데가 늦게 등장)
  • 무작위: 16,851 노드 (평균)
📊 체스에서는 더 극적

체스 엔진 stockfish는 정밀한 수 순서 휴리스틱 덕에 이론값 b^(d/2)에 거의 도달. 1990년대 Deep Blue도 마찬가지. 좋은 수 순서 = 깊이를 한 단계 더 보는 효과.

그래서 체스 엔진 개발자들은 알고리즘 자체보다 수 순서 휴리스틱 개선에 거의 모든 시간을 써.

이게 알파-베타 가지치기의 핵심. 결과는 minimax와 100% 같지만 속도는 알고리즘 차원이 아니라 휴리스틱 차원에서 결정돼.

그런데 — 바둑은 좋은 수 순서가 뭔지 자체가 어려운 문제. 다음 챕터에서 이 문제를 정량적으로 보자.

PYTHON