diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 34 |
1 files changed, 7 insertions, 27 deletions
@@ -2,13 +2,11 @@ ## Overview -Details forthcoming, but at a glance: - 1. ctak is a C library for the game of Tak -2. ctaklm is a line-mode interface to ctak and a computer opponent - (for 5x5) -3. ct1986 is a similar interface, but designed for a Raspberry Pi Zero - running buildroot and displaying output on a character LCD. +2. ctaklm is a line-mode interface to ctak and a computer opponent (for 5x5) +3. ct1986 is a similar interface, but designed for a Raspberry Pi Zero running buildroot and displaying output on a character LCD. +4. cttei is a TEI-speaking game engine for use wherever TEI is accepted. +5. geminict is a special adaptation of ctak for use in a gemini CGI web-server. ## Building for the native platform @@ -16,33 +14,15 @@ Details forthcoming, but at a glance: ## Building for the Raspberry Pi Zero -Download and extract a recent version of buildroot into the working -directory. Edit `BUILDROOT_DIR=buildroot-2020.11.1` in `Makefile` to -point to the extracted directory. +Download and extract a recent version of buildroot into the working directory. Edit `BUILDROOT_DIR=buildroot-2020.11.1` in `Makefile` to point to the extracted directory. make pi ## The computer opponent -Standard adversarial tree search (α-β negamax) with iterative deepening, using a neural network evaluation function for leaves and also transposition tables implemented using Zobrist hasing and a chaining hash table. - -The architecture of the neural network is a standard, two-layer dense classification network -``` -_________________________________________________________________ - Layer (type) Output Shape Param # -================================================================= - input_1 (InputLayer) [(None, 28)] 0 - - dense (Dense) (None, 64) 1856 - - dense_1 (Dense) (None, 2) 130 +Standard adversarial tree search (α-β negamax) with iterative deepening, using a neural network evaluation function for leaves and also a transposition table keyed on the Zobrist hash. -================================================================= -Total params: 1,986 -Trainable params: 1,986 -Non-trainable params: 0 -``` -which was trained on the binary classification problem of predicting the winner from a given board state. As input the network is fed the top layer of the board only (see nn1986.c for details) as well as `flats used/flats remaining` fractions for both players and a single float indicating the parity of the board. At the time of training, on the dataset given by `resources/extract.sh`, this achieves ~75% accuracy on the validation set. +The architecture of the neural network is a standard, two-layer dense network which is trained exclusively through self-play using td-leaf (see `src/nn_train.py`). As input the network is fed the top layer of the board only as well as `flats used/flats remaining` fractions for both players and a single float indicating the parity of the board. ## License |
