Rybka 1.0 source code

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

Moderators: hgm, Rebel, chrisw

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

Re: Rybka 1.0 source code

Post by Uri Blass »

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.
User avatar
Rebel
Posts: 6995
Joined: Thu Aug 18, 2011 12:04 pm

Re: Rybka 1.0 source code

Post by Rebel »

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.
User avatar
Rebel
Posts: 6995
Joined: Thu Aug 18, 2011 12:04 pm

Re: Rybka 1.0 source code

Post by Rebel »

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:
Jose Carlos
Posts: 151
Joined: Wed Mar 08, 2006 10:09 pm
Location: Murcia (Spain)

Re: Rybka 1.0 source code

Post by Jose Carlos »

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.
I believe there's room for everyone. There can be an original author's competition and a "free source" competition.
A possibility for the former is that original authors are enforced to provide source code to a neutral referee, agreed by all, which would keep it secret, and would make sure all entrants are trully original.
On the other hand, those mostly concerned with strength, no matter where it comes from, may also have their own competition with no limitations whatsoever as to the origin of their code.
I think this scenario is quite easy to achive and would satisfy everyone.
__________________________
José Carlos Martínez Galán
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Rybka 1.0 source code

Post by Evert »

oreopoulos wrote: So in a project of mine, quite big at least for my skills, i copy pasted FT code (fourier transform code).
Why? Because i thought (and still believe) , that is REALLY stupid to spend time re-writing something so basic and then spend time debugging it. There is really no sense

Then i used some code for matrix computations. is that hard to write? No ofcourse. It might be a week to write a complete library (but then optimize is another subject). Then i went on modified it to support complex numbers and much more.

What did that do? It saved me time. Is that stealing code? Of course NOT
You're confusing the issue.
If you have need of numerical algorithms, you turn to freely available and well-tested and supported libraries, if they suit your needs. Examples include GSL and LAPACK. A library is not a program though.

You want to play around with computer chess and decide to start with a strong open source engine as a base. That's fine as long as you honour the original licence. That's not "stealing code". It becomes more dubious if you misrepresent the origin of your code, and that is the real thing people complain about.

And all of that is irrelevant should you choose to enter your code in a competition that states that you're not allowed to use code based on that of another entry.
User avatar
Rebel
Posts: 6995
Joined: Thu Aug 18, 2011 12:04 pm

Re: Rybka 1.0 source code

Post by Rebel »

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.
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: 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." That is outright false. And either you know it and are making a false statement knowingly, which means you are a liar, or else you don't understand that, and therefore, as I stated, don't have a clue about how rotated bitboards work. Which is it? Liar or incompetent?

In fact, it is not just one instruction in Rybka if you ignore the attack generation issue. One has to fetch the bitboard, plus friendly occupied squares, complement the friendly occupied square, and then AND the two values prior to the popcnt instruction.

So how about stopping with the false statements.

The mobility code itself doesn't offer clear proof of copying. It offers clear proof that fruit and Rybka 1.0 beta do exactly the same form of mobility, counting the exact same squares in the same way, something that is not done by ALL programs. It also shows that Fruit and Rybka do mobility the same way for all pieces (other than kings). Another thing that not all programs do. It is just one of a BUNCH of similarities. Too many similarities to be originally written.

A single piece of evidence (btw you should stop misusing "unburden everywhere) doesn't mean much. But you want to take a single piece and say "this is not convincing that copying occurred." We ALL agree. For a single piece. But there is not just a single piece, is there? There are many pieces. And each adds to the "story". You think if you can refute just one, that is good enough. Wrong answer.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Rybka 1.0 source code

Post by bob »

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. 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...
Last edited by bob on Thu Feb 09, 2012 7:05 pm, edited 1 time in total.
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:
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...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Rybka 1.0 source code

Post by bob »

oreopoulos wrote:
bob wrote:
oreopoulos wrote:
a) Are there any books on the subject? No
No

Chess Skill in Man and Machine - Frey
computers, chess and cognition - Schaeffer
Computer Chess - newborn
How computers play chess - Levy

There are at least 3-4 more such books.

You can hardly expect to write a decent computer program by reading any of them. Even the useful ones are so outdated. Reading any source code and chess wiki gives you much more information in a fraction of the time.

So in a project of mine, quite big at least for my skills, i copy pasted FT code (fourier transform code).
Why? Because i thought (and still believe) , that is REALLY stupid to spend time re-writing something so basic and then spend time debugging it. There is really no sense

Then i used some code for matrix computations. is that hard to write? No ofcourse. It might be a week to write a complete library (but then optimize is another subject). Then i went on modified it to support complex numbers and much more.

What did that do? It saved me time. Is that stealing code? Of course NOT
I would suggest you read again. Chess skill will produce a very strong program. Ernst Heinz's "scalable search" book will take you into futility pruning, null-move, etc. Now you have a REALLY strong program. There are plenty of references to discover how LMR works, and you now know enough to reach the upper level of computer chess.

The coding YOU talk about is not used for a competitoin, is it? In fact, it had also better not be used as a commercial project due to copyright laws. But the ICGA is different. The authors wanted (and still want) original programs. And the rules require that. Regardless of what you want, or how you want to develop it. If you want to compete in computer chess tournaments that use ICGA rules, you either write your own code, or sit back and watch the others compete...