RYBKA
 ••• Current position: FAQ for v 1.x
 
Home
Rybka engine
Installation
Computer chess
Links
Rybka team
Contact
one


This is a collection of the FAQs for Rybka 1.1,1.2 and 1.2f

Rybka 1.1

FAQ

I am using one of the Rybka Beta versions. Should I upgrade to Rybka 1.1?
Absolutely - this is a very good time to take a moment to upgrade.

What is improved since the latest Rybka Beta version (Beta 13d)?
1) Better handling of transitions from the middlegame to the endgame
2) New heuristics for endgame play
3) More middlegame evaluation knowledge
4) More efficient search
5) Bug fixes

What didn't make it into the Rybka 1.1 release?
The top-priority remaining items are:
1) Full UCI & UCI2 compliance
2) Better support for human-driven analysis
3) Sensible configurable engine parameters
4) More chess knowledge
5) More efficient search
6) Multi-processor support

Can you elaborate on what you mean by "support for human-driven analysis"?
This means two things.
In the first place, it means some fixes to the cosmetic output of the engine. For example:
1) Displaying the full main variation (currently, it is truncated in some cases)
2) Displaying the variation all the way to mate if a mate score is reported
3) Continuing to search even after finding a mate, to look for a shorter mate

More importantly, it means searching in a way which is more useful for a human analyst, and remembering this analysis in a seamless way. This topic is thus far completely unexplored in the world of computer chess, and will involve some more fundamental changes to the search. For a bit more technical explanation, please see here:
http://www.rybkachess.com/free/AnalysisModeComments.rtf

How many more releases will be part of the Rybka 1 series?
One or two. There will definitely be an end-of-April release which will conclude the series. There may also be an intermediate early-April release, depending on the engine status at that point.

What from the above to-do list is guaranteed to be included in Rybka 1?
Full UCI & UCI2 compliance has been promised and will definitely be included. The other items are planned but not promised.

What about underpromotions?
Included in Rybka 1.1. However, underpromotions to bishops are always ignored - you can think of it as a sort of pruning. So, studies involving underpromotions to bishops will join studies involving middlegame zugzwang as unsolvable for Rybka.

How good is the new endgame knowledge?
It's a good start, but certainly a lot more work is needed. Humans are naturally very good at understanding how to transition their middlegame advantage into the endgame - a human will have a very good grasp of where the drawing chances exist and how to avoid or seek them. However, it is very difficult to formulate these things and teach them to an engine. At the very least, Rybka is better now than the other engines in this department.

Some of the configurable parameters from the Beta versions have disappeared? What happened to them?
Some of them (ie. search direction, focus and soundness) were removed because the changes to the Rybka 1.1 search made the previous settings meaningless. For example, Rybka now searches with a focus much higher than the previously highest value of 6, but the search decisions are covered by a number of new heuristics which make this feasible.

The optimism parameters have been removed because they are complex and I have seen enough data to be convinced that tinkering with them is not a path to making Rybka play better.

Why has UCI & UCI2 compliance slipped so much in the schedule?
Search and evaluation changes require a lot of time to think through, implement, test and validate. I try to keep those moving forward at all times, and fit the other stuff in between.

Can you release Rybka versions more often? Surely you could have released an improved version in late February.
In theory, a new engine build could be made every day. Some software projects do work like this. There is a tradeoff between keeping customers up-to-date, and having enough of a "wow" effect around engine releases.

Is Rybka 2 going to be released using the same continual release model as Rybka 1?
I am very much leaning that way. My customer survey shows a huge support for it. The approximate date range for Rybka 2 would be Aug 1 to Dec 31, 2006, but please don't quote me on this.


Rybka 1.2
May 1, 2006
Rybka 1.2 is the final version from the Rybka 1 series, and the last automatic update for Rybka 1 customers. If you are a Rybka 1 customer, we'd like to thank you for your support, your feedback, and (in some cases) your patience, and hope that you will also decide to join us for future Rybka versions.

FAQ

I am using Rybka 1.1. Should I upgrade to Rybka 1.2?
Yes, we strongly suggest taking a moment to do this. Rybka 1.2 is a major program release, with a number of significant enhancements.

What is improved since Rybka 1.1?
1) Full UCI & UCI2 compliance.
2) Polish added to the cosmetic output of the engine
3) Bug fixes and changes to various undesirable behaviors
4) Improved middlegame evaluation (especially in the area of material imbalances)
5) More efficient search
6) Better handling of some endgames
7) Two new configurable engine parameters

What did not make it into this release?
The next highest-priority items are:
1) Multi-processor support
2) Special engine analysis modes
3) Continued work on middlegame and endgame evaluation
4) Continued work on search efficiency

How much is Rybka's chess strength improved since Rybka 1.1?
Unlike some of the other questions on this list, this one is literally "frequently asked". It is best to let the independent testers measure Rybka's strength.

Can you tell us more about the behavior of Rybka 1.2 in positions with material imbalances?
This is a really tough topic, and still an area where engines lag behind humans. Rybka is now more materialistic in some positions, and less materialistic in others. I am quite confident that the new formulation is at least better than the previous one, but more work is needed.

How should the new engine parameters be used?
"Contempt" should be set to a positive value to instruct Rybka to avoid draws by repetition, and to a negative value to seek them. It is specified in units of centipawns.
"Server Buffer" should be checked when playing on the PlayChess server, which has a bug which causes the engine to be sent slightly inaccurate time information and can cause time losses in really long games. Rybka uses this option to make a small adjustment to her time allocation algorithms. As far as I know, it is not necessary to check this option when playing on other servers.

Can you tell us more about your bug-fixing procedure?
Every bug report I get leads to the creation of one (or more) test cases in my new offline test driver. This driver runs the Rybka engine, and verifies that all of the automated acceptance tests are passed. As a result, while I can't guarantee that Rybka is completely bug-free, I can now at least guarantee that nobody will ever need to send me the same bug report twice.

What do you mean by full UCI & UCI2 compliance?
This is a bit of a misnomer. I mean that Rybka supports all of the commands from the most recent July 2005 UCI specification, ie. UCI_ShowCurrLine, UCI_ShowRefutations, UCI_LimitStrength, etc.
Please note that Rybka does not (yet) support the UCI Chess960 protocol, although this is also specified in that same document.

What happened to the special engine analysis modes?
They just didn't make it into the schedule, and do remain a high priority.

What is next for Rybka?
Please stay tuned for an upcoming announcement in early-to-mid May about future Rybka versions.
Prospective Rybka customers should be aware that Rybka 1 is coming to the end of its cycle, and that Rybka 2 _may_ go on sale as early as June 1, 2006. Those who would like to plan their software purchases are advised to wait until this announcement so that they can make informed decisions.

When will we see a multi-processor version of Rybka?
This is right around the corner - please wait for the announcement mentioned above.


Rybka 1.2f
May 5, 2006 (midnight CET)

Unfortunately, Rybka 1.2 was released with a few bugs, which are fixed in the Rybka 1.2f release.

FAQ

I am using Rybka 1.2. Should I take the time to upgrade to 1.2f?
It's not urgent, but still recommended. The bugs which are fixed occur in a small minority of cases, but it's better to not have to worry about them.

What bugs are fixed?
To put it non-technically, bugs which can make Rybka crash, lose on time, or do really weird things in certain positions.

Is the playing strength changed from Rybka 1.2?
No - unless losses on time, or forfeit losses, are counted as a part of playing strength.

Were any of the bugs interesting?
Well, ok - here is one slightly funny example. To reproduce it with Rybka 1.2, use 16 MB hash, 1-variation mode, all settings default, and be sure to clear the hash table before starting:

image

Analysis by Rybka 1.2 32-bit:
3.Kb6
= (0.00) Depth: 2 00:00:00
3.Kb6
= (0.00) Depth: 3 00:00:00
3.Kb6
= (0.00) Depth: 4 00:00:00
3.Kb4 Rd4+ 4.Kb3
= (0.00) Depth: 4 00:00:00
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2
= (0.00) Depth: 5 00:00:00
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rg3
+- (4.29) Depth: 6 00:00:00 1kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rg3 6.c8Q
+- (4.47) Depth: 7 00:00:00 2kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rg3 6.c8Q Rg2+ 7.Kc1
+- (4.47) Depth: 8 00:00:00 4kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rg3 6.c8Q Rg2+ 7.Kc1 Rg1+ 8.Kd2
+- (4.47) Depth: 9 00:00:00 7kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rd4 6.c8Q Rc4+ 7.Qxc4
= (0.00) Depth: 10 00:00:00 9kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rg3 6.c8Q Rg2+ 7.Kc1 Rg1+ 8.Kd2 Rg2+ 9.Ke1 Rg1+
+- (4.47) Depth: 11 00:00:01 21kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rd4 6.c8Q Rc4+ 7.Qxc4
= (0.00) Depth: 12 00:00:01 27kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rg3 6.c8Q Rg2+ 7.Kc1 Rg1+ 8.Kd2 Rg2+ 9.Ke1 Rg1+
+- (4.47) Depth: 13 00:00:01 75kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rd4 6.c8Q Rc4+ 7.Qxc4
= (0.00) Depth: 14 00:00:01 88kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rg3 6.c8Q Rg2+ 7.Kc1 Rg1+ 8.Kd2 Rg2+ 9.Ke1 Rg1+
+- (4.47) Depth: 15 00:00:01 135kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rd4 6.c8Q Rc4+ 7.Qxc4
= (0.00) Depth: 16 00:00:02 164kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rg3 6.c8Q Rg2+ 7.Kc1 Rg1+ 8.Kd2 Rg2+ 9.Ke1 Rg1+
+- (4.47) Depth: 17 00:00:02 305kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rd4 6.c8Q Rc4+ 7.Qxc4
= (0.00) Depth: 18 00:00:02 368kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rg3 6.c8Q Rg2+ 7.Kc1 Rg1+ 8.Kd2 Rg2+ 9.Ke1 Rg1+
+- (4.47) Depth: 19 00:00:03 652kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rd4 6.c8Q Rc4+ 7.Qxc4
= (0.00) Depth: 20 00:00:03 771kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rg3 6.c8Q Rg2+ 7.Kc1 Rg1+ 8.Kd2 Rg2+ 9.Ke1 Rg1+
+- (4.47) Depth: 21 00:00:06 1347kN
3.Kb4 Rd4+ 4.Kb3 Rd3+ 5.Kc2 Rd4 6.c8Q Rc4+ 7.Qxc4
= (0.00) Depth: 22 00:00:08 1679kN

(Rajlich, Rybka 05.05.2006)