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).
Randomizer
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
A few other issues have come up. We'll either release tomorrow morning, or I'll post an update here.
Vas
Vas
> Uh oh, that doesn't sound good.
Actually, that sounds very good to me! :) Every error/problem that is discovered by Convekta (and corrected by Vasik!) gives us a better product. Convekta deserves to be highly commended for taking the time for independent testing before distributing the new version.
In the future, more time should be allocated for final testing.
Steve
Is the danger bigger than the one that already exists with all the Rybka's that floods the engine-list already? I have many versions of Rybka setups with different outlook saved in my various GUI engine-lists (and a bunch of other engines too). And I expect more in the future. When setting up a serious project, the user should be able to distinguish between different named engines ;) IMHO
Steve
There are a number of reasons why this option is special:
1) To use it, you already need to make two special versions, which means that you'll already need to create at least one special (renamed) version.
2) It's only for expert users.
3) I suspect that some users will frequently want to run these types of matches, and the fewer clicks are involved, the better.
The main reason though is philosophical. A randomized Rybka isn't just a Rybka version with a slightly different configuration, it's basically purely a Monte-Carlo statistical tool. It would make absolutely no sense to use this version for anything besides playing dozens of games from the same position - for example, you would never analyze a position with it in infinite analysis mode.
Vas
If you run a tournament in Arena 1.1, you can't stop the interface from restarting every 70 games, of course unloading Rybka in the process.
I'm not touching Arena 1.99 beta3 with a ten foot pole, as based on the myriad of bugs I've seen it's more likely to crash before finishing the match.
Edit: And even without that, it'd still be an useful feature to have Rybka remember the games after unloading, as you can't always run a 500-game match without pauses.
However, if your interface needs attention every 70 games, you're going to have a hard time making good use of this.
Vas
>Ok, that's true. There may be other reasons to want to re-start as well. I'll write this down.
Thanks. A pgn file with some lines marked as having been played seems to be the easiest way. This would also have the advantage of being able to tell Rybka not to play a move you know is bad.
> However, if your interface needs attention every 70 games, you're going to have a hard time making good use of this.
No, the restart is automatic.
Edit: Arena 1.99b3 also has this 'feature'.
Also, would there be any great disadvantage to using random rybka with a 1'1" time control as opposed to the
fixed depth?
Fixed dept secures even move-quality, and must clearly be better when used with this tool, which is not aimed at competion. When using time, the engine will generate moves at different depts and deliever various quailties of moves. So, stabilty. Somebody might explain this better ;)
Testing randomizer for the time being, dept 7, in Fritz 10. Has worked well for hours now.
> ChessAssistant and the Fritz GUI's. The newest, Fritz 10, even allows different dept set to each engine.
I woudn't recommend using CA. It seems to crash every 40 games or so.
> Fixed dept secures even move-quality, and must clearly be better when used with this tool, which is not aimed at competion.
Not quite. Search depths tend to be higher in endgames, and especially pawn endings are going to be truly random at depths below 20. Edit: Maybe this too could be done via the configuration file, something like [middlegame depth = 7], [maximum depth 30], [maximum time per move = x]. This would make games harder to reproduce, though.
>So, stabilty. Somebody might explain this better
Reproducibility. If you run a fixed depth match between single-CPU engines, the nice part of it is that you can use the computer for other things without having to worry about handicapping either engine.
Completely agree to endgame depths going higher. For using randomizer though, where the idea is to get a large sample of, mostly in order to establish the stats for the early positions, I don't see so much point in precise/deep calculation in the late (seen from original position) stages. But that's only when considering the primary focus of the ramdomizer feature. While it's true about reproduceability, I wonder if it's important, except for bug-hunting or after data-loss. Btw, how well is moves reproduced with mp even at a fixed depth?
I like your "Edit"-suggestion a lot. Seems the very right way for a tool like this to develop.
Last, yes, it's nice that fixed depth allows other activities on the machine while the engines is calculating - on single CPU's. It's different using more than one thread, isn't it?
Henrik
> While I thought it was my setup that somehow was responsible for the engine crash, I still don't I had crashes as often as you desribe.
The engines didn't crash, CA did.
> Completely agree to endgame depths going higher. For using randomizer though, where the idea is to get a large sample of, mostly in order to establish the stats for the early positions, I don't see so much point in precise/deep calculation in the late (seen from original position) stages.
For getting a statistical estimate of an evaluation, it's better if your data doesn't contain big inaccuracies. For example, if your position often results in a specific type of endgame, it'd be a disaster if that endgame was mishandled every time. By the way, all engines, including Rybka have a lot of trouble with passed pawn evaluation at fast time controls.
> Btw, how well is moves reproduced with mp even at a fixed depth?
Not well at all. At first, you'll possibly get lucky and Rybka will play the same move. But the tree was different, resulting in different hash content, and later, different moves. If you want to use the randomizer on a multi-cpu system, it seems intuitively better to manually first split the root into two positions and run simultaneous matches so as not to lose any processing power to mp overhead.
> Last, yes, it's nice that fixed depth allows other activities on the machine while the engines is calculating - on single CPU's. It's different using more than one thread, isn't it?
It shouldn't be any different. It'll add to the randomness but it won't decrease strength.
Vas
Vas
second in fritz gui we do: create uci, select the renamed rybka 2.3.x.exe and a uci file created in "test" folder.
in same folder "test" we create a simple text with name rybka.config and we write randomize=10 eg.and save it.
until here is all right?? the text rybka.config is a simple text file?
next create a position eg. the initial starting position and save it as "test".pgn
and next create a tournament "tourn1" match with opening the db pgn file "test".pgn
after all, the tourn finished we dont delete the tourn1 games,but we start another tournament with other name "tourn2"
the randomize rybka wiil repeat the moves of the previous "tourn1" moves? or the starting also is randomly? tnx
One tip: Create a new opening book before importing the games, and make sure to set it to "Absolute Length" 500 or something large so that the opening book includes the entire games.
When done, each set in their own book can be compared.
Apart from using different engines and/or parameters, a logical way to continue investing lines with this tool, is to move up the tree checking the best lines, or for your own repertoire maybe some of the more unclear or dubbious ones. In this last case it might be worth considering sometimes to increase both the number of games and the randomize, to get a larger selecting of moves though it requires more time. Just a thought.
Lots of possibilities!
Henrik
Dragon Mist
you should just run one big match from that position. A second tournament will just repeat the first one.
Vas
>>I'd like to especially thank IM Larry Kaufman for his work in helping to improve Rybka's behavior in exchanging pieces and pawns<<
Hm, yes, but...exchanging pawns and pieces, that´s not the area wherein Rybka´s problems lie. From the little I´ve seen so far, the "real problems" remain: Not much sense of king safety and attacks, locked-in and locked-out pieces, and some endgame stuff.
In my Blitz games, direct attacks of Fritz against Rybka´s King were still successful way too often.
Best
Jürgen
Of course, other engines have their personalities as well. Engines which like to attack will win by attacking. Personally, I want Rybka to have a balanced, well-rounded style, and everything is fair game for improvement. I'll let other engines worry about other engines :)
Vas
tnx
I would want to resolve the being followed doubts on “Rybka 2,3”.
n. 1: function “RANDOM” is usable on the version of program LK (Rybka2.3.LK)?
n. 2: the function “Random” is applicable also to the endgame positions? I can load positions of endgame from the file ' * .ini '
and to make them to play repeatedly and Rybka learns?
Thank anyone can give clarifications to me. Salutes to all
The endgame positions should be put in a .pgn file, and a match started from those positions.
Vas
Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill