코드: MCTS vs Minimax 정면 대결
대국 결과를 보자:
🎯 대국 결과
- minimax(흑): 매 수 0.01초로 빠름. 0행을 줄곧 채우는 패턴 — 평가 함수가 그것밖에 못 잡음
- MCTS(백): 매 수 0.5초 사용. (5,6), (0,3), (4,4), (3,4) 등 다양한 자리 분산 — 통계 신호로 자리 선택
- 결과: 양쪽 10돌 동률 → 백(MCTS) 승 (코드의 평가 규칙)
💡 진짜 의미 있는 차이
단순 돌 수로는 10:10 동률이지만, 모양(shape)을 보면:
- 흑(minimax): 0행 한 줄 + 1행 부분 — 일자형, 영역 형성 못함
- 백(MCTS): 중앙 부근 5개, 분산 배치 — 두텁고 영향력 큰 모양
실제 바둑 점수 계산(영역)이면 백이 압승. 30집 vs 7집 차원. MCTS의 자리 선택이 명백히 더 좋은 모양.
⚠️ 우리 평가의 한계 vs MCTS의 잠재력
코드 안 평가는 단순 돌 수라 신호가 약했고 (Ch4 §2, §3에서 본 50% 균등), 대국에서도 결국 동률. 그런데도 MCTS가 다양한 좋은 자리를 발견하는 게 명확함.
실제 알파고는:
- 같은 MCTS 구조 사용
- 평가 함수를 신경망으로 교체 (PART 4 주제)
- 그 결과 신호 명확해져 MCTS가 진짜 강해짐
같은 알고리즘, 다른 평가 → 알파고는 minimax 기반보다 ELO 800 강함.
📊 실제 측정된 ELO 등급 (역사적 데이터)
- 1990~2005 minimax 기반 컴퓨터 바둑: ELO ~1000 (아마추어 9급)
- 2007 MoGo (MCTS 9x9): ELO ~2300 (아마추어 5단) — 1300 ELO 도약
- 2014 Crazy Stone (MCTS + 경험적 휴리스틱): ELO ~2700
- 2016 알파고 v18 (MCTS + 신경망): ELO ~3500
MCTS 도입 자체가 컴퓨터 바둑에서 거대한 점프를 만든 알고리즘.
PYTHON