이 문서에서는 프로젝트에 포함된 AI 전략들을 설명합니다.
1. 내장 전략
🔹 RandomAI
- 무작위로 빈 칸 중 하나를 선택하여 착수합니다.
- 구현:
app/strategies/random_ai.py
- 장점: 빠르며 디버깅에 유용함
- 단점: 약한 전략, 실용성 없음
🔹 MinimaxAI
- 미니맥스 알고리즘 기반 전략입니다.
- 구현:
app/strategies/minimax_ai.py
- 깊이 우선 탐색을 통해 수를 예측하고 최적의 수를 선택합니다.
- 장점: 전략적이며 이기기 쉽지 않음
- 단점: 느릴 수 있음 (계산 복잡도 ↑)
🔹 CNNStrategy
- 딥러닝(CNN) 기반 전략입니다.
- 구현:
app/strategies/cnn_strategy.py
- gomocup 대회 기보 데이터를 기반으로 학습되었으며, 20×20 데이터를 19×19 보드에 맞게 전처리하였습니다.
- CNN이 4목 상황에서 수비를 선택하는 문제를 보완하기 위해, 승리 수(5목)가 가능한 경우 알고리즘적으로 처리하여 종료 수를 우선 적용합니다.
- MLOps 파이프라인을 통해 모델을 주기적으로 파인튜닝하며, 최신 기보 데이터를 반영하여 성능을 지속적으로 개선합니다.
- 장점: 패턴 인식 기반으로 직관적인 수를 선택함
- 단점: 학습 데이터 품질과 모델 구조에 따라 성능이 달라질 수 있음
- 모델 학습 및 구현: https://github.com/kimjin1022/Gomoku_Model