Rybka 1.0 source code

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

Moderator: Ras

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

Re: Rybka 1.0 source code

Post by bob »

Rebel wrote:
bob wrote:If you can't write your own code, you can copy all you want, but you can't compete. That is for original programs...
Said by grandpa Bob to his rebellious teenager grandson :wink:
No, stated by ICGA tournament rule #2.
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: Rybka 1.0 source code

Post by Rolf »

bob wrote:
Rebel wrote:
Don wrote: You also have implicitly premised that progress should be based on plagiarism and that this is "way forward."
I don't see how starting from freeware can be considered as something bad. 2009 (Ippo) became the start of a transition period where aspirant and established programmers can make choices to take or not and the percentage doesn't matter because it can't be measured.

Whatever the near future will bring forward the work every chess program, derived or not, stands on the shoulders of the former giants. McCarthy for inventing alpha/beta to begin with, Greenblatt for hash tables, Morsch for recursive nullmove Donninger for making it popular, SMK for LMR and Romstadt for making it popular etc. etc.

You came back after a long period of absence and surprised everybody with a 2900 elo program Doch. Now 2½ years later Komodo is 3150. That's great Don but it's mainly based on the ideas and novelty of others.

Coding and testing idea's (own or non-original) is the fun of chess programming, hard work of years indeed but let's not make computer chess a contest for the best coder, like in human chess it's all about elo.
"coding and testing ideas (own or non-original)" is the thing that has happened for years. It is encouraged by the ICGA, through the Journal it publishes. Copying the code of others is, however, not acceptable. And that is what happened in the case of Rybka...
a) we had that before. It's wrong and you cant prove it.
b) you persecute R1 because it was so strong and you didnt know the why, so that others could have copied its strength.

I dont understand the details either but I took the conclusion from experts in your field. For years I'm saying that you will destroy computerchess as a nice sport with that witchhunt. The secret guys who voted against Vas will of course suffer financially more than you as their spiritus rector. Nobody will buy their lame progs anymore. Players wanted the best and they got the best. The hardest man in CC -- Vas! :)

Bob, you must admit that the trouble isnt the scene anymore that you have likened from the 60s on. This is hate, whining and envy now. And that is something opinion leaders should be aware of, to prevent it.
-Popper and Lakatos are good but I'm stuck on Leibowitz
User avatar
Rebel
Posts: 7382
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Rybka 1.0 source code

Post by Rebel »

bob wrote:
Rebel wrote:
bob wrote: You continue to show you have NO IDEA how rotated bitboards work.
You keep on downplaying my expertise in matters, typical.

When it's about bit-boards, somehow you and the Rybka investigators were able to undermine Rybka's MAIN unburden evidence (a bit-board engine) into a disadvantage that greatly worked against Vas. If there is a difference between Fruit and Rybka blame it on the bit-boards and the difference magically disappears.

Just saying.
No, YOU are "downplaying your skills" because you REPEATEDLY ignore the cost of producing that "attacks" bit vector when comparing Rybka and Fruit. You repeatedly state "Vas does in one instruction what it takes fruit 4 loops to do.".
Here is what Zach's document states:

Mobility
The mobility calculations of Fruit and Rybka seem different, but Rybka's turns out to be a simple bitboard translation of Fruit's.

There you go, it implies: folks listen, the Rybka bishop mobility is just a mailbox to bit-board conversion, HE COPIED.

Reality at: http://rybkaforum.net/cgi-bin/rybkaforu ... pid=399861

It shows what I said, cover diffrences with the bit-board excuse.

Smart strategy, no cigar.

++++++++++++++++++++++++++++++++++++++++++

Rybka:

initialise the bishop mobility score to zero
mobility = 0;

add in the legal move count, captures and non-captures are hard coded to be treated the same way
mobility = mobility + [sum of pseudo-legal moves];

multiply by a Rybka specific weighting factor
mobility = mobility * [weighting factor specific to Rybka];

add mobility to the evaluation score
(the value of mobility here will be quite specific to Rybka and different to Fruit)
eval = eval + mobility;

Fruit:

initialise the bishop mobility score to some negative value, this effectively reduces the bishop value compared to the knight, it's a chessic difference
mobility = -BishopUnit;

add in the legal move count, captures and non-captures are hard coded to be treated a different way to each other
mobility = mobility + [sum of pseudo-legal moves];

multiply by a different weighting factor
mobility = mobility * [weighting factor specific to Fruit];

add mobility to the evaluation score
(the value of mobility here will be quite specific to Fruit and includes an offset value which reduces the value of a Fruit bishop compared to its other pieces)
eval = eval + mobility;

Basically, the only similarity is that both programs use the concept of mobility, using the definition of mobility given in the chess wiki but treated and scored in a different way, and add this mobility to the evaluation score. As do countless number of other programs.

There is no code equivalence, everything is done differently.
There is absolutely no EXACT same code as Hyatt nonsensically claims.
There is no literal copying.
There is no non-literal copying.
And, by the time we abstracted (by force) to this level, our degree of freedom of expression is close to one, and we are discussing ideas and not code.

Quite what "mobility" is doing in any listing of "side by side" code, is quite beyond me, and should be quite beyond anybody able to read. There is no comparison.

I recommend treating this example, the mobility code, as a template for all the code throughout the evaluation. It shows clearly how the comparison process has moved/abstracted into the realm of ideas and how comparison on the base of "code" has failed to show up any matches.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Rybka 1.0 source code

Post by bob »

Rebel wrote:
bob wrote:
Rebel wrote:
bob wrote: You continue to show you have NO IDEA how rotated bitboards work.
You keep on downplaying my expertise in matters, typical.

When it's about bit-boards, somehow you and the Rybka investigators were able to undermine Rybka's MAIN unburden evidence (a bit-board engine) into a disadvantage that greatly worked against Vas. If there is a difference between Fruit and Rybka blame it on the bit-boards and the difference magically disappears.

Just saying.
No, YOU are "downplaying your skills" because you REPEATEDLY ignore the cost of producing that "attacks" bit vector when comparing Rybka and Fruit. You repeatedly state "Vas does in one instruction what it takes fruit 4 loops to do.".
Here is what Zach's document states:

Mobility
The mobility calculations of Fruit and Rybka seem different, but Rybka's turns out to be a simple bitboard translation of Fruit's.

There you go, it implies: folks listen, the Rybka bishop mobility is just a mailbox to bit-board conversion, HE COPIED.

Reality at: http://rybkaforum.net/cgi-bin/rybkaforu ... pid=399861

It shows what I said, cover diffrences with the bit-board excuse.

Smart strategy, no cigar.

++++++++++++++++++++++++++++++++++++++++++

Rybka:

initialise the bishop mobility score to zero
mobility = 0;

add in the legal move count, captures and non-captures are hard coded to be treated the same way
mobility = mobility + [sum of pseudo-legal moves];

multiply by a Rybka specific weighting factor
mobility = mobility * [weighting factor specific to Rybka];

add mobility to the evaluation score
(the value of mobility here will be quite specific to Rybka and different to Fruit)
eval = eval + mobility;

Fruit:

initialise the bishop mobility score to some negative value, this effectively reduces the bishop value compared to the knight, it's a chessic difference
mobility = -BishopUnit;

add in the legal move count, captures and non-captures are hard coded to be treated a different way to each other
mobility = mobility + [sum of pseudo-legal moves];

multiply by a different weighting factor
mobility = mobility * [weighting factor specific to Fruit];

add mobility to the evaluation score
(the value of mobility here will be quite specific to Fruit and includes an offset value which reduces the value of a Fruit bishop compared to its other pieces)
eval = eval + mobility;

Basically, the only similarity is that both programs use the concept of mobility, using the definition of mobility given in the chess wiki but treated and scored in a different way, and add this mobility to the evaluation score. As do countless number of other programs.

There is no code equivalence, everything is done differently.
There is absolutely no EXACT same code as Hyatt nonsensically claims.
There is no literal copying.
There is no non-literal copying.
And, by the time we abstracted (by force) to this level, our degree of freedom of expression is close to one, and we are discussing ideas and not code.

Quite what "mobility" is doing in any listing of "side by side" code, is quite beyond me, and should be quite beyond anybody able to read. There is no comparison.

I recommend treating this example, the mobility code, as a template for all the code throughout the evaluation. It shows clearly how the comparison process has moved/abstracted into the realm of ideas and how comparison on the base of "code" has failed to show up any matches.
Please re-read MY comments.

(1) I have NEVER claimed that the evaluation of Fruit and the evaluation of Rybka are EXACT code matches, 100%. I have claimed, repeatedly, that they do the same things, in the same order, in the same way, adding in bonuses at the same points, differing ONLY in the bitboard vs mailbox stuff.

(2) there ARE quite a few EXACT code matches. Outside of the evaluation, even, as is pointed out in Mark's paper on the topic.

(3) Why have you abandoned the pawn analysis? :) That was your favorite point for a while. Found something you didn't want to talk about?

For mobility, what is interesting is that Fruit/Rybka count the SAME squares, excluding own-occupied squares, and count them EQUALLY. For all pieces except kings. Many others don't do this. A few might. It is a "similarity". Then on to the other eval points. And for each eval term, when you compare to all the other programs, looking at what they evaluate, how they evaluate, what they test within a term in what order, where they add in bonuses, you will find a large group that does not match, and a small group that does. If you do this term by term, each small group becomes suspicious. Because there are only two programs that are in ALL of these small groups, Rybka and Fruit.

Seems simple enough...

If he had just copied a few eval terms, no one would notice. But he didn't stop with "just a few".

And I notice you completely ignored the point of my previous post. You are not comparing the two things correctly when you say "and vas just uses one instruction, a great engineering feat." He doesn't just use one instruction. It is at least a dozen, some of which are expensive.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Rybka 1.0 source code

Post by bob »

Rolf wrote:
bob wrote:
Rebel wrote:
Don wrote: You also have implicitly premised that progress should be based on plagiarism and that this is "way forward."
I don't see how starting from freeware can be considered as something bad. 2009 (Ippo) became the start of a transition period where aspirant and established programmers can make choices to take or not and the percentage doesn't matter because it can't be measured.

Whatever the near future will bring forward the work every chess program, derived or not, stands on the shoulders of the former giants. McCarthy for inventing alpha/beta to begin with, Greenblatt for hash tables, Morsch for recursive nullmove Donninger for making it popular, SMK for LMR and Romstadt for making it popular etc. etc.

You came back after a long period of absence and surprised everybody with a 2900 elo program Doch. Now 2½ years later Komodo is 3150. That's great Don but it's mainly based on the ideas and novelty of others.

Coding and testing idea's (own or non-original) is the fun of chess programming, hard work of years indeed but let's not make computer chess a contest for the best coder, like in human chess it's all about elo.
"coding and testing ideas (own or non-original)" is the thing that has happened for years. It is encouraged by the ICGA, through the Journal it publishes. Copying the code of others is, however, not acceptable. And that is what happened in the case of Rybka...
a) we had that before. It's wrong and you cant prove it.
b) you persecute R1 because it was so strong and you didnt know the why, so that others could have copied its strength.

I dont understand the details either but I took the conclusion from experts in your field. For years I'm saying that you will destroy computerchess as a nice sport with that witchhunt. The secret guys who voted against Vas will of course suffer financially more than you as their spiritus rector. Nobody will buy their lame progs anymore. Players wanted the best and they got the best. The hardest man in CC -- Vas! :)

Bob, you must admit that the trouble isnt the scene anymore that you have likened from the 60s on. This is hate, whining and envy now. And that is something opinion leaders should be aware of, to prevent it.
a. This is not a "witch-hunt". It is a "cheat-hunt".

b. Not quite true either, now is it? Strelka was available with the source, which matches Rybka 1.0 beta, just find Fadden's analysis...

It is not "hate, whining, and envy". It is "honesty, integrity and ethics." Of which Vas seems to have little.
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Rybka 1.0 source code

Post by michiguel »

bob wrote:
Uri Blass wrote:
bob wrote:

So you are saying that these two things are different, semantically:

if (x >= 0.0) a=10;

if (0.0 < x) a=10;

They are IDENTICAL, in fact. So exactly what is the "no, it does not mean the same thing?" supposed to be about???
They are not identical

if you start with x=0.0 a=5 you are going to get a=10 in the first case and a=5 in the second case.
Oops. You are correct. make it x >= 0.0 and 0.0 <= x in the second...

Doesn't really change a thing in the discussion.
No, it doesn't change a thing.

I find the second a bit harder to "grasp" semantically. I want to know if X is not negative. The second option doesn't make that as clear as the first one...

By the way, that makes this discussion even more implausible. Typing <= doesn't give much opportunity to hit the key with the "." on it...
Again, it does not change a thing.

0.<x has the '.' besides the '<'
0.<=x has the '.' besides the '<'

But, you will keep arguing something about the '='
You read my first email about this, but none of the 8 that followed it.

Do I think this is what happened? most likely not, but if you are going to dismiss and alternative scenario, do it based on something substantial, not on outrageous claims like "nobody uses an inverted comparison".

There are other alternatives that nobody mentioned, like using a macro and then you will get ',' besides '.' or even typing something by mistake when the cursor is not where you think it is in the screen. That happened to me a gazillion times. Most of the time I find it because a compiler error is introduced, but if it is legal...

The point is that it is very dangerous to hold somebody guilty of something based on "one" character because the alternative scenarios you did not think about increases.

Miguel
User avatar
Rebel
Posts: 7382
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Rybka 1.0 source code

Post by Rebel »

bob wrote:
Rebel wrote:
bob wrote:If you can't write your own code, you can copy all you want, but you can't compete. That is for original programs...
Said by grandpa Bob to his rebellious teenager grandson :wink:
No, stated by ICGA tournament rule #2.
You mean the organization that under the supervision of Jaap v/d Herik financially exploited LOOP a copy of Fabien's Fruit 2.2.1 (or 2.1) and stalled the investigation to avoid a scandal ignoring Fabien's complaint ?

1) Fruit 2.1 (time: 100 ms scale: 1.0)
2) Fruit 2.2.1 (time: 100 ms scale: 1.0)
3) Fruit 2.3 (time: 100 ms scale: 1.0)
4) Loop 2007 (time: 100 ms scale: 1.0)
5) Toga II 1.3 (time: 100 ms scale: 1.0)

1 2 3 4 5
1. ----- 70.38 58.30 67.66 62.78
2. 70.38 ----- 60.62 80.25 66.33
3. 58.30 60.62 ----- 60.51 56.66
4. 67.66 80.25 60.51 ----- 65.36
5. 62.78 66.33 56.66 65.36 -----

An 80% overlap with Fruit 2.2.1 (Fabien) is a percentage as not seen before, the highest I ever saw was Houdini with Robbolito (71%). It's safe to say Loop 2007 is an almost exact copy of Fruit 2.2.1.

Watkins on LOOP - I made a cursory glance at Loop 2007 (the 64-bit version). It uses exactly the same PST as Fruit 2.1. The pawn eval uses the same scores. It shifts the mobility count as with Fruit (by 4,6,7,13) before multiplying, and then the arithmetic is the same (4 for N, 5 for B). I'm not that interested in going further.

And now we only have to follow the money.

http://www.eurogamer.net/articles/wii-chess-review

http://www.personeel.unimaas.nl/uiterwi ... thesis.pdf

Promotor: Prof. dr. H.J. van den Herik

The new 64-bit computer-chess engine, Loop Amsterdam, achieved the 3rd place behind Rybka and Zappa but before Shredder at the 15th World Computer-Chess Championship 2007 in Amsterdam (NL) For the persons who continuously supported me some words of gratitude are appropriate. In particular, I am grateful to my supervisor Professor Jaap van den Herik who brought me with firm guidance to this success. He stimulated me to continue the R&D of my computer-chess engine Loop Chess and motivated me to write this thesis. In addition, he [Jaap v/d Herik] set up the contact to the company Nintendo in 2007 which implemented my source codes successfully in their commercial product Wii Chess.

Jaap v/d Herik (ICGA) can't afford a scandal in academia land with a cheating thesis under his supervision and exploited commercially.

Bob, you know more, why did the ICGA stalled the LOOP investigation ?

Why do you cooperate with people who investigate Rybka but not Loop ?

Why do associate yourself with people who want to cover up their actions?

You are not one them, that I know.
User avatar
JuLieN
Posts: 2949
Joined: Mon May 05, 2008 12:16 pm
Location: Bordeaux (France)
Full name: Julien Marcel

Re: Rybka 1.0 source code

Post by JuLieN »

Image
(To both sides).

Hopefully, the next moderation team will keep all those crazy threads were they belong: in the engines origin subforum.

Because right now, this is boring the vast majority of people and turning people against each others.

Lots of people are leaving the scene. Two years ago, a Talkchess election would gather more than 200 votes. Now it's about 70 voters only. You even drove away important people of the community like Dann Corbit :(

Both sides are acting irrationally because this has become personal. You'll never solve this problem with this kind of useless threads. If you REALLY want to solve the problem, use the enormous amount of time you're wasting in these endless threads in a more useful way: write a complete report will all the arguments, pros and cons.
"The only good bug is a dead bug." (Don Dailey)
[Blog: http://tinyurl.com/predateur ] [Facebook: http://tinyurl.com/fbpredateur ] [MacEngines: http://tinyurl.com/macengines ]
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Rybka 1.0 source code

Post by bob »

Rebel wrote:
bob wrote:
Rebel wrote:
bob wrote:If you can't write your own code, you can copy all you want, but you can't compete. That is for original programs...
Said by grandpa Bob to his rebellious teenager grandson :wink:
No, stated by ICGA tournament rule #2.
You mean the organization that under the supervision of Jaap v/d Herik financially exploited LOOP a copy of Fabien's Fruit 2.2.1 (or 2.1) and stalled the investigation to avoid a scandal ignoring Fabien's complaint ?

1) Fruit 2.1 (time: 100 ms scale: 1.0)
2) Fruit 2.2.1 (time: 100 ms scale: 1.0)
3) Fruit 2.3 (time: 100 ms scale: 1.0)
4) Loop 2007 (time: 100 ms scale: 1.0)
5) Toga II 1.3 (time: 100 ms scale: 1.0)

1 2 3 4 5
1. ----- 70.38 58.30 67.66 62.78
2. 70.38 ----- 60.62 80.25 66.33
3. 58.30 60.62 ----- 60.51 56.66
4. 67.66 80.25 60.51 ----- 65.36
5. 62.78 66.33 56.66 65.36 -----

An 80% overlap with Fruit 2.2.1 (Fabien) is a percentage as not seen before, the highest I ever saw was Houdini with Robbolito (71%). It's safe to say Loop 2007 is an almost exact copy of Fruit 2.2.1.

Watkins on LOOP - I made a cursory glance at Loop 2007 (the 64-bit version). It uses exactly the same PST as Fruit 2.1. The pawn eval uses the same scores. It shifts the mobility count as with Fruit (by 4,6,7,13) before multiplying, and then the arithmetic is the same (4 for N, 5 for B). I'm not that interested in going further.

And now we only have to follow the money.

http://www.eurogamer.net/articles/wii-chess-review

http://www.personeel.unimaas.nl/uiterwi ... thesis.pdf

Promotor: Prof. dr. H.J. van den Herik

The new 64-bit computer-chess engine, Loop Amsterdam, achieved the 3rd place behind Rybka and Zappa but before Shredder at the 15th World Computer-Chess Championship 2007 in Amsterdam (NL) For the persons who continuously supported me some words of gratitude are appropriate. In particular, I am grateful to my supervisor Professor Jaap van den Herik who brought me with firm guidance to this success. He stimulated me to continue the R&D of my computer-chess engine Loop Chess and motivated me to write this thesis. In addition, he [Jaap v/d Herik] set up the contact to the company Nintendo in 2007 which implemented my source codes successfully in their commercial product Wii Chess.

Jaap v/d Herik (ICGA) can't afford a scandal in academia land with a cheating thesis under his supervision and exploited commercially.

Bob, you know more, why did the ICGA stalled the LOOP investigation ?

Why do you cooperate with people who investigate Rybka but not Loop ?

Why do associate yourself with people who want to cover up their actions?

You are not one them, that I know.
Jaap has NOT "stalled an investigation." Fabien filed a written protest. We have been trying through all possible means to contact the author. It appears we will once again be forced to investigate without any input from the accused...

Loop is "in progress." If you ask Mark or Harvey (or David) you can find out what has transpired to this point. So far, no email address has worked, no possible avenue of contact has worked.

Why do you want to write things that are so provably false? I only have about a hundred emails from Panel/Secretariat members starting in July of 2011 about this subject. We have not "stalled" nor "delayed".
User avatar
Rebel
Posts: 7382
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Rybka 1.0 source code

Post by Rebel »

bob wrote: Jaap has NOT "stalled an investigation."
I did not mention names, simply said that it is stalled.
Fabien filed a written protest.
When if I may ask.

Before, after or at the same moment Fabien wrote his Rybka complaint ?

A date would be nice.

Thanks in advance.