19. 미니맥스 알고리즘 (Minimax Algorithm)
핵심 인사이트 (3줄 요약)
- 본질: 체스나 바둑과 같은 2인 턴제 적대적 게임(Adversarial Game)에서, "나는 내 이익을 최대화(MAX)하고 상대는 내 이익을 최소화(MIN)하는 수만 둔다"는 완벽한 합리성 가정을 바탕으로 미래 상태 트리를 재귀적으로 평가하는 알고리즘이다.
- 가치: 정보가 완전히 공개된 제로섬 게임(Zero-Sum Game) 환경에서 패배를 최소화하고 확실한 수학적 승리 또는 무승부 경로를 연산할 수 있는 강력한 게임 인공지능의 모태이다.
- 융합: 탐색 공간이 기하급수적으로 폭발하는 한계가 있어, 알파-베타 가지치기(Alpha-Beta Pruning) 최적화나 휴리스틱 평가 함수(Evaluation Function)와 결합하여 제한된 깊이까지만 탐색하는 형태로 실무에 쓰인다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
일반적인 A* 탐색이 고정된 지형에서 나 혼자 최적 경로를 찾는 것이라면, 틱택토(Tic-Tac-Toe)나 체스는 내가 한 번 이동할 때마다 상대방이 가장 나에게 불리한 쪽으로 환경을 바꿔버린다. 이처럼 상대방의 의사결정이 개입되는 다중 에이전트 환경에서는 일반적인 최단 경로 탐색이 통용되지 않는다. 이를 수학적 관점에서 타파하기 위해 존 폰 노이만(John von Neumann)의 게임 이론에 기반하여 탄생한 의사결정 모델이 미니맥스 알고리즘이다.
이 도식은 한 턴이 지날 때마다 주도권이 MAX(나)와 MIN(상대)으로 번갈아 바뀌며 트리 구조가 어떻게 확장되는지를 시각화한 것이다.
[적대적 게임의 상태 공간 트리 한계]
[MAX 턴 (나의 현재 상태)] <-- 1개 노드
/ | \
/ | \
[MIN 턴(상대)] [MIN 턴(상대)] [MIN 턴(상대)] <-- 평균 b개의 파생 수
/ | \ / | \ / | \
/ | \ / | \ / | \
[MAX] [MAX] .. .. .. .. .. .. .. .. [MAX] <-- b^2 개 파생 수
(시간이 지남에 따라 O(b^d)로 경우의 수 우주 폭발)
이 흐름의 핵심은 한 단계(Depth)를 내려갈 때마다 탐색해야 할 노드가 분기 계수(Branching Factor, b)만큼 기하급수적으로 증식한다는 점이다. 체스의 경우 b가 약 35에 달하며, 게임 종료까지 깊이(d)가 100수에 이른다. 100% 완전한 결과를 보장하는 수학적 알고리즘임에도 불구하고, 끝까지 탐색하는 것은 지구상의 어떤 컴퓨터로도 불가능하다는 것이 실무 도입의 가장 큰 딜레마이다.
📢 섹션 요약 비유: 복싱 경기에서 내가 펀치를 뻗었을 때 상대가 피하고 카운터를 치는 모든 경우의 수를 머릿속으로 수만 장의 사진처럼 넘겨가며, 제일 덜 맞는 동작 하나를 고르는 섀도 복싱과 같습니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
미니맥스 알고리즘의 내부 동작은 트리의 최하단(단말 노드)에서 승패를 평가한 뒤, 그 점수를 역전파(Backpropagation)하여 상단으로 끌어올리는 백트래킹(Backtracking) 구조로 이루어진다.
| 노드 계층 | 행동 주체 | 목적 함수 동작 원리 |
|---|---|---|
| 단말 노드 (Terminal) | 게임 오버 또는 깊이 제한 | 현재 판의 유리함을 수치화한 휴리스틱 평가 점수 반환 (승리:+10, 패배:-10) |
| MIN 노드 | 상대방 (Opponent) | 하위 자식 노드들의 반환값 중 가장 작은 값(Min) 을 선택하여 끌어올림 |
| MAX 노드 | 나 (AI) | 하위 자식 노드들의 반환값 중 가장 큰 값(Max) 을 선택하여 끌어올림 |
다음은 깊이 2에서 멈춘 뒤 휴리스틱 점수를 바탕으로 미니맥스 값이 어떻게 상단으로 재귀 결합되는지를 보여주는 구체적인 상태 전이도이다.
[미니맥스 값 역전파 계산 메커니즘]
(MAX: 3) ◄──────────────────── (나의 턴: 큰 값 3 선택)
/ \
/ \
/ \
(MIN: 3) (MIN: 2) ◄───────────── (상대 턴: 각각 가장 작은 값 선택)
/ \ / \
/ \ / \
(3) (9) (2) (8) ◄─────────── (단말 노드: 게임 평가 점수 반환)
▲ ▲ ▲ ▲
└───────┴──────┴────────┴── 단말에서 평가된 점수들이 위로 올라감
이 구조도의 핵심은 최하단의 숫자 9와 8처럼 매우 매력적으로 보이는 큰 보상이 있음에도 불구하고, 상대방(MIN)이 절대 그 길을 허락하지 않을 것임을 알고리즘이 예측한다는 점이다. 상대가 (3)과 (2)라는 최악의 수로 방어할 것을 전제하기 때문에, 나는 결국 오른쪽의 (2) 루트 대신, 차악을 피할 수 있는 왼쪽의 (3) 루트를 최종 선택(MAX: 3)하게 된다. 이것이 최악의 상황 속에서 최고의 이익을 보전하는 '안전 제일주의' 논리이다.
📢 섹션 요약 비유: 내가 가장 좋아하는 딸기 아이스크림을 고르려고 해도, 얄미운 동생(MIN)이 중간에서 무조건 제일 맛없는 채소맛을 주려고 방해할 것을 알기 때문에, 동생이 어떻게든 막아도 최소한 초코맛은 먹을 수 있는 안전한 메뉴를 선제적으로 고르는 것과 같습니다.
Ⅲ. 융합 비교 및 다각도 분석 (Comparison & Synergy)
현대 AI에서 보드게임을 정복하기 위해 쓰는 미니맥스 방식과 알파고(AlphaGo) 등에서 쓰이는 강화학습 기반 MCTS(몬테카를로 트리 탐색)를 비교하면, 패러다임의 차이가 분명해진다.
| 비교 항목 | 미니맥스 (Minimax) | 몬테카를로 트리 탐색 (MCTS) | 판단 포인트 |
|---|---|---|---|
| 탐색 철학 | 완전 탐색 지향 (모든 가능성 계산) | 확률적 시뮬레이션 (무작위 롤아웃) | 틱택토/체커는 미니맥스, 바둑은 MCTS 압승 |
| 상대방 가정 | 항상 '완벽하고 완고한' 최적의 수만 둔다고 확신 | 확률적 분포를 가지며 때로는 실수도 한다고 유연히 대처 | 완벽한 상대방 전제 여부 |
| 평가 함수 의존도 | 극도로 높음 (휴리스틱 룰에 전적으로 의존) | 낮음 (끝까지 시뮬레이션하여 승패만 집계) | 도메인 지식 구축 비용 |
이 비교 매트릭스는 상태 공간이 상대적으로 작은 체스 시대(Deep Blue)에는 미니맥스가 정답이었으나, 우주 원자 수보다 가짓수가 많은 바둑에서는 무용지물이 됨을 시사한다. 미니맥스는 상대의 실수를 절대 기대하지 않으므로, 상대가 비합리적인 패턴을 보일 때 이를 이용해 큰 이득을 취하는 함정(Trap) 전술을 구사하는 데 구조적으로 취약하다. 실무에서는 이러한 한계를 보완하기 위해 두 기법을 앙상블(Ensemble)하여 사용하기도 한다.
📢 섹션 요약 비유: 미니맥스가 "상대방은 컴퓨터처럼 절대 실수하지 않을 완벽한 천재야"라고 겁먹고 방어 위주로 계산하는 소심한 바둑기사라면, MCTS는 "일단 수백 번 무작위로 치고받아보고 확률 높은 곳에 배팅하자"는 실전주의 파이터와 같습니다.
Ⅳ. 실무 적용 및 기술사적 판단 (Strategy & Decision)
실무 게임 인공지능 개발 시, 미니맥스를 교과서 그대로 재귀 호출하면 첫 턴에서 시스템이 프리징(응답 없음)에 빠진다. 따라서 제한된 환경 내에서 끊어내기 위한 강력한 운영 제어가 필수적이다.
도입 운영 및 안티패턴 방어
- 깊이 제한 (Depth Limit) 병목: 게임의 끝까지 계산할 수 없으므로,
Depth = 5정도로 재귀를 인위적으로 강제 종료(Cut-off)해야 한다. - 수평선 효과 (Horizon Effect) 안티패턴: 깊이 제한 바로 다음 턴(Depth = 6)에 여왕을 뺏기는 치명적 손실이 있는데, AI가 깊이 5까지만 보고 현재 상태가 유리하다고 착각하는 치명적 안티패턴.
- 실무 해결책: 수평선 효과를 막기 위해, 국지전(기물 교환 등)이 격렬하게 일어나는 노드에서는 깊이 제한을 일시적으로 풀어 끝까지 계산하게 하는 '정지 탐색(Quiescence Search)'을 반드시 추가로 연계해야 한다.
[실무 의사결정 트리: 깊이 제한에 따른 연산 시간 붕괴 통제]
[현재 게임 턴 진입]
├─ [알파-베타 가지치기 적용 O] ──► 탐색 속도 2배 이상 향상
│ └─ [시간 제한(예: 3초) 임박?]
│ ├─ [Yes] ──► 현재까지 계산된 최선의 수 즉시 반환 (Iterative Deepening)
│ └─ [No] ──► 깊이를 1 더 늘려서 재탐색 시도
└─ [알파-베타 가지치기 적용 X] ──► (도입 금지, OOM 발생 위험 극대화)
이 의사결정 트리는 실무 엔진이 어떻게 제한된 시간 안에 "가장 그럴싸한 정답"을 내놓는지 보여준다. 미니맥스의 심장부에 반복적 깊이 심화(Iterative Deepening) 타이머를 달아두지 않으면, 유저가 AI의 턴을 기다리다 지쳐 게임을 꺼버리는 운영 실패가 발생한다.
📢 섹션 요약 비유: 바둑 타이머 스위치와 같아서, 생각할 수 있는 시간 3초가 주어지면 1수 앞, 2수 앞, 3수 앞을 빠르게 반복해서 계산하다가 종이 울리면 가장 마지막에 생각한 최선의 수를 던지는 방식입니다.
Ⅴ. 기대효과 및 결론 (Future & Standard)
미니맥스 알고리즘은 폰 노이만의 최소극대화 정리(Minimax Theorem)를 전산학에 완벽히 이식한 사례로, 결정론적(Deterministic)이고 정보가 완전한 게임에서는 무결점의 인공지능을 구축하는 표준 해답이다.
미래의 AI 발전 방향에서는 이 미니맥스 구조를 밑바탕으로 깔고, 깊이 제한에 걸린 단말 노드의 '휴리스틱 점수'를 딥러닝 신경망이 판별하도록 융합하여 체스 챔피언을 꺾는 등 고도화가 완성되었다. 인간의 사고 구조 중 가장 보수적이고 논리적인 "최악 대비망"의 훌륭한 알고리즘적 구현체이다.
📢 섹션 요약 비유: 미니맥스는 비가 올지 눈이 올지 모르는 인생에서, "가장 최악의 폭풍우가 와도 내 집 지붕은 날아가지 않게" 기초 공사를 단단히 다지는 완벽한 비관주의 건축가입니다.
📌 관련 개념 맵 (Knowledge Graph)
- 알파-베타 가지치기 (Alpha-Beta Pruning) | 미니맥스 트리에서 결과에 영향을 주지 않는 불필요한 노드를 쳐내어 속도를 높이는 필수 최적화 기법
- 제로섬 게임 (Zero-Sum Game) | 내 이익이 상대의 손실과 완벽히 일치하여 총합이 0이 되는 체스, 바둑 같은 경쟁 환경
- 수평선 효과 (Horizon Effect) | 탐색 깊이 제한 바로 바깥에 숨어 있는 치명적 위험이나 이득을 시스템이 인지하지 못하는 오류 현상
- 정지 탐색 (Quiescence Search) | 수평선 효과 방지를 위해 불안정한 교전 상태에서는 깊이 제한을 무시하고 계속 탐색하는 기법
- 반복적 깊이 심화 (Iterative Deepening) | 제한 시간 내에 결과를 내기 위해 깊이 1, 2, 3으로 점진적으로 늘리며 미니맥스를 실행하는 타이머 기법
👶 어린이를 위한 3줄 비유 설명
- 내가 가장 큰 피자 조각을 고르려고 할 때, 동생은 나에게 가장 작은 조각을 남기려고 계속 방해해요.
- 미니맥스 알고리즘은 "동생이 제일 나쁘게 방해했을 때"를 미리 다 상상해봐요.
- 그래서 동생의 방해 속에서도, 내가 뺏길 수 없는 가장 튼튼하고 안전한 '최소한의 중간 크기 피자'를 무조건 사수하는 영리한 전략이랍니다.