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

코드: 알파-베타 minimax

실행 결과를 보면 약 30배 빨라짐. 결과는 정확히 같고.

틱택토 빈 보드 minimax는 약 55만 노드를 봐. 알파-베타는 1.8만 노드만. 97%의 노드를 안 봐도 됨. 그런데 답은 똑같이 정확.

🔑 추가된 코드는 4줄
alpha = max(alpha, v)        # MAX 노드: 보장된 최소 갱신
if beta <= alpha: break       # 베타 컷: 더 안 봄

beta = min(beta, v)           # MIN 노드: 보장된 최대 갱신
if beta <= alpha: break       # 알파 컷: 더 안 봄

알고리즘의 본질은 완전 같아. 그저 "범위 추적 + 조건문 한 줄". 그런데 효과는 30배.

💡 이론적 상한 — sqrt(b^d)

이상적인 경우(수 순서가 완벽할 때) 알파-베타는 b^d 대신 b^(d/2) 노드만 봐. 사실상 분기 인자가 b → √b로 감소한 효과. 체스(b=35)에서는 √35 ≈ 6으로 감소.

이게 1990년대 컴퓨터 체스가 인간을 넘어선 비결 — 같은 시간에 깊이를 2배로 더 볼 수 있게 됨.

그런데 "수 순서가 완벽"이라는 게 핵심. 다음 페이지.

PYTHON