Chess_with_AI / README.md
ncn2569's picture
PLEASE
eace830
---
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 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.