Not logged inRybka Chess Community Forum
Up Topic Rybka Support & Discussion / Rybka Discussion / Rybka 2.3 readme
- - By Vasik Rajlich (Silver) Date 2007-02-13 14:11
Rybka 2.3

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
Parent - - By Kapaun (****) Date 2007-02-13 14:26
Hm... Interesting... Does that mean the version is on it's way? My mailbox tells otherwise so far... ;)
Parent - - By DamirD81 (***) Date 2007-02-13 16:41
Mine too no response from Convekta so far.
Parent - - By Vasik Rajlich (Silver) Date 2007-02-13 19:06
Convekta is testing this version now, we're exchanging emails.

A few other issues have come up. We'll either release tomorrow morning, or I'll post an update here.

Vas
Parent - - By Kapaun (****) Date 2007-02-13 19:13
Uh oh, that doesn't sound good. If you want my advice: Don't do an early release. Fix the stuff, then release. If it takes another week, then so be it...
Parent - - By Vasik Rajlich (Silver) Date 2007-02-13 19:27
Certainly, all existing issues will be fixed. It's a matter of how thoroughly everything is checked.

Vas
Parent - By vdragan (***) Date 2007-02-13 21:37
Users will find lot of issues. I can bet :)
Parent - - By Dadi Jonsson (Silver) Date 2007-02-13 22:03

> 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.
Parent - - By Kapaun (****) Date 2007-02-13 22:11
Final testing is always the bottleneck in software producing. Because in the first place you usually don't have any time anymore. Appointments with the CD factory and with the print shop are pressing, because the master version is of course late. So depending on the complexity of the program a publisher can usually just check a few general features and perhaps a few tricky things which have been buggy in earlier versions. Of course you could appoint more time for final testing, but that would just have one effect: that the master version comes later accordingly. ;)
Parent - By Dadi Jonsson (Silver) Date 2007-02-13 22:36
Sounds like you've been there ;) I agree with you, but in some cases an experienced project manager can squeeze in the time needed for testing. In general I think the picture you paint is fairly accurate for many (most?) projects.
Parent - - By Steve Maughan (*) Date 2007-02-14 18:27
The Randomize feature sounds interesting.  Out of interest why didn't you implement the Randomize command as a UCI option?  It seems a little against the ethos of UCI to require the user to edit config files.  And I don't see why it couldn't be done with a boolean Randomize on/off as well as a Randomize Threshold parameter.

Steve
Parent - - By Leto (***) Date 2007-02-15 01:24
Yes it would be great if you can make it a UCI option, because currently the instructions seem quite complicated. 
Parent - - By M ANSARI (*****) Date 2007-02-15 03:07
Sounds interesting ... but I am afraid that there will be a lot of users who will accidentally start using wrong engines in some of their engine matches and get inaccurate results of the altered engine.  It would be good if the engine would immediately identify that the version is a modified version and not the original.
Parent - By Henrik Dinesen (***) Date 2007-02-15 09:34
If I'm not mistaken, you rename the engine - one way or the other.

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
Parent - By Steve Maughan (*) Date 2007-02-15 14:03
This is the case with *any* UCI option.  If this is the reason then I personally find it quite patronizing.  The engine could also send a message (i.e. an info string) to the user after the search that indicates that it's playing with sub-optimal settings.

Steve
Parent - By Henrik Dinesen (***) Date 2007-02-15 09:26
Of cource it's easier with UCI parameters, but if you want experiment with it, it sould soon become routine. If you just want to setup a standard random-Rybka, it's there when you need it.
Parent - - By Vasik Rajlich (Silver) Date 2007-02-15 18:08
It's a good question, I had a little debate with myself about it.

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
Parent - - By Vempele (Silver) Date 2007-02-15 18:22 Edited 2007-02-15 18:25
There's a problem though:

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.
Parent - - By Vasik Rajlich (Silver) Date 2007-02-15 18:40
Ok, that's true. There may be other reasons to want to re-start as well. I'll write this down.

However, if your interface needs attention every 70 games, you're going to have a hard time making good use of this.

Vas
Parent - - By Vempele (Silver) Date 2007-02-15 18:45 Edited 2007-02-15 18:49

>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'.
Parent - - By Michael Hart (***) Date 2007-02-15 20:08
Is there another GUI that allows you to play engine tournaments at fixed depths, besides Arena?

Also, would there be any great disadvantage to using random rybka with a 1'1" time control as opposed to the
fixed depth?
Parent - - By Henrik Dinesen (***) Date 2007-02-15 20:27
ChessAssistant and the Fritz GUI's. The newest, Fritz 10, even allows different dept set to each engine.

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.
Parent - - By Vempele (Silver) Date 2007-02-16 07:12 Edited 2007-02-16 07:21

> 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.
Parent - - By Henrik Dinesen (***) Date 2007-02-16 09:21
Ok, my experience with CA playing matches could have been better too, but it has worked when using a fixed position than books. 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.

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
Parent - By Vempele (Silver) Date 2007-02-16 10:36

> 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.
Parent - By Vasik Rajlich (Silver) Date 2007-02-17 10:19
Yes, exactly. Fixed-depth also allows you to play insanely fast games without worrying which engine is getting handicapped by a few microseconds.

Vas
Parent - By Vasik Rajlich (Silver) Date 2007-02-17 10:17
Thanks for the information. This will require some thinking - I will see what users think about this feature and go from there.

Vas
Parent - - By stvs (***) Date 2007-02-16 01:18
hi all. i find little complicated the randomize mode.first we put a renamed rybka 2.3.x.exe to one folder eg named "test".
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
Parent - - By Leto (***) Date 2007-02-16 02:29 Edited 2007-02-16 02:34
I tested the randomizer on the Fritz 10 GUI and it wasn't as difficult to do as I thought it would be.  The results it produced were very interesting, I'm very satisfied with this new feature.
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.   
Parent - - By billyraybar (***) Date 2007-02-16 02:58
I tried to follow the steps, however I cannot find rybka 2.3.uci file.  I can use rybka 2.3 but there is no '.uci' file for rybka 2.3.  I'm baffled.
Parent - - By Leto (***) Date 2007-02-16 03:07
If you are using the Fritz 10 UCI, the uci file will be in Documents Settings -----> Administrator (or whatever your folder is called) ---------> Application Data --------> Chessbase ------> Engines.UCI
Parent - By billyraybar (***) Date 2007-02-16 03:32
Thanks I figured it out.  The application data folder is hidden, so I had to enable viewing of hidden files.
Parent - - By Henrik Dinesen (***) Date 2007-02-16 09:56
Yes it seems like very interesting outputs. Have a first sample of 500 games now, with 2 Rybka standard randomizers. Now, for comparison and fun, I'm running the same set, but with a randomized LK-version facing a randomized normal Rybka.

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
Parent - By Dragon Mist (****) Date 2007-02-16 12:53
Although many of you think that Randomizer is very "Usefull", I believe that "Interesting" is much more precise. By playing so many blitz games you (Rybka) actually may miss the big picture, the key move which comes up only after some depth. So, interesting feature, but that's all.

Dragon Mist
Parent - By Vasik Rajlich (Silver) Date 2007-02-17 10:21
Hi,

you should just run one big match from that position. A second tournament will just repeat the first one.

Vas
Parent - - By Juergen Faas (**) Date 2007-02-16 11:19

>>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
Parent - By Vasik Rajlich (Silver) Date 2007-02-17 10:24
We're working on everything.

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
Parent - - By stvs (***) Date 2007-02-16 17:53
hi all.the randomizer in fritz9 gui can be work? eg.  rybka 2.3.exe and 2.3.uci in engines folder and put text file with randomize=10 in same folder?
tnx
Parent - By brilsmurf (*) Date 2007-02-16 20:03
If you follow the instructions, it works like a charm :-)
Parent - - By albitex (***) Date 2007-02-17 00:27
Questions on function “RANDOM” and new characteristic of “rybka2.3”.

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

Parent - By Vasik Rajlich (Silver) Date 2007-02-17 10:24
Yes to both questions.

The endgame positions should be put in a .pgn file, and a match started from those positions.

Vas
Up Topic Rybka Support & Discussion / Rybka Discussion / Rybka 2.3 readme

Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill