--- title: Chess With AI emoji: ♟️ colorFrom: red colorTo: yellow sdk: docker app_port: 8501 tags: - streamlit - chess - minimax - machine-learning - imitation-learning pinned: false short_description: Chess game với Minimax AI và ML Agent (Imitation Learning) --- # ♟️ Chess with AI Dự án cờ vua tích hợp 2 loại AI khác nhau, cho phép người dùng thách đấu trực tiếp trên trình duyệt. ## Chế độ chơi **Người vs Minimax AI** — AI cổ điển sử dụng thuật toán Minimax với Alpha-Beta Pruning và Quiescence Search. Có thể chỉnh độ sâu tìm kiếm từ 1-4, mạnh và đáng tin cậy. **Người vs ML Agent** — AI học bằng Imitation Learning, được train trên dữ liệu PGN của các kỳ thủ top thế giới (Carlsen, Nakamura, Caruana...). Agent bắt chước phong cách chơi của con người nhưng không có khả năng tính toán chiến thuật sâu — nên đôi lúc sẽ đi những nước trông có vẻ... sáng tạo. ## Kiến trúc **Minimax Engine** - Minimax + Alpha-Beta Pruning (Negamax implementation) - Quiescence Search để tránh horizon effect - Hàm đánh giá: material score + center control + mobility **ML Agent** - Mô hình CNN: `Conv2d(13→64) → Conv2d(64→128) → FC(8192→256) → FC(256→N)` - Input: bàn cờ dạng tensor 13×8×8 (12 kênh quân cờ + 1 kênh nước đi hợp lệ) - Output: phân phối xác suất trên toàn bộ nước đi đã thấy trong tập train - Training: Imitation Learning trên ~16 file PGN, 100 epochs - Giới hạn: không có look-ahead, không self-play → chơi theo pattern là chính ## Tech Stack - `python-chess` — logic bàn cờ - `PyTorch` — model ML - `Streamlit` — giao diện web - `Docker` — deployment ## Chạy local ```bash git clone https://github.com/ncn2569/Chess-game-with-AI-and-ML cd Chess-game-with-AI-and-ML pip install -r requirements.txt streamlit run src/streamlit_app.py ``` ## Nguồn dữ liệu train PGN của các kỳ thủ: Carlsen, Nakamura, Caruana, Ding Liren, Anand, So, Erigaisi và một số kỳ thủ khác — tổng cộng khoảng 16 file.