도구스개발

미니맥스 알고리즘 계산기

게임 트리의 리프 값을 넣으면 미니맥스로 각 노드 값을 밑에서부터 계산합니다. 알파-베타 가지치기가 실제로 어느 리프를 안 보고 넘어가는지도 함께 보여 줍니다.

가지 3개 · 깊이 2단계면 리프가 9개 필요합니다

루트(최종) 값 — 최대화 플레이어 기준

3

리프 9개 중 알파-베타로 7개만 평가, 2개는 건너뜀

루트

3

최소화 노드

322

리프

31282461452
루트는 왜 항상 최대화인가. 루트는 “지금 수를 두려는 나”입니다. 나는 유리한(값이 큰) 수를 고르고, 한 단계 내려가 상대 차례가 되면 상대는 내게 불리한(값이 작은) 수를 고릅니다. 이렇게 최대화·최소화가 매 단계 번갈아 나옵니다.
가지치기는 답을 바꾸지 않습니다. 알파-베타는 이미 확보한 최선의 값을 기준으로, 남은 가지를 봐도 결과가 절대 안 바뀐다는 게 확실해지면 그 가지를 건너뜁니다. 그래서 순수 미니맥스와 늘 같은 루트 값 3을 내면서 리프 2개만큼 덜 평가합니다. 자식을 보는 순서를 바꾸면 어느 리프가 잘리는지는 달라질 수 있지만, 루트 값은 바뀌지 않습니다.

사용 방법

  1. 1가지 수(한 노드가 갈라지는 자식 수)와 깊이(리프까지의 단계)를 고릅니다.
  2. 2리프 값(말단 상태의 평가 점수)을 왼쪽부터 순서대로 콤마로 넣습니다.
  3. 3레벨별로 밑에서부터 쌓인 미니맥스 값과 최종 루트 값을 봅니다.
  4. 4알파-베타 가지치기가 어느 리프를 안 보고 건너뛰었는지 확인합니다.

자주 묻는 질문

번갈아 두는 두 사람 게임에서, 내가 둘 차례에는 내게 가장 유리한 수를 고르고 상대가 둘 차례에는 상대가 내게 가장 불리한 수를 고른다고 가정해 최적의 수를 찾는 탐색 방법입니다. 체스·틱택토처럼 완전정보 게임의 AI가 기본으로 쓰는 알고리즘입니다.

이 계산기의 루트는 "지금 수를 두려는 나"를 뜻합니다. 나는 내게 유리한(값이 큰) 수를 고르므로 최대화이고, 한 단계 내려가 상대 차례가 되면 상대는 내게 불리한(값이 작은) 수를 고르므로 최소화입니다. 이렇게 최대화·최소화가 매 단계 번갈아 나옵니다.

트리 전체를 다 보지 않아도 같은 답이 나온다는 걸 이용해 일부 가지의 평가를 건너뜁니다. 지금까지 확보한 최선의 값(알파·베타)을 기준으로, 남은 가지를 봐도 결과가 절대 안 바뀐다는 게 확실해지면 그 가지는 평가하지 않고 넘어갑니다.

네, 같습니다. 알파-베타 가지치기는 트리의 값을 하나도 바꾸지 않습니다. 순수 미니맥스와 항상 같은 루트 값을 내면서, 그 값을 구하는 데 굳이 안 봐도 되는 리프만 건너뜁니다.

네. 이 계산기는 자식을 왼쪽부터 순서대로 본다고 가정합니다. 같은 트리라도 자식의 순서를 바꾸면 어느 리프가 잘리는지는 달라질 수 있습니다(단, 최종 루트 값은 바뀌지 않습니다). 유리한 수를 먼저 살펴볼수록 더 많이 잘립니다.

알아두면 좋은 점

  • 리프가 정확히 가지 수^깊이 개여야 트리를 채울 수 있습니다. 개수가 안 맞으면 계산하지 않습니다.
  • 가지치기가 건너뛰는 리프 수는 리프 값의 순서에 따라 달라집니다. 같은 값이라도 순서를 바꿔 넣으면 다른 리프가 잘릴 수 있습니다.
  • 실제 게임 AI는 여기에 반복 심화·수 순서 정렬 등을 더해 더 적극적으로 가지치기합니다. 이 도구는 알고리즘의 기본 동작만 보여줍니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.