미니맥스 알고리즘
미니맥스 알고리즘은 두 참가자가 순서대로 행동하는 결정적 영합 게임에서 최선의 수를 선택한다 게임 트리 탐색 분야에서 이 문제를 해결하기 위한 계산 모델을 제공하며, 실제 구현에서는 상태를 표현하는 방법과 단계별 조건을 정의해야 한다. 알고리즘의 목표, 최적성 또는 오차의 보장 여부는...
| 분류 | 알고리즘 · 게임 트리 탐색 |
|---|---|
| 해결 문제 | 두 참가자가 순서대로 행동하는 결정적 영합 게임에서 최선의 수를 선택한다 |
| 핵심 절차 | 현재 차례의 플레이어는 자기에게 유리한 점수를 최대화하고 상대 차례에서는 반대로 점수가 최소가 되는 수를 선택한다고 가정한다 |
| 연산·성능 | 분기수 b, 탐색 깊이 d에서 O(b^d) 시간·O(d) DFS 스택 |
| 사용 전제 | 완전정보·영합·상대의 최적 대응이라는 게임 모델이 필요하다 |
| 참고 자료 | 관련 기술 문서 |
| 관련 기술 | 알고리즘, 계산 복잡도 |
미니맥스 알고리즘은 두 참가자가 순서대로 행동하는 결정적 영합 게임에서 최선의 수를 선택한다 게임 트리 탐색 분야에서 이 문제를 해결하기 위한 계산 모델을 제공하며, 실제 구현에서는 상태를 표현하는 방법과 단계별 조건을 정의해야 한다. 알고리즘의 목표, 최적성 또는 오차의 보장 여부는 사용하는 계산 모델에 따라 해석한다.[1]
동작 방식은 현재 차례의 플레이어는 자기에게 유리한 점수를 최대화하고 상대 차례에서는 반대로 점수가 최소가 되는 수를 선택한다고 가정한다. 말단 상태부터 평가값을 위로 전달한다. 각 처리 단계에서 상태·값·데이터 구조의 의미가 유지되도록 구현하고, 알고리즘의 종료 또는 수렴을 판정하는 조건을 함께 둔다.
복잡도 및 실행 조건은 분기수 b, 탐색 깊이 d에서 O(b^d) 시간·O(d) DFS 스택 올바른 활용에는 완전정보·영합·상대의 최적 대응이라는 게임 모델이 필요하다 입력의 크기, 데이터 분포와 처리 환경이 달라질 때 성능 또는 결과가 어떻게 달라지는지도 중요한 평가 대상이다.
구체적인 적용을 보면 체스·오목·게임 AI 탐색에 사용한다. 깊이 제한이 있는 구현에서는 휴리스틱 평가 함수를 사용하고 알파-베타 가지치기로 불필요한 분기를 줄인다. 다른 방법과 비교할 때 계산 비용, 결과의 정확성, 입력 전제 및 구현 복잡성에 따라 적절한 기법을 선택하게 된다. 원래 모델의 전제가 성립하는지를 확인하면 실용적인 코드 구현과 이론 분석을 연결할 수 있다.[2]