Skip to main content

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

Project description

Chess Tuning Tools

https://img.shields.io/pypi/v/chess-tuning-tools.svg https://img.shields.io/travis/kiudee/chess-tuning-tools.svg 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.

  • 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.

History

0.4 (2020-08-02)

  • Add new standalone tuning script. With this it is possible to tune parameters of an engine without having to set up the distributed tuning framework. Usage instructions and example configurations are included.

0.3 (2020-03-02)

  • Support for round-flat prior distributions

  • Fix parsing of priors and benchmark results

0.2.0 (2020-02-10)

  • Completely new database implemented in SQLAlchemy.

  • Pentanomial scoring of matches, accounting for the paired openings and different draw rates of time controls.

0.1.6 (2020-02-02)

  • Allow timed termination of the client by the option --terminate-after

0.1.5 (2020-02-02)

  • Support for non-increment time controls

0.1.4 (2020-02-02)

  • Allow graceful termination of tuning-client using ctrl-c.

0.1.3 (2020-02-01)

  • Implement probabilistic load balancing support in the clients.

0.1.2 (2020-02-01)

  • Simplified tuning client tutorial and logging.

0.1.0 (2020-01-31)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chess-tuning-tools-0.4.0.tar.gz (36.2 kB view hashes)

Uploaded Source

Built Distribution

chess_tuning_tools-0.4.0-py2.py3-none-any.whl (32.7 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page