• Stars
    star
    151
  • Rank 246,057 (Top 5 %)
  • Language
    C++
  • License
    MIT License
  • Created about 11 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Monte Carlo Tree Search with UCT with a couple of example games.

This library has been merged into monolith and will not be updated further here.

Build Status

The search algorithm is quite fast and seems to work pretty well.

Features

  • Multi-core computation (root parallelization [1]).
  • Available games:
    • Connect four (text-based)
    • Nim (text-based)

Requirements

  • C++11, nothing else, for the actual search algorithm.
  • CMake is useful for building.
  • If the compiler support OpenMP it will be used for timing.
  • A graphical Go game is available if Cinder is found.

Performance

I evaluate performance when computing the first move for connect-four on an 8-core computer. With Visual Studio 2012 (64-bit), I get 1.7 million complete games per second.

References

  1. Chaslot, G. M. B., Winands, M. H., & van Den Herik, H. J. (2008). Parallel monte-carlo tree search. In Computers and Games (pp. 60-71). Springer Berlin Heidelberg.

More Repositories

1

quickjs

Thin Python wrapper of https://bellard.org/quickjs/
Python
175
star
2

clang-wasm

How to build webassembly files with nothing other than standard Clang/llvm.
C++
143
star
3

SuiteSparse

A shallow fork of SuiteSparse adding build files for Visual Studio and support for ACML
C
100
star
4

monolith

A C++ monorepo for discrete and continuous optimization. Batteries included!
Jupyter Notebook
98
star
5

patch-inpainting

Image inpainting using coherency senstitive hashing
MATLAB
52
star
6

spii

A library for unconstrained minimization of smooth functions using Newton's method or L-BFGS.
C++
35
star
7

submodular

Library for minimizing Pseudo-Boolean functions
C++
27
star
8

qepcad

Quantifier Elimination by Partial Cylindrical Algebraic Decomposition
C
24
star
9

realtimechess

In Real-time Chess (or Kung-Fu Chess, Ninja Chess), all pieces can be moved simultaneously!
Python
20
star
10

sexton

Hex editor written in Python
Python
16
star
11

opencv_srgb_gamma

sRGB gamma tranformations in C++ and Python
Jupyter Notebook
16
star
12

easy-IP

C++ modelling library for integer programming
C++
15
star
13

CXSparse

A shallow fork of CXSparse adding build files for Visual Studio
C
14
star
14

surfmex

Extremely simple wrapper around OpenCV for SURF
C++
13
star
15

curve_extraction

C++ shortest path with curvature and torsion taken into account
C++
12
star
16

rapidsvg

Renders SVG files containing lines very quickly.
C++
7
star
17

glpk

A shallow fork of GLPK made re-entrant with CMake build files. Tests pass with Visual Studio, Clang, and GCC.
C
7
star
18

hep-2

HEp-2 Cells Classification
C
6
star
19

reverb

Calculates the room RT60 reverberation time by sending out tones
Python
4
star
20

numpy_display

Formats numpy matrices in an IPython Notebook
Python
2
star
21

wikipedia

Scripts for automated processing of Wikipedia database dumps
Python
2
star
22

surfaces

Curvature regularization for surfaces
C++
1
star
23

emscripten_cmake

A simple example showing how to use Emscripten with CMake
C++
1
star
24

quickcd

Two-hour project: Quick directory switching with statistics and fuzzy matching.
Python
1
star