A collection of tools for local and distributed tuning of chess engines.
Project description
Chess Tuning Tools
A collection of tools for local and distributed tuning of chess engines.
Free software: Apache Software License 2.0
Documentation: https://chess-tuning-tools.readthedocs.io.
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.
History
0.5.0-beta (2020-08-03)
Add support for parameter range reduction. Since this potentially requires discarding some of the data points, it will also save a backup.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for chess-tuning-tools-0.5.0b0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4f9292b3f65bb17e43fddc4fc0ddfc45599f350d73b41d937814dc4aebed3bd |
|
MD5 | 922d12f398ac984643fa83963bbf2780 |
|
BLAKE2b-256 | 13d7eb4b3137726941431df166e14c84226ca19e8e9e93d9d2a335fd10b96336 |
Hashes for chess_tuning_tools-0.5.0b0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9643a33d82c134c60ded832351837115e2ad04b86751a3889848add8772cfa2 |
|
MD5 | 288ad7400ffa1f26999a5089601e72b9 |
|
BLAKE2b-256 | 33da3e2dd20bfc2bb18a0913f8d2965a08091fa35f4bb75cfe21f430e9f5bf63 |