Spaces:
Sleeping
Sleeping
metadata
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 MLStreamlit— giao diện webDocker— deployment
Chạy local
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.