A "build to learn" implementation of the Alpha Zero algorithm written in Python that uses LightGBM (Gradient Boosted Decision Trees) in place of a Deep Neural Network for value/policy functions.
A few environments (i.e., games) are implemented: Quoridor, Connect Four, and Tic-Tac-Toe.
python3.7 play.py <environment> <species-generation> <species-generation> <time-to-move>
python3.7 play.py connect_four gbdt-1 human-1 5.0
python3.7 train_bot.py <environment> <species> <num batches>
python3.7 train_bot.py connect_four gbdt 10
If you haven't already, install pyenv/pyenv-virtualenv (see Install pyenv/pyenv-virtualenv below)
Clone repo:
git clone git@github.com:cgreer/alpha-zero-boosted.git
Create a virtual environment for the project:
cd alpha-zero-boosted
pyenv install 3.7.7
pyenv virtualenv 3.7.7 alpha_boosted_env
pyenv local alpha_boosted_env
Install packages:
pip install -r requirements.txt
MacOS Issue: Because some wheels don't appear to be built properly, you may need to first install libomp and then retry installing packages:
brew install libomp
# Then try installing again
pip install -r requirements.txt
Install the plugin:
brew install pyenv
Note: These instructions are copied here for convenience. Check pyenv-virtualenv to ensure they are up to date.
Install the plugin:
brew install pyenv-virtualenv
Add the following two lines to your profile file (~/.zprofile if using zsh, ~/.bash_profile if bash):
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Restart terminal (so profile commands above execute).