Computer Chess Club Archives


Search

Terms

Messages

Subject: The readme file for Rybka 1.01 beta 12

Author: Graham Banks

Date: 17:15:31 01/24/06

Go up one level in this thread


Rybka 1.01 Beta 12
January 23, 2006


Brief Overview

Disclaimer

This is an unpolished, untested release of the program. If you are a casual
user, we suggest that you save yourself potential trouble and continue using
Rybka 1.01 Preview 2 until the next more widely tested release is made.

Release Audience

Rybka Beta testers.

Release Features

1)	Search changes (search work is now finished for the Rybka 1.2 release)
2)	New settings for adaptive search outlook
3)	Some bug fixes

Updates about Configurable Search Parameters

The brief conclusions about Rybka search parameters to date are:

1)	The Seach Focus parameter seems to have little impact on playing strength
(oddly enough), and the default setting of 2 has indeed performed the best
overall (also quite odd, it was a wild guess on my part).
2)	The Search Soundness parameter should either be "solid" or "ultrasolid".
Currently "ultrasolid" scores slightly better, but I'd like to collect more
data. The other two settings are now out of the running for default.
3)	The Search Direction parameter will continue to have the "slightly
positional" default, which has performed slightly stronger than the
alternatives.
4)	The Search Outlook parameter is very interesting and will now be investigated
in more detail. The potential for improvement is large, but a more properly
adaptive approach appears to be called for.

Please see the section below for more details.


Search Outlook

Background

Of the parameters exposed for testing in the Beta 10 release, the Search Outlook
parameter has been the most productive. Under some conditions, optimistic
settings appear to give a marked improvement; under other conditions, neutral
and even pessimistic settings appear to be better.

As a result, Beta 12 contains a greatly expanded set of configurable parameters
for playing around with this aspect of search.

Disclaimer: these parameters are (at the moment) quite complicated, and if a
user doesn't know what he's doing, he can create some configurations which will
seriously harm the playing level of the engine. If you are not an expert in
these settings, I suggest that you leave them at their default settings until
more experienced testers have had a chance to determine which combination is the
best.

Optimism and Pessimism

The Rybka search has a concept of optimism and pessimism. To put this concept
into lay terms, a more optimistic search will look harder at alternatives for
the side to move which have been previously dismissed, while a more pessimistic
search will look harder at alternatives for the opponent. Inside the Rybka
search, these two concepts are already handled in a naturally  asymmetric
manner, and this setting allows the user to control the extent of this
asymmetry.

The practical effect is that optimistic settings are more likely to quickly find
resources for the side-to-move which increase the advantage, while pessimtic
settings are more likely to quickly find resources for the opponent which refute
the currently intended move (and force the player-to-move to look for a better
one).

Adaptiveness of Optimism

The initial data has suggested that a blanket optimism or pessimism is not the
best way. Rather, the search should be optimistic in some settings, and
pessimistic in others. Of course, this is done inside the search naturally. The
question for these settings is if we can make a global suggestion based on the
situation which is known before the search even begins.

The following hypothesis currently exist:

1)	Weaker opponents call for more optimism
2)	Good positions call for more optimism
3)	Good positions call for more pessimism :
4)	Improving positions call for more optimism
5)	Fast time control games call for more pessimism

As you can see, at least one of the above hypothesis is guaranteed to be wrong.
This investigation is in the early stages.

A Bit More Technical

The current implementation of the Search Outlook control is complicated enough
that I have to go a bit deeper. Rybka has an "iterative" search. That is, it
does a pass #1 of the root position, then a pass #2 (which takes longer and
comes to a better conclusion), then a pass #3, etc. Almost every engine works
iteratively, although the quantities being iterated over may differ.

There is always a point where the engine is about to start pass #x of the
current position. This is the point at which we compute the level of optimism
for that pass (or "iteration"). At the next pass, we compute the level of
optimism again - it may be different.

The optimism is calculated as follows:

1)	Start with the basic optimism value, according to the "Outlook" setting,
using the following translation:

Very pessimistic: -2
Slightly pessimistic: -1
Neutral: 0
Slightly optimistic: 1
Very optimistic 2

2)	Adjust the optimism based on the level of the opponent, taken from the
"Opponent Level" parameter.
(If "slightly strong" or "much stronger", we use the adaptation from the
"Stronger Opponent Adjustment" setting. If "slighty weaker" or "much weaker", we
use the adaptation from the "Weaker Opponent Setting". If "equal", we do not
adjust the optimism based on the level of the opponent.)

An adaptation of "much more pessimistic" subtracts two from the optimism.
An adaptation of "slightly more pessimistic" subtracts one from the optimism
An adaptation of "none" does not change the optimism
An adaptation of "slightly more optimistic" adds one to the optimism
An adaptation of "much more optimistic" adds two to the optimism

3)	Adjust the optimism based on the latest search score for the position. This
is controlled via the "Good Position Adjustment" and "Bad Position Adjustment"
parameters. (A good position is considered one with a score of >20 centipawns, a
bad one is <-20 centipawns.)
4)	Adjust the optimism based on the latest improvement of the position. This is
controlled via the "Improving Position Adjustment" and "Deteriorating Position
Adjustment" parameter. (A position is improving if twice in a row the search
score increased, or if the search score increased by >35 centipawns over the lat
three "iterations")
5)	Adjust the optimism based on the time control. This is controlled via the
"Very Fast Time Control" parameter. (A time control is considered "very fast" if
the search allocates less than 8 seconds for the upcoming move.)

The final optimism calculated using the above algorithm is used in the search
for that pass (or "iteration").

Search Parameters related to Outlook

The following parameters are used to control the outlook (more details are found
in the "A Bit More Technical" section above.)

1)	Opponent Level
2)	Outlook
3)	Stronger Opponent Adjustment
4)	Weaker Opponent Adjustment
5)	Good Position Adjustment
6)	Bad Position Adjustment
7)	Improving Position Adjustment
8)	Deteriorating Position Adjustment
9)	Very Fast Time Control Adjustment

Final Notes

I have left the default configuration to be the "neutral" state, with no
adjustments. This is done to make sure that the default Rybka Beta 12
configuration is well-tested before release. The hypotheses listed above must be
set by users manually.

Other Configurable Search Parameters

This section deals with configurable search parameters other than "Search
Outlook". These are at the moment a bit less important.

Search Soundness

Values: Ultrasolid, Solid, Speculative, Ultraspeculative
Default: Solid
Confidence in default: Medium to High
Overview: Similar in concept to "search focus". Solid values make fewer
assumptions about the position and are less likely to make a really serious
search mistake. Speculative values attempt to guess more.
Background: As in the case of "search focus", an intelligent search would use an
"ultraspeculative" approach. Unfortunately, Rybka's current heuristics don't
appear to justify it. Of the four values, probably the "ultrasolid" and "solid"
are the best choices at present.
Summary of Test Data: Ultrasolid and Solid are both candidates to be the default
setting in Rybka 1.2. Ultrasolid leads slightly, and my own intuition is quite
neutral between these two. The more speculative settings don't perform well and
they are now out of the running to be the default setting.

Search Focus

Values: #s from 1 to 6
Default: 2
Confidence in default: Medium to high
Overview: Small values instruct the search to emphasize searching broadly at the
expense of not searching as deeply. Larger values instruct the search to try to
look deeply, at the risk of overlooking (or underestimating) moves which are
improbable.
Background: I have been trying and trying to organize my search in such a way
that it can ignore looking at "stupid" variations and concentrate on the
important ones. Unfortunately, it has not been easy to do this. The heuristics
that I have come up with are controlled by this parameter. A value of 1 uses
these heuristics very modestly and continues to spend considerable resources
even on moves which are deemed unlikely, while a value of 6 uses them very
aggressively. The values of 1 and 6 are unlikely to be best. If I had to guess,
it would be that the modest settings of 2 or 3 are actually the strongest.
Summary of Test Data: The default has performed the best by a slightly margin,
but none of the other settings drops playing strength significantly. The
sligthly weird conclusion at the moment is that there is not much to gain by
twiddling with this parameter.

Search Direction

Values: Very Positional, Slightly Positional, Slightly Tactical, Very Tactical
Default: Slightly Positional
Confidence in default: High
Overview: Positional settings are more likely to find good quiet continuations,
tactical settings are more likely to find forcing continuations.
Background: Unlike the other parameters, this one controls the behavior of the
search "at the tips". The more tactical settings perform (or extend) additional
tactical investigations into tip positions. There are two types of
investigations: slightly positional is conservative is both, very tactical is
aggressive with both, while slightly positional is conservative with one and
aggressive with the other and slightly tactical is vice-versa.
Summary of Test Data: This setting has been included since the very first Beta
release and has been thoroughly tested. The original default was "very
positional", but slightly positional performed a bit better and I have since
aligned my thinking with the data :) The two tactical settings perform
noticeably worse than the two positional settings.


FAQ

Is the Rybka search now complete?

Yes - 100.0% complete for the Rybka 1.2 release. I am now satisfied that more
basic (and more time consuming) investigations are needed to continue this work
and that this is the right moment to stop.

Which versions of Rybka feature playing strength improvements?

Unfortunately testing has shown that the improvements in Beta 11 were minimal as
compared to Beta 10d, and the same applies to Beta 12. I do believe in these
changes, but facts are facts. Hence, existing Rybka versions have the following
three basic playing levels:

1) Rybka Beta 1 through Rybka Beta 7 - same strength
2) Rybka Beta 9 - first of the search changes, first improvement in playing
strength
3) Rybka Beta 10, Rybka Beta 10d, Rybka Beta 11, Rybka Beta 12 - further search
changes and further improvement in playing strength

What can we expect from Beta 13, and when can we expect it?

Beta 13 should have the following features:

1) EGTB access
2) Bug fixes

It should be ready within 3 days.

What about the actual endgame knowledge?

This is being worked on in parallel and is going through an offline process. It
looks to be roughly on schedule for integration into a released version of Rybka
sometime around Feb 1.






This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.