Metadata-Version: 2.1
Name: chess-tuning-tools
Version: 0.2.2
Summary: A collection of tools for local and distributed tuning of chess engines.
Home-page: https://github.com/kiudee/chess-tuning-tools
Author: Karlson Pfannschmidt
Author-email: kiudee@mail.upb.de
License: Apache Software License 2.0
Keywords: chess,tuning,optimization,engine
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.7
Requires-Dist: Click (>=7.0)
Requires-Dist: numpy (>=1.18)
Requires-Dist: scipy (>=1.3.2)
Requires-Dist: pytz
Requires-Dist: joblib
Requires-Dist: scikit-optimize
Requires-Dist: emcee (>=3.0.2)
Requires-Dist: psycopg2
Requires-Dist: bask (>=0.1.0)
Requires-Dist: sqlalchemy (>=1.3)

==================
Chess Tuning Tools
==================


.. image:: https://img.shields.io/pypi/v/chess-tuning-tools.svg
        :target: https://pypi.python.org/pypi/chess-tuning-tools

.. image:: https://img.shields.io/travis/kiudee/chess-tuning-tools.svg
        :target: https://travis-ci.org/kiudee/chess-tuning-tools

.. image:: https://readthedocs.org/projects/chess-tuning-tools/badge/?version=latest
        :target: https://chess-tuning-tools.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status




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 (Leela Chess Zero in particular) using distributed Bayesian optimization.
* Scoring matches using the pentanomial model for paired openings.


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

   pip install chess-tuning-tools

Furthermore, you need to have `cutechess-cli <https://github.com/cutechess/cutechess>`_
in the path. The tuning client will use it to run matches.

Then after extracting the current .zip package into another folder, make sure that you have the following directory
structure::

   folder/
   |---- networks/
   |     |---- 58613
   |     |---- other networks
   |---- openings/
   |     |---- ...
   |     |---- openings-6ply-1000.pgn
   |     |---- ...
   |---- dbconfig.json
   |---- lc0[.exe]
   |---- sf[.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.


Credits
-------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage


=======
History
=======

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.


