Skip to content

A collection of scripts aimed at efficiently tuning chess engine parameters.

License

Notifications You must be signed in to change notification settings

gekkehenker/chess-tuning-tools

 
 

Repository files navigation

Chess Tuning Tools

Documentation Status

A collection of tools for local and distributed tuning of chess engines.

Features

  • Optimization of chess engines using state-of-the-art Bayesian optimization.
  • Support for automatic visualization of the optimization landscape.
  • Scoring matches using the pentanomial model for paired openings.

Quick Start

In order to be able to start the tuning, first create a python environment and install chess-tuning-tools by typing:

pip install chess-tuning-tools

Furthermore, you need to have cutechess-cli in the path. The tuner will use it to run matches.

To execute the local tuner, simply run:

tune local -c tuning_config.json

Take a look at the usage instructions and the example configurations to learn how to set up the tuning_config.json file.

Distributed tuning

The distributed tuning framework is currently not actively supported. To be able to run the tuning client, you need the following directory structure:

folder/
|---- networks/
|     |---- networkid
|---- openings/
|     |---- ...
|     |---- openings.pgn
|     |---- ...
|---- dbconfig.json
|---- engine1[.exe]
|---- engine2[.exe]

Finally, the tuning client can be started as follows:

cd path/to/folder
tune run-client dbconfig.json

The client can be terminated gracefully by inputting ctrl-c once or terminated immediately by sending it twice.

You will also need to run a PostgreSQL database, which the server will use to post jobs for the clients to fetch and the clients to report their results to.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

About

A collection of scripts aimed at efficiently tuning chess engine parameters.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.0%
  • Makefile 2.0%