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.