What do you folks make of this ?

General discussion about computer chess...
Post Reply
orgfert
Posts: 183
Joined: Fri Jun 11, 2010 5:35 pm
Real Name: Mark Tapley

Re: What do you folks make of this ?

Post by orgfert » Wed Jun 30, 2010 6:50 pm

Chris Whittington wrote:
orgfert wrote:
Chris Whittington wrote:
kingliveson wrote:
Chris Whittington wrote:
hyatt wrote:Feel free to quote this "ad hominem" you refer to. I have no idea what you are talking about, otherwise.
who cares? read your own post at CCC. I'm more interested in this .....


your argument is all very fine and dandy, were it to fit the facts of the case I referred to

your case (a) above (What matters is that (a) the two sets of values are similar or identical) is not met as the two sets of values are very different both in scale and in relation to each other. Since they are not the comparison between the code in Fruit and the lookuptable data in Rybka is completely misleading, he shouldn't have even tabled up the comparison without a huge "THIS DOES NOT PROVE ANYTHING" written next to it. I can see that skim-reading Zach's report will easily lead to the conclusion of rip-off, but actually reading it and cross-checking brings about an entirely different conclusion, namely that this report appears to have been written by the prosecution with one intent in mind. Guilt and conviction.
I agree with you that we need to stay on track, and keep it on topic. That said, I completely disagree with respect to two sets of values being identical data not met. Going on Vas' own words:
Vasik Rajlich wrote:Generally, code theft is easy to show - just show the two sections of identical code, side-by-side. There isn't much to debate in such cases.
Rybka 1.0 beta is free. Take a look at the binary starting from address 004092E0 and compare it to Fruit protocol.cpp beginning from line 430 onwards -- there are lines there copied verbatim, line for line. And it does not stop there of course. Not that am breaking new grounds here by any means, but I think the case is pretty much shut. It doesn't mean that we take anything away from his accomplishments. He stood on shoulders of those before him, and it's only right for him to carry a little weight.

was this block the UI code we all argued about a few years ago? Or something else?

Anyway, some more on the ZW expert witness report ...
It is just one example of the clear evidence of verbatim copying. Your post tries to deflect the facts and obfuscate the issue with a lot of words that aren't about the cloned code just illustrated. You must admit you are wrong as everyone else has moved on to the consequences of violating the GPL license.
You confuse me with all the other fans.
When you direct attention away from the clear cases of guilt toward the not so clear cases you mix yourself in with the fans.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: What do you folks make of this ?

Post by hyatt » Wed Jun 30, 2010 8:41 pm

Here is the point. You can probably take any single piece from Zach's web page and go over it with a microscope and find something wrong, or a bad assumption, or a ambiguous interpretation, etc. And in doing so, claim "since this is not so clear, the entire report is in error." Or you can look at his information with a wide-angle lens so that you see everything at once, and then the picture is more clear. Lots of things that are wrong. None of them huge. But a huge number of them. The "preponderance of the evidence" concept. Or the old "where there is smoke, there is fire." And we see a _lot_ of smoke.

User avatar
Chris Whittington
Posts: 437
Joined: Wed Jun 09, 2010 6:25 pm

Re: What do you folks make of this ?

Post by Chris Whittington » Wed Jun 30, 2010 9:14 pm

hyatt wrote:Here is the point. You can probably take any single piece from Zach's web page and go over it with a microscope and find something wrong, or a bad assumption, or a ambiguous interpretation, etc. And in doing so, claim "since this is not so clear, the entire report is in error." Or you can look at his information with a wide-angle lens so that you see everything at once, and then the picture is more clear. Lots of things that are wrong. None of them huge. But a huge number of them. The "preponderance of the evidence" concept. Or the old "where there is smoke, there is fire." And we see a _lot_ of smoke.
Well, if you talk to Conkie, you probably see a lot of smoke. Avoid inhaling ;-)

OK, it's true that Zach's report, as you say, under the microscope, has, shall we say, flaws, or preconceived guilt notions as I would call them. But I do get the message, behind the report there is a substantial body of similarities. However, it's a similarity of IDEAS rather than implentations of the ideas, and, if we ascribe to Vas good motives (difficult for you, I appreciate) to make a very strong program, all his own work, ultimately, via test bed or parallel approach - then we have evidence for that too.

Perhaps this is more about the psychology of the critics, Bob? If one wants to condemn Vas, one can find suitable evidence and stick to it. If one believes in essential goodness unless proved otherwise, one can find that too. There doesn't seem to be much science in the investigation, but you knew that already.

orgfert
Posts: 183
Joined: Fri Jun 11, 2010 5:35 pm
Real Name: Mark Tapley

Re: What do you folks make of this ?

Post by orgfert » Wed Jun 30, 2010 9:55 pm

Chris Whittington wrote:However, it's a similarity of IDEAS rather than implentations of the ideas, and, if we ascribe to Vas good motives (difficult for you, I appreciate) to make a very strong program, all his own work, ultimately, via test bed or parallel approach - then we have evidence for that too.

If one wants to condemn Vas, one can find suitable evidence and stick to it. If one believes in essential goodness unless proved otherwise, one can find that too. There doesn't seem to be much science in the investigation, but you knew that already.
You hang on to the cliff with this opinion (with what few remaining fingernails) by donning a Panglossian mantle and assuming the programmer in question was a babe in the woods when it came to the ethics of ripping GPL licensed code blocks verbatim. It is a tactic without reward in real life.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: What do you folks make of this ?

Post by hyatt » Thu Jul 01, 2010 1:42 am

Chris Whittington wrote:
hyatt wrote:Here is the point. You can probably take any single piece from Zach's web page and go over it with a microscope and find something wrong, or a bad assumption, or a ambiguous interpretation, etc. And in doing so, claim "since this is not so clear, the entire report is in error." Or you can look at his information with a wide-angle lens so that you see everything at once, and then the picture is more clear. Lots of things that are wrong. None of them huge. But a huge number of them. The "preponderance of the evidence" concept. Or the old "where there is smoke, there is fire." And we see a _lot_ of smoke.
Well, if you talk to Conkie, you probably see a lot of smoke. Avoid inhaling ;-)

OK, it's true that Zach's report, as you say, under the microscope, has, shall we say, flaws, or preconceived guilt notions as I would call them. But I do get the message, behind the report there is a substantial body of similarities. However, it's a similarity of IDEAS rather than implentations of the ideas, and, if we ascribe to Vas good motives (difficult for you, I appreciate) to make a very strong program, all his own work, ultimately, via test bed or parallel approach - then we have evidence for that too.

Perhaps this is more about the psychology of the critics, Bob? If one wants to condemn Vas, one can find suitable evidence and stick to it. If one believes in essential goodness unless proved otherwise, one can find that too. There doesn't seem to be much science in the investigation, but you knew that already.

Here we disagree. I've been teaching too long to be fooled with the "idea" vs "code" argument. The similarities in the _code_ are substantial. And two different people don't naturally produce the same code given the same idea. Even for small programs. In the case of a chess engine, which is not anywhere near to "small" the similarities are really uncanny. Too uncanny, IMHO.

As far as "wanting to condemn Vas" I can't speak to the motives of the people that originally noticed the Strelka/Fruit similarities. But I did look, and did not like what I saw. And to say I am "anti-Vas" because he generally beats my program is disingenuous because for counter-examples, took me several years to beat Slate, then Thompson, and I never beat Hsu in any tournament at all (had one opportunity, but a parallel bug changed from a winning move to a losing move). Yet I consider all of them "friends" and still communicate with them on occasion. So it is not an issue of "jealousy" as some might want to paint this. I've played fairly for 42 years now, and gotten my brains beat in many, many times. Yet I continued to play fair, exchange _ideas_ with others, and eventually won a few tournaments here and there. I'm not real big on someone taking a short-cut to success by copying others. This is one of those cases where you either have ethics or you don't. There is no middle ground. I have been quite clear about any code I have copied/used, such as Nalimov's egtb code or Pradu's magic bitboard stuff. I don't see why this could not have been done in the case of Rybka and this discussion would not be happening...

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: What do you folks make of this ?

Post by BB+ » Thu Jul 01, 2010 5:27 am

Well, in a sense you didn't need to say it because it came across through reading.
You are assuming that the average person read past the first page. ;)

I largely agree with what you say about the ZW analysis.

Here is a list that I came up with (again I rely partially on ZW) of "suspicious" things in Rybka:
* Re-use of exact same File/Rank/Line arrays in PST values (as opposed to an "idea" where statics would be built up in this way, but with different numbers)
* Time management and UCI parsing, particularly the "0.0" appearance
* Copying of the position at the top of the search (Fruit actually copies it back at every iteration), which is pointless as-is in Rybka (it is copied back after the search, again for no reason). Both search 4 ply when a move is forced. [You can also include setjmp under this "Search Start" heading if you like, and I haven't checked whether Rybka actually copies the position, as opposed to Strelka].
* Hash entries: more differences than similarities perhaps, but both start with the same "initial segment" (lock, move, depth, date). The same is true for pawn hash (the size of the entries is not even the same in that case). [Strelka is annoying here, as it does not preserve the Rybka data structures in all cases].
* Great similarity in evaluation. Here the "ideas" concept comes into play. Specific things could be the 1:2:4 weighting of minor:rook:queen (why not 3:5:9?) and the identical minutiae with the DrawBishopFlag -- to offset the former, Fruit has a linear interpolation across phases, while Rybka's is more complicated.
* The use of 10, 30, 60, 100 weighting in passed pawns. If this were a one-off, I could believe the recurrence of this numerology was accidental.

User avatar
Rebel
Posts: 515
Joined: Wed Jun 09, 2010 7:45 pm
Real Name: Ed Schroder

Re: What do you folks make of this ?

Post by Rebel » Thu Jul 01, 2010 8:56 am

Allow me some remarks. I deliberately take the Vas=innocent position for the sake of the discussion.
BB+ wrote: Here is a list that I came up with (again I rely partially on ZW) of "suspicious" things in Rybka:
* Re-use of exact same File/Rank/Line arrays in PST values (as opposed to an "idea" where statics would be built up in this way, but with different numbers)
One can only add the word suspicious if one have checked more programs (say 10-15) and found no such similarities. Perhaps things like these are common in many chess programs. Have Bob, Zach, you, checked 10-15 programs for its absence?
* Time management and UCI parsing, particularly the "0.0" appearance
The 0.0 case is indeed suspicious. UCI parsing: perhaps its code is public domain. Fabien took it and so did Vas. Has this option been researched by Zach, Bob and you?
* Copying of the position at the top of the search (Fruit actually copies it back at every iteration), which is pointless as-is in Rybka (it is copied back after the search, again for no reason). Both search 4 ply when a move is forced. [You can also include setjmp under this "Search Start" heading if you like, and I haven't checked whether Rybka actually copies the position, as opposed to Strelka].
Mine does the same, copy the board before the search starts. It doesn't matter if that is pointless, there are many things in mine that are not in use, they are either remains of previous ideas and forgotten to remove or I leave them there on purpose for future ideas.

Mine searched forced moves 3 plies in the early days until I increased it to 5 in order to have a better move to ponder. I don't see the relevance, 4 is an excellent value also and I suspect most programs do it this way.
* Great similarity in evaluation. Here the "ideas" concept comes into play. Specific things could be the 1:2:4 weighting of minor:rook:queen (why not 3:5:9?) and the identical minutiae with the DrawBishopFlag -- to offset the former, Fruit has a linear interpolation across phases, while Rybka's is more complicated.
Using Vas own words: I took many things. I don't see the relevance.

When I was going through the Fruit-eval I wrote down 2 ideas, code for trapped (white) bishop (h6/a6) and the code for freeing ones rook in Kg1<>Rh1 situations. It's perfectly legal to add these ideas to mine, release it without any breach of the GPL. Again, what's the relevance?
* The use of 10, 30, 60, 100 weighting in passed pawns. If this were a one-off, I could believe the recurrence of this numerology was accidental.
Mine has similar values. It's not suspicious at all.

Ed

User avatar
Chris Whittington
Posts: 437
Joined: Wed Jun 09, 2010 6:25 pm

Re: What do you folks make of this ?

Post by Chris Whittington » Thu Jul 01, 2010 10:32 am

Rebel wrote:Allow me some remarks. I deliberately take the Vas=innocent position for the sake of the discussion.
BB+ wrote: Here is a list that I came up with (again I rely partially on ZW) of "suspicious" things in Rybka:
* Re-use of exact same File/Rank/Line arrays in PST values (as opposed to an "idea" where statics would be built up in this way, but with different numbers)
One can only add the word suspicious if one have checked more programs (say 10-15) and found no such similarities. Perhaps things like these are common in many chess programs. Have Bob, Zach, you, checked 10-15 programs for its absence?
* Time management and UCI parsing, particularly the "0.0" appearance
The 0.0 case is indeed suspicious. UCI parsing: perhaps its code is public domain. Fabien took it and so did Vas. Has this option been researched by Zach, Bob and you?
* Copying of the position at the top of the search (Fruit actually copies it back at every iteration), which is pointless as-is in Rybka (it is copied back after the search, again for no reason). Both search 4 ply when a move is forced. [You can also include setjmp under this "Search Start" heading if you like, and I haven't checked whether Rybka actually copies the position, as opposed to Strelka].
Mine does the same, copy the board before the search starts. It doesn't matter if that is pointless, there are many things in mine that are not in use, they are either remains of previous ideas and forgotten to remove or I leave them there on purpose for future ideas.

Mine searched forced moves 3 plies in the early days until I increased it to 5 in order to have a better move to ponder. I don't see the relevance, 4 is an excellent value also and I suspect most programs do it this way.
* Great similarity in evaluation. Here the "ideas" concept comes into play. Specific things could be the 1:2:4 weighting of minor:rook:queen (why not 3:5:9?) and the identical minutiae with the DrawBishopFlag -- to offset the former, Fruit has a linear interpolation across phases, while Rybka's is more complicated.
Using Vas own words: I took many things. I don't see the relevance.

When I was going through the Fruit-eval I wrote down 2 ideas, code for trapped (white) bishop (h6/a6) and the code for freeing ones rook in Kg1<>Rh1 situations. It's perfectly legal to add these ideas to mine, release it without any breach of the GPL. Again, what's the relevance?
* The use of 10, 30, 60, 100 weighting in passed pawns. If this were a one-off, I could believe the recurrence of this numerology was accidental.
Mine has similar values. It's not suspicious at all.

Ed
To add to this .... Bob has always made a meal out of the setjmp instruction in Rybka and Fruit, claiming nobody else does it.

Well, I used the technique in 1980-something in Z80 assembler to jump out of the search, all you need to do then is reset the stack pointer and you're fine, back at the tree root. I changed to a more 'acceptable' method of unwinding back up the tree after staff programmers made a huge fuss about how uncompliant the technique was. But, Oxford Softworks later licensed a small chess program source for porting to various small platforms and I was surprised to see the programmer using setjmp (ie jump out of the search and reset vital pointers), told him to get 'proper(!)' and he refused, claiming it was just fine. This was a highly educated and qualified university guy who wrote masses of complex stuff in a bunch of fields and was highly reliable for producing bug free code, fast.

setjmp is way more common that Bob might want to think, it may offend purists but no way can it be suggested it is so rare that dual use implies plagiarism.

Curiously, in answer to someone recently, I read that Bob postulated setjmp as the most incriminating piece of code in Rybka!!

CPU
Posts: 17
Joined: Thu Jun 10, 2010 2:43 pm

Re: What do you folks make of this ?

Post by CPU » Thu Jul 01, 2010 10:33 am

Rebel wrote:Allow me some remarks. I deliberately take the Vas=innocent position for the sake of the discussion.
BB+ wrote: Here is a list that I came up with (again I rely partially on ZW) of "suspicious" things in Rybka:
* Re-use of exact same File/Rank/Line arrays in PST values (as opposed to an "idea" where statics would be built up in this way, but with different numbers)
One can only add the word suspicious if one have checked more programs (say 10-15) and found no such similarities. Perhaps things like these are common in many chess programs. Have Bob, Zach, you, checked 10-15 programs for its absence?
* Time management and UCI parsing, particularly the "0.0" appearance
The 0.0 case is indeed suspicious. UCI parsing: perhaps its code is public domain. Fabien took it and so did Vas. Has this option been researched by Zach, Bob and you?
* Copying of the position at the top of the search (Fruit actually copies it back at every iteration), which is pointless as-is in Rybka (it is copied back after the search, again for no reason). Both search 4 ply when a move is forced. [You can also include setjmp under this "Search Start" heading if you like, and I haven't checked whether Rybka actually copies the position, as opposed to Strelka].
Mine does the same, copy the board before the search starts. It doesn't matter if that is pointless, there are many things in mine that are not in use, they are either remains of previous ideas and forgotten to remove or I leave them there on purpose for future ideas.

Mine searched forced moves 3 plies in the early days until I increased it to 5 in order to have a better move to ponder. I don't see the relevance, 4 is an excellent value also and I suspect most programs do it this way.
* Great similarity in evaluation. Here the "ideas" concept comes into play. Specific things could be the 1:2:4 weighting of minor:rook:queen (why not 3:5:9?) and the identical minutiae with the DrawBishopFlag -- to offset the former, Fruit has a linear interpolation across phases, while Rybka's is more complicated.
Using Vas own words: I took many things. I don't see the relevance.

When I was going through the Fruit-eval I wrote down 2 ideas, code for trapped (white) bishop (h6/a6) and the code for freeing ones rook in Kg1<>Rh1 situations. It's perfectly legal to add these ideas to mine, release it without any breach of the GPL. Again, what's the relevance?
* The use of 10, 30, 60, 100 weighting in passed pawns. If this were a one-off, I could believe the recurrence of this numerology was accidental.
Mine has similar values. It's not suspicious at all.

Ed
Ed, thank you for your insights. It is important to show that this issue is not all black or white. Well, Vas is probably not a saint, but neither are most of us. Fun discussion, though.

User avatar
Rebel
Posts: 515
Joined: Wed Jun 09, 2010 7:45 pm
Real Name: Ed Schroder

Re: What do you folks make of this ?

Post by Rebel » Thu Jul 01, 2010 12:23 pm

Chris Whittington wrote: Well, I used the technique in 1980-something in Z80 assembler to jump out of the search, all you need to do then is reset the stack pointer and you're fine, back at the tree root. I changed to a more 'acceptable' method of unwinding back up the tree after staff programmers made a huge fuss about how uncompliant the technique was. But, Oxford Softworks later licensed a small chess program source for porting to various small platforms and I was surprised to see the programmer using setjmp (ie jump out of the search and reset vital pointers), told him to get 'proper(!)' and he refused, claiming it was just fine. This was a highly educated and qualified university guy who wrote masses of complex stuff in a bunch of fields and was highly reliable for producing bug free code, fast.

setjmp is way more common that Bob might want to think, it may offend purists but no way can it be suggested it is so rare that dual use implies plagiarism.

Curiously, in answer to someone recently, I read that Bob postulated setjmp as the most incriminating piece of code in Rybka!!
I can imagine the use of "setjmp" in a chess program. It's excellent for recursive stuff. Like you I used it in my early 6502 assembler days to save ROM space. Just push/pop the stack, there you go, wonderful.... If Bob really said the above bold he better retract. I know another programmer who also used it, maybe still does. That makes 3 already.

Ed

Post Reply