project / MCTS in Swift

See project at github.com.

This project is a work-in-progress addition to the OpenSpiel library. It adds an MCTS implementation that will form the basis of a simple AlphaZero trainer.

The design leverages some of the powerful type system abilities of Swift to achieve a maximally composable design, which allows the underlying tree-building implementation to be shared between several algorithms (various variants of MCTS, as well as Alpha-Beta search), which additionally makes them very clear.

The fundamental Swift constructs are:

I’ll add more detail here as I work on this branch.