A simple package to allow users to run Monte Carlo Tree Search on any perfect information domain
This package provides a simple way of using Monte Carlo Tree Search in any perfect information domain.
pip install mcts
Without pip: Download the zip/tar.gz file of the latest release, extract it, and run
python setup.py install
In order to run MCTS, you must implement a
State class which can fully describe the state of the world. It must also implement four methods:
getPossibleActions(): Returns an iterable of all actions which can be taken from this state
takeAction(action): Returns the state which results from taking action
isTerminal(): Returns whether this state is a terminal state
getReward(): Returns the reward for this state. Only needed for terminal states.
You must also choose a hashable representation for an action as used in
takeAction. Typically this would be a class with a custom
__hash__ method, but it could also simply be a tuple or a string.
Once these have been implemented, running MCTS is as simple as initializing your starting state, then running:
from mcts import mcts mcts = mcts(timeLimit=1000) bestAction = mcts.search(initialState=initialState)
Feel free to raise a new issue for any new feature or bug you've spotted. Pull requests are also welcomed if you're interested in directly improving the project.