Rybka 2.3

This version is the last upgrade for the Rybka 2 series.

Algorithmic Improvements

As always, the main focus of the work since the last release has been the search and evaluation heuristics. I believe that this Rybka version will show improved behavior in many different types of positions.

I'd like to especially thank IM Larry Kaufman for his work in helping to improve Rybka's behavior in exchanging pieces and pawns. Larry has now done a tremendous amount of work on this complex topic and you'll see the fruits of it here in Rybka 2.3 as well as hopefully in Rybka 3.

Playing Strength

The playing strength seems modestly improved since the last version. For what it's worth, I ran a blitz match (1' + 1") between Rybka 2.3 and Rybka 2.2n2 and got a result of: +245 =607 -193 (52.5%, +17 Elo).


There is one interesting new feature, which we will call the "randomizer". The idea is to allow a user to play many games from a single starting position in order to collect statistics about that position. A randomized Rybka will keep track of the previous games and not repeat previous variations, so that a match between two randomized Rybkas will systematically explore the space of variations from the starting position.

The following are steps for playing a match between two randomized Rybkas from some starting position:

1) Create two separate directories (anywhere on your machine).

2) Put a copy of "Rybka v2.3.x64.exe" in each directory. (Or "Rybka v2.3.w32.exe", heaven forbid.)

3) Create a text file named rybka.config in each directory, and add the single line "randomize=10" to this file. (This value 10 is a centipawn threshold margin for candidate moves, more below.)

4) Install the first of the two Rybkas in your interface.

5) Rename this first Rybka to something like "Rybka 2.3.1 (random)"

-- Note: for the Fritz interface, this must be done manually by editing the appropriate .uci file. You'll need to go to the "Engines" folder for this interface, find the newly-created "Rybka 2.3.uci" file, and rename both the file as well as the "Name=xxx" line inside the file. Most interfaces allow name changes to be done inside the interface.

6) Install the second Rybka in your interface

7) Rename it (as in step 5)

8) Create a .pgn file with the position you would like to test. For example, like this:

[Event "?"]

[Site "?"]

[Date "????.??.??"]

[Round "?"]

[White "?"]

[Black "?"]

[Result "*"]

[ECO "E32"]

[PlyCount "20"]

1. d4 Nf6 2. c4 e6 3. Nc3 Bb4 4. Qc2 O-O 5. a3 Bxc3+ 6. Qxc3 d6 7. f3 d5 8. Bg5

Nbd7 9. e3 Re8 10. Ne2 b6 {#} *

9) Set up an engine match between the two newly-installed random Rybkas from this position. In the Fritz GUI, this is done via "new->engine match", using the "Openings DB" button to select the file created in step 8.

10) Make sure that you ask for many games. (ie. "# of games"). I suggest somewhere around 500.

11) I can suggest very fast games, for example use a fixed-depth of 6, 7 or 8.

12) Once the match is finished, you will have a set of games. This is useful for two reasons:

a) The statistics on this set of games are in my experience a fairly reliable indicator of the evaluation of the position.

b) These games can be imported into your interface's native tree format for browsing. In the Fritz GUI, this is done via "Edit->Openings Book->Import Games".

Alternative operation methods:

1) You can increase or decrease the breadth of the alternatives which are explored during the play by increasing or decreasing the margin in the "rybka.config" file.

2) You can run many positions at once by including multiple positions in the input .pgn file. Just make sure that you are selecting the proper number of games to cover all of the positions.

3) You can have a randomized rybka play against a non-randomized Rybka. The non-randomized Rybka will of course always choose the best moves, while the randomized Rybka will vary her play in order to cover all of the variations.

One final note:

A randomized Ryka remembers the previously-played positions from the moment she is loaded to the moment that she is unloaded. If you would like to repeat a previous match from the beginning without attempting to skip already-played variations, you should completely unload the version from the interface.

Rybka Forum

If you'd like to learn more about how to use the randomizer or interpret the results, or about any other part of Rybka, you're welcome to join us for discussion on our forum: www.rybkaforum.net

Next Steps

Our next steps will be to:

1) Port Rybka to various mobile devices. This is imminent, ie. February or March 2007.

2) Rybka 3 for PC. No date is yet set, but it should be sometime later this year.

And, finally - thanks for being a Rybka customer.

Best regards,
Vasik Rajlich