# RuyTune

**Home * Automated Tuning * RuyTune**

**RuyTune**,

an open source framework for tuning evaluation function parameters, written by Álvaro Begué in C++, released on Bitbucket ^{[2]} as introduced in November 2016 ^{[3]}. RuyTune applies logistic regression using a limited-memory BFGS, a quasi-Newton method that approximates the Broyden–Fletcher–Goldfarb–Shanno algorithm with limited amount of memory. It uses the *libLBFGS* library ^{[4]} along with reverse-mode automatic differentiation and requires that the evaluation function is converted to a C++ template function where the score type is a template parameter, and a database of quiescent positions with associated results ^{[5]}.

# Method

The function to minimize the mean squared error of the prediction is:

where:

- N is the number of test positions.
- Ri is the result of the game corresponding to position i;
**-1**for black win,**0**for draw and**+1**for white win. - qi is corresponding to position i, the value returned by the chess engine evaluation function. (Computing the gradient on the QS is a waste of time - it is much faster to run the QS saving the PV and then compute the gradient using the evaluation function of the end-of-PV position - and not worry too much about the fact that tweaking the evaluation function could result in a different position being picked
^{[6]}). - Sigmoid is implemented by hyperbolic tangent to convert centipawn scores into an expected result in [-1,1].

```
Sigmoid(s) = tanh(0.0043s)
```

# See also

# Forum Posts

- A database for learning evaluation functions by Álvaro Begué, CCC, October 28, 2016
- C++ code for tuning evaluation function parameters by Álvaro Begué, CCC, November 10, 2016
- Re: Texel tuning method question by Peter Österlund, CCC, June 07, 2017

- Re: Texel tuning method question by Álvaro Begué, CCC, June 07, 2017

# External Links

# References

- ↑ tanh(0.43s) , s=-10 to 10 pawnunit plot by Wolfram Alpha
- ↑ alonamaloh / ruy_tune — Bitbucket
- ↑ C++ code for tuning evaluation function parameters by Álvaro Begué, CCC, November 10, 2016
- ↑ libLBFGS: L-BFGS library written in C
- ↑ A database for learning evaluation functions by Álvaro Begué, CCC, October 28, 2016
- ↑ Re: Texel tuning method question by Álvaro Begué, CCC, June 07, 2017