_ _.. / ._ _. _ /\ ._ _. .' _ `\ \_ | (_| /_ \/ /--\ | (_| / /e)-,\ / / | ,_ | / '-(-.)/ An open-source neural network based engine for the chess variant .'--. \ ` Crazyhouse. The project is mainly inspired by the techniques described / `\ | in the Alpha-(Go)-Zero papers by Silver, Hubert, Schrittwieser et al. /` | / /`\.-. It started as a semester project at the Technische Universität Darmstadt .' ; / \_/__/ as part of the course "Deep Learning: Architectures & Methods" held by .'`-'_ /_.'))).-` \ Prof. Kristian Kersting, Prof. Johannes Fürnkranz et al. in summer 2018. / -'_.'---;`'-))).-'`\_/ (__.'/ /` .'` Developers: Johannes Czech, Moritz Willig, Alena Beyer (_.'/ /` /` Source Code (GitHub): QueensGambit/CrazyAra-AI (GPLv3-License) _|.' /` Website: http://www.crazyara.org/ jgs.-` __.'| Lichess: https://lichess.org/@/CrazyAra .-'|| | ASCII-Art: Joan G. Stark (http://www.oocities.org/spunk1111/) \_`/ ASCII-Font: Mini by Glenn Chappell 4/93, Paul Burton
Official Repository of the Crazyhouse-Bot CrazyAra which is powered by a Deep Convolutional Neural Network and is compatible with the Universial-Chess-Interface (UCI).
Please follow the instructions in the wiki-page at:
For more details about the training procedure visit the wiki pages:
- Model architecture
- Input and output representation
- Network visualization
- Engine settings
- Programmer's guide
You can also find our original project proposal document as well as our presentation about CrazyAra 0.1:
How strong is CrazyAra 0.3.1?
CrazyAra 0.3.1 played multiple world champion Justin Tan (LM JannLee) at 18:00 GMT on 21st December in five official matches and won 4-1. You can find a detailed report about the past event published by okei here:
CrazyAra 0.3.1 was also put to the test against known crazyhouse engines:
This source-code including all project files is licensed under the GPLv3-License if not stated otherwise.
See LICENSE for more details.
Main libraries used in this project
- python-chess: A pure Python chess library
- MXNet: A flexible and efficient library for deep learning
- numpy: The fundamental package for scientific computing with Python
- zarr: An implementation of chunked, compressed, N-dimensional arrays
CrazyAra's knowledge in the game of crazhyouse is only based on human played games of lichess.org database.
The most active players which influence the playstyle of CrazyAra the most are:
- LM JannLee
- IM opperwezen
Please have a look at Supervised training for more detailed information.
Links to other similar projects
In CrazyAra v.0.1.0 the Monte-Carlo-Tree-Search (MCTS) was imported and adapted from the following project:
For CrazyAra v.0.2.0 the MCTS was rewritten from scratch adding new functionality:
- Reusing the old search tree for future positions
- Node and child-nodes structure using numpy-arrays
- Always using mate-in-one connection if possible in the current search tree
AlphaGo Zero paper: https://arxiv.org/pdf/1712.01815.pdf
DeepMind Blogpost: https://deepmind.com/blog/alphago-zero-learning-scratch/
How AlphaGo Zero works - Google DeepMind https://www.youtube.com/watch?v=MgowR4pq3e8
Deep Mind's AlphaGo Zero - EXPLAINED https://www.youtube.com/watch?v=NJBLx29JuHs
A Simple Alpha(Go) Zero Tutorial https://web.stanford.edu/~surag/posts/alphazero.html
AlphaGo Zero - How and Why it Works: http://tim.hibal.org/blog/alpha-zero-how-and-why-it-works/
Simple Chess AI implementation https://github.com/mnahinkhan/Chess/blob/master/Chess/chess.py