All Projects → jbradberry → Mcts

jbradberry / Mcts

Licence: mit
Board game AI implementations using Monte Carlo Tree Search

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Mcts

Ncrfpp
NCRF++, a Neural Sequence Labeling Toolkit. Easy use to any sequence labeling tasks (e.g. NER, POS, Segmentation). It includes character LSTM/CNN, word LSTM/CNN and softmax/CRF components.
Stars: ✭ 1,767 (+1127.08%)
Mutual labels:  artificial-intelligence
Belajarpython.com
Open Source Indonesian Python Programming Tutorial Site
Stars: ✭ 141 (-2.08%)
Mutual labels:  artificial-intelligence
Keras age gender
Easy Real time gender age prediction from webcam video with Keras
Stars: ✭ 143 (-0.69%)
Mutual labels:  artificial-intelligence
Evol
a python grammar for evolutionary algorithms and heuristics
Stars: ✭ 138 (-4.17%)
Mutual labels:  artificial-intelligence
Origami
🔓 🔑 🔐 Origami: Artificial Intelligence as a Service
Stars: ✭ 140 (-2.78%)
Mutual labels:  artificial-intelligence
Image Caption Generator
[DEPRECATED] A Neural Network based generative model for captioning images using Tensorflow
Stars: ✭ 141 (-2.08%)
Mutual labels:  artificial-intelligence
Cocoaai
🤖 The Cocoa Artificial Intelligence Lab
Stars: ✭ 134 (-6.94%)
Mutual labels:  artificial-intelligence
Scalphagozero
An independent implementation of DeepMind's AlphaGoZero in Scala, using Deeplearning4J (DL4J)
Stars: ✭ 144 (+0%)
Mutual labels:  artificial-intelligence
Tabnine Intellij
Jetbrains IDEs client for TabNine. Compatible with all IntelliJ-based IDEs. https://plugins.jetbrains.com/plugin/12798-tabnine
Stars: ✭ 140 (-2.78%)
Mutual labels:  artificial-intelligence
Rivescript Python
A RiveScript interpreter for Python. RiveScript is a scripting language for chatterbots.
Stars: ✭ 142 (-1.39%)
Mutual labels:  artificial-intelligence
Image classifier
CNN image classifier implemented in Keras Notebook 🖼️.
Stars: ✭ 139 (-3.47%)
Mutual labels:  artificial-intelligence
Nlpaug
Data augmentation for NLP
Stars: ✭ 2,761 (+1817.36%)
Mutual labels:  artificial-intelligence
Marvin Python Toolbox
Marvin AI has been accepted into the Apache Foundation and is now available at https://github.com/apache/incubator-marvin
Stars: ✭ 142 (-1.39%)
Mutual labels:  artificial-intelligence
Pygmo2
A Python platform to perform parallel computations of optimisation tasks (global and local) via the asynchronous generalized island model.
Stars: ✭ 134 (-6.94%)
Mutual labels:  artificial-intelligence
Nd4j
Fast, Scientific and Numerical Computing for the JVM (NDArrays)
Stars: ✭ 1,742 (+1109.72%)
Mutual labels:  artificial-intelligence
Ravens
Train robotic agents to learn pick and place with deep learning for vision-based manipulation in PyBullet. Transporter Nets, CoRL 2020.
Stars: ✭ 133 (-7.64%)
Mutual labels:  artificial-intelligence
Lazy
Lazy, AI chatbot service.
Stars: ✭ 141 (-2.08%)
Mutual labels:  artificial-intelligence
Mlkit
A simple machine learning framework written in Swift 🤖
Stars: ✭ 144 (+0%)
Mutual labels:  artificial-intelligence
Tabnine Sublime
Tabnine Autocomplete AI: JavaScript, Python, TypeScript, PHP, C/C++, HTML/CSS, Go, Java, Ruby, C#, Rust, SQL, Bash, Kotlin, Julia, Lua, OCaml, Perl, Haskell, React
Stars: ✭ 144 (+0%)
Mutual labels:  artificial-intelligence
Awesome Quantum Machine Learning
Here you can get all the Quantum Machine learning Basics, Algorithms ,Study Materials ,Projects and the descriptions of the projects around the web
Stars: ✭ 1,940 (+1247.22%)
Mutual labels:  artificial-intelligence

Monte Carlo Tree Search

This is an implementation of an AI in Python using the UCT Monte Carlo Tree Search algorithm.

The Monte Carlo Tree Search AIs included here are designed to work with jbradberry/boardgame-socketserver <https://github.com/jbradberry/boardgame-socketserver>_ and jbradberry/boardgame-socketplayer <https://github.com/jbradberry/boardgame-socketplayer>_.

Requirements

  • Python 2.7, 3.5+; PyPy; PyPy3
  • six

Getting Started

To set up your local environment you should create a virtualenv and install everything into it. ::

$ mkvirtualenv mcts

Pip install this repo, either from a local copy, ::

$ pip install -e mcts

or from github, ::

$ pip install git+https://github.com/jbradberry/mcts#egg=mcts

Additionally, you will need to have jbradberry/boardgame-socketplayer <https://github.com/jbradberry/boardgame-socketplayer>_ installed in order to make use of the players.

This project currently comes with two different Monte Carlo Tree Search players. The first, jrb.mcts.uct, uses the count of the number of wins for a node to make its decisions. The second, jrb.mcts.uctv instead keeps track of the evaluated value of the board for the playouts from a given node ::

$ board-play.py t3 jrb.mcts.uct    # number of wins metric
$ board-play.py t3 jrb.mcts.uctv   # point value of the board metric

These AI players can also take additional arguments:

time (default: 30) The amount of thinking time allowed for the AI to make its decision, in seconds. Ex: $ board-play.py t3 jrb.mcts.uct -e time=5

max_actions (default: 1000) The maximum number of actions, or plays, to allow in one of the simulated playouts before giving up. Ex: $ board-play.py t3 jrb.mcts.uct -e max_actions=500

C (default: 1.4) The exploration vs. exploitation coefficient at the heart of the UCT algorithm. Larger values prioritize exploring inadequately covered actions from a node, smaller values prioritize exploiting known higher valued actions. Experimentation with this variable to find reasonable values for a given game is recommended. Ex: $ board-play.py t3 jrb.mcts.uct -e C=3.5

The -e flag may be used multiple times to set additional variables.

Games

Compatible games that have been implemented include:

  • Reversi <https://github.com/jbradberry/reversi>_
  • Connect Four <https://github.com/jbradberry/connect-four>_
  • Ultimate (or 9x9) Tic Tac Toe <https://github.com/jbradberry/ultimate_tictactoe>_
  • Chong <https://github.com/jbradberry/chong>_
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].