About Rybka search info

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

gerold
Posts: 10121
Joined: Thu Mar 09, 2006 12:57 am
Location: van buren,missouri

Re: About Rybka search info

Post by gerold »

Heiko Mikala wrote:Again to Rolf:
Heiko Mikala wrote:Please do not in advance discredit all chess programmers, who will release new, stronger versions or new strong programs in the future by claiming they are all based on Strelka/Rybka.
With this I meant, that we should not claim, that every new strong program is based on Strelka or Rybka beta, simply because it is strong.

We will get new, stronger programs. But not because of the release of the Strelka sources.

At the moment, there are far too many comments here, that make people believe, that every chess programmer in the world has only to take a short look into the Strelka sources, and then he can make his own engine some 100 elos stronger. That is not true.

Kind regards,

Heiko
Do you think programmers will take a look at the latest version of
Toga 3.1.3 and learn from it. It is just as strong as Strelka or
maybe a little stronger..

Best to you,

Gerold.
revengeska

Re: About Rybka search info

Post by revengeska »

Anybody is free to modify and redistribute the program/code. There's nothing unethical about it. All 300 programmers have chosen to write their own (weaker) programs instead of choosing the option to use the resources that are already there. There's no use reinventing the wheel if there's perfectly good code out there that does what you want it to do. If all 300 programmers were working and improving the Fruit code to begin with, we'd see just as much creativity and diversity as we do now with weaker engines, but the engines wouldn't be as weak. I'm with Robert Hyatt on the academia standpoint as a college programming student myself, I think chess as a whole is better off for these open source programs.
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: About Rybka search info

Post by Rolf »

Heiko Mikala wrote:Again to Rolf:
Heiko Mikala wrote:Please do not in advance discredit all chess programmers, who will release new, stronger versions or new strong programs in the future by claiming they are all based on Strelka/Rybka.
With this I meant, that we should not claim, that every new strong program is based on Strelka or Rybka beta, simply because it is strong.

We will get new, stronger programs. But not because of the release of the Strelka sources.

At the moment, there are far too many comments here, that make people believe, that every chess programmer in the world has only to take a short look into the Strelka sources, and then he can make his own engine some 100 elos stronger. That is not true.

Kind regards,

Heiko
But Heiko, you made my day and the whole weekend! Because in return that means that Vas couldnt have just taken a look into FRUIT either and succeeded in making Rybka such a strong Beta and then even stronger Rybkas! Is that a forced conclusion for you too? And shouldnt certain people, way too many, now make some explanations for their character assassinations, well kind of? But you made my day. Doesnt happen on a regular basis!
-Popper and Lakatos are good but I'm stuck on Leibowitz
revengeska

Re: About Rybka search info

Post by revengeska »

Heiko Mikala wrote:Hello Rolf,
Rolf wrote:Pardon me, are you saying that - because there are no secrets in Strelka, nothing to learn - every programmer should or could take the code and rewrite it a bit and then use it for his own stuff?
I personally am not a big friend of clones. It's nice if someone finds enhancements for an open source chess program, but then he should present his ideas to the original author, who should decide, if he will incorporate these ideas into the original source.

We have some very good clones available, and it's surely fun to play with them, but I have much more respect for those who wrote their programs on their own.

But one thing is clear: computer chess has lived for ages from the exchange between the authors, here, on rgcc and elsewhere. And of course everyone looks into the freely available sources (normally you do not find new things in there, but only examples of implementations of already known and published ideas).

No, I definitely hope, that noone will take Strelkas source, change one or two variables, make the program closed source and then call it his own program!

Kind regards,

Heiko
Vas has said on his forums that he's claiming the released Strelka code as his own and releasing it under the GPL, and therefore, closing it would be illegal.
Heiko Mikala

Re: About Rybka search info

Post by Heiko Mikala »

gerold wrote:Do you think programmers will take a look at the latest version of
Toga 3.1.3 and learn from it. It is just as strong as Strelka or
maybe a little stronger..
Maybe. Some will do that, if the sources are available, of course. Why not?

Just take the most popular example: everyone has looked into Crafty and learned from Bob Hyatt. For years.

Before that, everyone looked into GnuChess and learned from that. And read the papers in the ICCA journals, ACM journals and so on.

That's not the point I think. Exchanging ideas is the reason, why CCC exists.

The bad thing is, if someone takes an open source engine, changes a few things and then calls it his own program, without asking the original author. Or disassembles an existing program, recompiles it and releases it as his own.


Kind regards,

Heiko
Heiko Mikala

Re: About Rybka search info

Post by Heiko Mikala »

Rolf wrote:But Heiko, you made my day and the whole weekend! Because in return that means that Vas couldnt have just taken a look into FRUIT either and succeeded in making Rybka such a strong Beta and then even stronger Rybkas! Is that a forced conclusion for you too?
Rolf, I have no idea if Rybka is based on Fruit.

But one thing is for sure: taking the Fruit 2.1 sources and making it 300 elo points stronger would be a lot of work, and it's not done by just changing a few lines of code. Whatever Vas Rajlik did, and if it was based on Fruit or not, was genius work. He did a great job, and I'm sure it was a hell of work.

Kind regards,

Heiko
Uri Blass
Posts: 11042
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: About Rybka search info

Post by Uri Blass »

Heiko Mikala wrote:
gerold wrote:Do you think programmers will take a look at the latest version of
Toga 3.1.3 and learn from it. It is just as strong as Strelka or
maybe a little stronger..
Maybe. Some will do that, if the sources are available, of course. Why not?

Just take the most popular example: everyone has looked into Crafty and learned from Bob Hyatt. For years.

Before that, everyone looked into GnuChess and learned from that. And read the papers in the ICCA journals, ACM journals and so on.

That's not the point I think. Exchanging ideas is the reason, why CCC exists.

The bad thing is, if someone takes an open source engine, changes a few things and then calls it his own program, without asking the original author. Or disassembles an existing program, recompiles it and releases it as his own.


Kind regards,

Heiko
The "everyone" is simply wrong.
I looked very little at Crafty's and fruit's code.
I started to look at strelka more seriously because strelka is smaller but I also do not claim to understand most of strelka.

Note that I disagree with your opinion that strelka is based on fruit.
Strelka is clearly not independent of fruit but learning ideas is allowed and strelka is clearly not a result of taking fruit and making small changes.

The main advantage of strelka relative to fruit-toga is the fact that strelka is smaller so programmers may be more encouraged to study it.

Uri
Heiko Mikala

Re: About Rybka search info

Post by Heiko Mikala »

Hi Uri
Uri Blass wrote: The "everyone" is simply wrong.
I looked very little at Crafty's and fruit's code.
But you did, and that was all I claimed :wink:
strelka is clearly not a result of taking fruit and making small changes.
No, but a result of taking fruit and making a lot of changes.

Functions with the same names, variables with the same names, the same reduction and pruning techniques at the same places under the same conditions and so on - that would simply be way too much for a coincidence.

Kind regards,

Heiko
Gerd Isenberg
Posts: 2251
Joined: Wed Mar 08, 2006 8:47 pm
Location: Hattingen, Germany

Re: About Rybka search info

Post by Gerd Isenberg »

Heiko Mikala wrote: It may be a big disappointment to many, but really, there isn't much to learn from Strelkas sources at least regarding the search techniques and there surely is no secret revealed. All the techniques used in Strelka are well known and known for years. Things like Nullmove with R=3, Nullmove verification with R=4 (not 5, because in reality it's depth-1-R, giving depth-5), futility pruning, late move reduction, "delta" pruning and so on.

Strelka is clearly based on Fruit, which can be seen on the first glance by everyone who has looked into the Fruit 2.1 sources. The search is very similar, many functions and variables still using the same name, and it's following the same strict (and very good and successfull) principles that Fruit was following, but taken even further into the extreme.

Namely:

No selectivity in PV-nodes
No hashtable values being used in PV-nodes
Full extensions in PV-nodes

Full selectivity in other nodes
Full hashtable use in other nodes
No extensions in other nodes

With the only exception being the check extension, which is being used everywhere.

Fruits search has a very clear and unique fingerprint, which you can find exactly in Strelka.

Even more extreme than the original Fruit is the fact, that in Strelka the search functions have been split up even more into different functions - one function for every possible situation (like root-search, pv-search, full-search (all other than pv-nodes), check-search, quiescence-search, quiescence-check-search). Maybe a good idea, because it makes things a bit easier in some situations.

But every experienced chess programmer can read and understand Strelkas search functions within minutes - and will discover, that there is nothing new in it.

What makes Strelka strong is the same recipe, that made Fruit strong. What makes Strelka stronger than the first Fruits may be a better and clever combination of existing, well-known techniques and aggressive selectivity (but also using well known techniques with adjusted parameters). And maybe some things in the evaluation functions. But on the other hand, the eval of Fruit 2.1 was very strong already, and far from being simple (some things were split over some different source files, which some may not have realized).

My appeal to all of you:

Please do not in advance discredit all chess programmers, who will release new, stronger versions or new strong programs in the future by claiming they are all based on Strelka/Rybka. There really is no secret revealed in Strelka.

You may have noticed that there are close to zero discussions about the Strelka source in the programmers section. The reason, I'm very sure about that, is, that no one found something spectacular new in the sources.

Kind regards,

Heiko

Disclaimer:
With all this I do not judge, if Jury has disassembled Rybka beta or not. I truly admire Vas Rajlichs work with Rybka, which is great program, and which I have bought myself and enjoy to use.
Hi Heiko,

nice summary. Yes, you get some ideas after a few minutes studying Strelka source. It is compact and easy to inspect and to debug. Of course, if that should be Rybka 1 - I am very disappointed not to find some magic bitboard tricks with progressive kogge-stone mobility and whatever else. The pawn-shelter stuff - mapping 12 pawns per side and three neighboring files is quite clever and efficient - despite I would prefer mask/mul/shift nowadays instead of the shift/and/or orgy - but it don't cares due to pawn-hashing anyway. The idea with this nice 2*3*3... factors to index material imbalance tables was also new to me.

I mean a chess program is more than the sum of its components. While each component is not entirely new, the art is to make all parts fit together and to have a smooth and steady evaluation (1. fruit clause) and a stable and efficient search (2. fruit clause). How things are pruned aggressively - null-move and verification search. A combination of "small" implementation details, which determine the shape of the search tree.

Otherwise with a program like mine, containing about 10 times more source code - one chess programmers life is probably too short to perfectly weight and tune all the evaluation and search heuristic aspects and to get all the obscure bugs - not to mention all ideas one likes to try ;-)

Cheers,
Gerd