DavidRSeWell / VikingZero

A project to help in understanding AlphaZero. From minimax to AlphaZero

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VikingZero

This repository is an effort to understand the AlphaGo family of algorithms as part of the fullfillment for a MS thesis.

Paper Link: From MDP to AlphaZero

Installation

pip install vikingzero

Or if you are familiar with poetry (https://python-poetry.org/) you can install from source using the following

git clone https://github.com/befeltingu/VikingZero.git
cd VikingZero
poetry install

You can also use the setup.py file or requriements file for installing from source.

Usage

For example of how to train an agent go to notebooks/run_alphago.ipynb and run the cells.

This project uses yaml files for run configurations. notebooks/ has a few example files to get started.

There is a notebooks/step_tutorial.ipynb file that is meant as a tutorial for better understanding of the Monte Carlo Tree search steps. It used pydot with graphviz and requires that you have an installation of graphviz.

Agents

There are a few types of agents that you can experiment with in this project.

  • MiniMax
  • AlphaBeta Pruning
  • AlphaBeta Pruing with depth limited search
  • Monte carlo tree search - UCT
  • AlphaZero - ( Look to notebooks/connect4.yaml for a connect4 configuration)

Play

Go to https://github.com/befeltingu/VikingDashboard for a dashboard where you can play against some pre trained models

Alt text

About

A project to help in understanding AlphaZero. From minimax to AlphaZero


Languages

Language:Jupyter Notebook 81.0%Language:Python 19.0%