Skip to content

rocanaan/hanabi-ad-hoc-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a project based on DeepMind's Hanabi Learning Environment with a focus on learning for ad-hoc teamplay). The main additions are:

  • /Experiments/Rulebased contains implementation of some Hanabi Rule-based agents previously introduced by Walton-Rivers et al. and used in the Hanabi CoG Competition.
  • /Experiments/Train_Paired_DQN integrates rule-based agents in the Rainbow training procedure to train variants of Rainbow specialized at playing with any subset of these agents.
  • /Experiments/Behavioral_Evaluation performs behavioral analysis of the games played, keeping track of metrics such as communicativeness, information per play (IPP) and number of correct/incorrect plays. Communicativeness and IPP were first introduced in this related paper

Installation

Evaluating trained models

Training agents

Run run_from_checkpoint_rule_based.sh to get performance of rainbow agents vs. rule-based agents. Run run_from_checkpoint_rainbow.sh to get performance of rainbow agents vs. rainbow agents.

Original readme by DeepMind:

This is not an officially supported Google product.

hanabi_learning_environment is a research platform for Hanabi experiments. The file rl_env.py provides an RL environment using an API similar to OpenAI Gym. A lower level game interface is provided in pyhanabi.py for non-RL methods like Monte Carlo tree search.

Getting started

sudo apt-get install g++         # if you don't already have a CXX compiler
sudo apt-get install cmake       # if you don't already have CMake
sudo apt-get install python-pip  # if you don't already have pip
pip install cffi                 # if you don't already have cffi
cmake .
make
python rl_env_example.py         # Runs RL episodes
python game_example.py           # Plays a game using the lower level interface