Ruben Laguna's blog

Sep 19, 2010 - 6 minute read

Training a specific opening with Rybka Aquarium

I recently bought the Rybka 4 Aquarium + Chess Assistant 11 combo from ChessOK and I was trying to figure out how to practice openings with it. So here is what I found:

DISCLAIMER: If you know of any other better way to do this or you think something is not clear, please leave a comment!

In Chapter 11:Trees of the Aquarium manual they mention how “discarded moves” trees can be used for making Aquarium play certain openings over others:

[…] After you have created an opening book you can use the discarded moves tree to create a “mask” for it to play or not play certain moves or openings. You can have one opening book and as many “discarded moves” trees as you like. This means that if you store your whole opening repertoire in a single opening book you can, for instance, define the following “discarded moves” trees:

  1. One that only plays the gambit openings in your opening book
  2. One that never plays the Sicilian
  3. One that only plays queen pawn openings as white.
  4. One that whenever possible plays the Sicilian Dragon as black.

But it doesn’t exactly explain how (Shame on them! :). So I tried to figure out myself how to do it with the help of the (Thanks to Felix Kling, ppipper and buffos). After reading several times the manual, this , this and this I think I understand how to do it. Let me explain it.

First, some background…

Tree configurations

To understand better tree configurations_ read the ChessCafe: Introduction to Tree Configurations and buffos i-book about tree configurations. I will try to describe tree configuration briefly here but it’s worth reading those two documents.

A tree configuration is a set of “regular” trees containing precomputed informations about the board positions plus a maintree and discarded tree. The “regular” trees are positional trees, graphs where the nodes are board positions and edges are the moves that connect one position to another. Attached to each board position there is some information, for example an engine evaluation for the position, success ratio statistics, textual annotations, etc. A tree configuration “merges” at runtime those trees and computes some other attributes (columns) derived from the info in those trees. These trees are considered read-only from Aquarium point of view.

Then there are two special “trees” in each tree configuration. The maintree and the discarded tree. These trees you can modify from the Aquarium GUI. When you mark a move as good/interesting/bad etc in the tree that information is stored in the maintree. If you mark a move as discarded or set the playing probability of a move by hand that information will be stored in the discarded tree.

So by creating different tree configurations with different maintrees and discarded trees you can use as opening books you can make rybka to play different opening moves. We’ll see how to do it right now…

Examples: One that only plays the gambit openings in your opening book

Let’s begin by going to the tree configurations dialog (Sandbox mode ⇒ Tree ⇒ Options) and create a new tree configuration (see chesscafe article for details) from the NarrowBook tree configuration.

and name it “gambits” for example. Then change the “Main tree path” to gambits_maintree and “Discarded tree path” to gambits_discarded. This will create an empty maintree and empty discarded tree, new trees that are not shared by any other tree configuration, this is important because you don’t want the changes in gambit tree configuration affect any other tree configuration.

Now we can proceed to set the Play% (playing probability) of the moves from the Aquarium GUI.

You can influence the Play% of the moves in two ways (that I know of):

First you can just set the playing probability by clicking on “Enter percents…” (or using the faster keyboard shortcut “+”). This is what I recommend

Or you can mark the move as good/interesting/dubious/bad/discarded. If you mark it as good you will prioritize the move, if you mark it as bad or discarded it won’t be played. For details about how the prioritizations actually works take a look at the following i-book (pay special attention to the Bonus system chapter).

Obviously the first gives you fine tuned control over the playing probability and that’s the method that I’ll be using here.

So let’s make this tree configuration to play only 1.e4 or 1.d4 when playing as white by using “+” key to set both to 50%.

So far, so good. By using this opening book “gambits” rybka will always play e4 or d4 as first move. Now we are going to force to always play the King’s gambit if black plays 1...e5.

On the tree select 1.e4 and press right arrow (→). Then it will present the black alternatives to 1.e4 among those 1...e6 , 1...e5, etc. Locate and select 1...e5 (using the up ↑ and down ↓ arrows to navigate between options) and right arrow → to go into move 1...e5, we don’t need to set the play probability for 1...e5 because we are not interested on rybka playing 1...e5 (we want to practice these openings with the human player playing black). Then go down until you see 2.f4 and press + to set 100% play probability. Using the keyboard to modify the tree is way faster than using the mouse so learn the keyboar shortcuts.

Let’s also program this opening book to play the Queen’s gambit whenever is possible.

Navigate in the tree window from 1.d41...d5 → and select 2.c4 and set playing probability to 100% with the “+” key.

Now you can go to Play mode and let Rybka play the white (make sure you select “gambits” opening book) and you will see that white always plays the King’s gambit or the Queen’s gambit.

Example: One that whenever possible plays the Sicilian Dragon as black

Now let’s create a new tree configuration that plays Sicilian Dragon whenever is possible. This time we will use the Rybka Opening book as base and keep the good move/bad move coloring did by Jiri Dufek

Ok, first go to Sandbox mode ⇒ Tree ⇒ Options and select Rybka4_book from the list of configurations. Click on New ⇒ Copy current configuration (Rybka4_book) ⇒ Next and name it “sicilian_dragon_black”.

Leave the Main tree path as “Rybka4book\rybka4_Jiri_Dufek” and replace Discarded tree path with “discarded_sicilian_dragon_black”. You will end up with the following:

So now let’s force Rybka to play Sicilian Dragon . Select 1.e4 and right arrow →, select 1...c5 press “+” and set 100. Press right arrow → to go the next move (white), select 2.Nf3 right arrow → and select 2...d6 and set it to 100, do the same for 3...cxd4, 4...Nf6 and 5...g6. And that’s it: