What makes Rybka so strong?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

zamar
Posts: 613
Joined: Sun Jan 18, 2009 7:03 am

Re: What makes Rybka so strong?

Post by zamar »

Three years ago people were wondering what makes Rybka2.2n2 so strong. Now many other programs have already reached that level. There are no magic tricks. They have a strong professional team while most others engine developers are hobbyists.
Joona Kiiski
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: What makes Rybka so strong?

Post by Don »

zamar wrote:Three years ago people were wondering what makes Rybka2.2n2 so strong. Now many other programs have already reached that level. There are no magic tricks. They have a strong professional team while most others engine developers are hobbyists.
I don't know how many breakthroughs are waiting to be discovered, but I don't believe Rybka has found any - which is basically what I am saying.

I think most really good ideas get experimented with and used a lot before they get in the public domain or commonly known. It was this way with null move selectivity for instance. Larry Kafuman and I stumbled up on the principle in Rexchess but didn't do it with null move, we did it with a kind of static analysis but it turns out that some people were already using null move and experimenting with this idea way before us. I don't think it was a huge secret, it just wasn't taken too seriously until it appeared in really strong programs and people started figuring out this was why.

Reductions have been used for a very long time. But I think it was not used that aggressively until fairly recently and not in the same exact form it is used now. (Of course nobody does it quite the same anyway.)

There is a ton of little refinements and ideas, none of which comes close to what I would call a "breakthrough" but each has a small impact and almost all of these are well known.

I expect the next breakthrough idea to somehow involve rethinking search and quies. Every program that I know of very suddenly drops into quies at some point but the line keeps getting more and more blurred with aggressive futility pruning, LMR and a host of other gadgets. It seems to me that at some point we need to unify the whole mess with something much cleaner and simpler. My program has all these complicated rules that tell it when it can start doing this and that, which margins to apply for various things at various specific levels of the tree, etc. It's very ad-hoc and there is no real system to it except to just do what seems to work. It seems to be that way when I look at the source code of any program. And I don't know how to do it better, but I'll bet there is a more unified way to treat things and we are probably just locked into the way we are doing it because of intertia - it's very difficult to move away from something that has served us so well when we would probably have to take 3 steps backwards to move 1 step forward.


- Don
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What makes Rybka so strong?

Post by bob »

Don wrote:
Hart wrote:I don't know if the question is taboo or even appropriate but I ask anyways out of sheer inquisitive curiosity. With the sources of Ippolit/RobboLito, so called "clones" of Rybka 3, are we any closer to answering such questions and if we are is it acceptable to discuss such questions in public or are these discussions to remain in dark corners or behind closed doors?
I don't believe there is anything special in Rybka, it's just the program as a whole that is special. I think you will be disappointed if you believe there is some secret that Vas is keeping in the closet somewhere.

I looked at the sources of IPP and the only thing that stood out to me is that it is probably more selective than most or all programs that are really strong, but I did not see any special mechanism for doing this, just the same type of stuff we are doing anyway. Vas is just doing it better.

Another thing that stands out to me is that it is has an excellent evaluation function. It may be the best evaluation function of any of the programs, yet it is still probably weaker in some areas than some other good programs. I have heard that king safety is one of the weak points, although it is improved over the previous versions.

There is no secret in Rybka that you can just transfer over to your program in a few minutes and then expect to compete with Rybka.


- Don
Someone has pointed out (privately) that there is a subtle singular extension algorithm in the thing that is probably worth something no doubt. I've not looked at it myself, yet, so can't comment on how well that feature works. When a personal email asked questions about specific code and gave the code along with an explanation, it was pretty obvious what it was doing, and it is just another point in favor of an entry in my to-do list being moved up a bit. I plan on re-visiting this again.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What makes Rybka so strong?

Post by bob »

Eelco de Groot wrote:
Hart wrote:I don't know if the question is taboo or even appropriate but I ask anyways out of sheer inquisitive curiosity. With the sources of Ippolit/RobboLito, so called "clones" of Rybka 3, are we any closer to answering such questions and if we are is it acceptable to discuss such questions in public or are these discussions to remain in dark corners or behind closed doors?
Yes please,

Can we have a real open source version of Rybka 3 that has been fully commented, and debugged by the whole army of programmers that have inspected Hippo and its clones. Please spend as much time on this as on inspecting the sources. I know that probably is illegal but the way things have gone that would seem the only good thing that could come out of this. It could never enter any official competition of course, except by Vas. Only owners of an official version of Rybka 3 can use it on Playchess, if that is Vas' choice. He will call it Rybka 3+. Intially he wanted to make Rybka 3+ himself but since everybody seems so willing to lend a helping hand and he got a bit sidetracked himself, I can fully understand it if he would actually consider this. Up to him of course.

And please stop with all the bull about Rybka being a clone of Fruit, I think it is really beyond words that you use this as a justification for treating this different from how you would treat any other market leader to which this had been done. Any issues with a breach of the GPL of Fruit should be taken up with the Free Software Foundation and only they could do something about that. Fabien has given them that right.

Regards, Eelco
Only two comments.

(1) the Rybka/fruit issue is not "bull". It is pure fact.

(2) two wrongs do not make a right, I agree with you there. The first wrong doesn't justify the second, otherwise there will never be any justice again, anywhere.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What makes Rybka so strong?

Post by bob »

smcracraft wrote:A very good question.

The "cone of silence" is deafening.
Whose "job" is it to analyze a mangled source program to see what it is doing, and then comment it so anybody can discover this without having to do any work of their own???
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: What makes Rybka so strong?

Post by mcostalba »

bob wrote: Someone has pointed out (privately) that there is a subtle singular extension algorithm in the thing that is probably worth something no doubt. I've not looked at it myself, yet, so can't comment on how well that feature works. When a personal email asked questions about specific code and gave the code along with an explanation, it was pretty obvious what it was doing, and it is just another point in favor of an entry in my to-do list being moved up a bit. I plan on re-visiting this again.
I am not the one who emailed you, but I bet my shoes you are talking about to extend TT move when it seems far better then the others.

To check for this you do a swallow search with a reduced beta on all the other moves and if the search fails low then it means TT move is the only one realisticaly playable and so extend as if it is a "kind of" singular reply extension.

I think there is no need to be so secretive, if you have something you can post, in this way we help demystifying what _really_ needs to be demistified.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What makes Rybka so strong?

Post by bob »

mcostalba wrote:
bob wrote: Someone has pointed out (privately) that there is a subtle singular extension algorithm in the thing that is probably worth something no doubt. I've not looked at it myself, yet, so can't comment on how well that feature works. When a personal email asked questions about specific code and gave the code along with an explanation, it was pretty obvious what it was doing, and it is just another point in favor of an entry in my to-do list being moved up a bit. I plan on re-visiting this again.
I am not the one who emailed you, but I bet my shoes you are talking about to extend TT move when it seems far better then the others.

To check for this you do a swallow search with a reduced beta on all the other moves and if the search fails low then it means TT move is the only one realisticaly playable and so extend as if it is a "kind of" singular reply extension.

I think there is no need to be so secretive, if you have something you can post, in this way we help demystifying what _really_ needs to be demistified.
I wasn't being "secretive" at all. I did mention the "singular extension idea". However, I have not looked at the code and can't comment on exactly how it is doing what it does. The idea does have some merit, although it is a special case of what normal singular extensions does, since the number of hash hits is low enough that you would miss lots of singular moves....

As to whether this particular idea works or not, I have no idea, as this is not an idea I have previously tried. I have only done "pure" singular extensions in previous tests (and in Cray Blitz of course) where a move can be declared singular whether or not it was a TT move.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: What makes Rybka so strong?

Post by Don »

bob wrote:
Don wrote:
Hart wrote:I don't know if the question is taboo or even appropriate but I ask anyways out of sheer inquisitive curiosity. With the sources of Ippolit/RobboLito, so called "clones" of Rybka 3, are we any closer to answering such questions and if we are is it acceptable to discuss such questions in public or are these discussions to remain in dark corners or behind closed doors?
I don't believe there is anything special in Rybka, it's just the program as a whole that is special. I think you will be disappointed if you believe there is some secret that Vas is keeping in the closet somewhere.

I looked at the sources of IPP and the only thing that stood out to me is that it is probably more selective than most or all programs that are really strong, but I did not see any special mechanism for doing this, just the same type of stuff we are doing anyway. Vas is just doing it better.

Another thing that stands out to me is that it is has an excellent evaluation function. It may be the best evaluation function of any of the programs, yet it is still probably weaker in some areas than some other good programs. I have heard that king safety is one of the weak points, although it is improved over the previous versions.

There is no secret in Rybka that you can just transfer over to your program in a few minutes and then expect to compete with Rybka.


- Don
Someone has pointed out (privately) that there is a subtle singular extension algorithm in the thing that is probably worth something no doubt. I've not looked at it myself, yet, so can't comment on how well that feature works. When a personal email asked questions about specific code and gave the code along with an explanation, it was pretty obvious what it was doing, and it is just another point in favor of an entry in my to-do list being moved up a bit. I plan on re-visiting this again.
I'm not claiming that Rybka doesn't have any little goodies in it, I'm just saying that I don't believe anything in particular is a breakthrough. It is essentially just a very well engineered program.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What makes Rybka so strong?

Post by bob »

Don wrote:
bob wrote:
Don wrote:
Hart wrote:I don't know if the question is taboo or even appropriate but I ask anyways out of sheer inquisitive curiosity. With the sources of Ippolit/RobboLito, so called "clones" of Rybka 3, are we any closer to answering such questions and if we are is it acceptable to discuss such questions in public or are these discussions to remain in dark corners or behind closed doors?
I don't believe there is anything special in Rybka, it's just the program as a whole that is special. I think you will be disappointed if you believe there is some secret that Vas is keeping in the closet somewhere.

I looked at the sources of IPP and the only thing that stood out to me is that it is probably more selective than most or all programs that are really strong, but I did not see any special mechanism for doing this, just the same type of stuff we are doing anyway. Vas is just doing it better.

Another thing that stands out to me is that it is has an excellent evaluation function. It may be the best evaluation function of any of the programs, yet it is still probably weaker in some areas than some other good programs. I have heard that king safety is one of the weak points, although it is improved over the previous versions.

There is no secret in Rybka that you can just transfer over to your program in a few minutes and then expect to compete with Rybka.


- Don
Someone has pointed out (privately) that there is a subtle singular extension algorithm in the thing that is probably worth something no doubt. I've not looked at it myself, yet, so can't comment on how well that feature works. When a personal email asked questions about specific code and gave the code along with an explanation, it was pretty obvious what it was doing, and it is just another point in favor of an entry in my to-do list being moved up a bit. I plan on re-visiting this again.
I'm not claiming that Rybka doesn't have any little goodies in it, I'm just saying that I don't believe anything in particular is a breakthrough. It is essentially just a very well engineered program.
You have to know I agree with you there. I've said hundreds of times in the past that we have not seen anything "revolutionary" since alpha/beta. It has been a steady path of evolutionary progress, with some jumps that might be a bit bigger than others, but nothing _major_...
Uri Blass
Posts: 10282
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: What makes Rybka so strong?

Post by Uri Blass »

zamar wrote:Three years ago people were wondering what makes Rybka2.2n2 so strong. Now many other programs have already reached that level. There are no magic tricks. They have a strong professional team while most others engine developers are hobbyists.
There are clearly many new ideas that helped rybka to be stronger
and it is not important if you call them magic tricks or something else.

The fact that small number of other programs reached the level of rybka2.2n2 only shows that they implemented many good ideas.

I also do not think that many other programs reached the level of rybka2.2n2(only a small number of programs reached that level)

Uri