Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gaviota support for uci and selfplay #2044

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

hans-ekbrand
Copy link
Contributor

This patch provides support for Gaviota endgame table databases in both uci mode and selfplay mode. The intended use case that motivated me writing it is to generate better training data, but since uci mode is covered, it can be used generally.

The implementation is inspired by the implementation of syzygy support, and much of the code is copied from rescorer/rescorer.cc which already supports Gaviota. Unlike the syzygy implementation it provides no new classes since Gaviota support only required two new functions, both located in search.cc.

The implementation is done via Search::MakeRootFilter() which deletes legal but sub-optimal moves from the root node before search is started. With syzygy, optimal included every move that did not worsen the game outcome, but with Gaviota support we can define optimal moves as moves "resulting in the shortest path to mate" (for the winning side) and "resulting in the longest path to mate" for the losing side. (For drawn positions both syzygy and Gaviota treats all non-losing moves as optimal).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant