Previous World Champion Engine Authors Speak Out...

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

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
bob
Posts: 20478
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: Previous World Champion Engine Authors Speak Out...

Post by bob » Fri Mar 04, 2011 3:30 am

Suji wrote:
Albert Silver wrote: Not to mention his long history of completely unbiased feelings and posts regarding Vas.
Dr. Hyatt has examined the evidence, and drawn his own conclusions. Not the other way around. He's also one of the experts in the field who, biased or not, knows that two different people don't write almost identical code.

I did the first Project Euler problem, and I submitted my solution and I looked at everybody's code that solved the problem, and no two programs were the same. Everybody had a different solution to the problem, and there were some that were similar to mine, but how they structured their code was different from how I did it, thus making our code different.

After that, I came to the conclusion that it's impossible to write the same program the same way as another person unless you were copying. It just doesn't happen.
Nice to see some wisdom and common sense in a single post. Yet we still see the claims that copying can't be proved because it can happen by pure happenstance...

bob
Posts: 20478
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: Previous World Champion Engine Authors Speak Out...

Post by bob » Fri Mar 04, 2011 3:33 am

geots wrote:
bob wrote:
geots wrote:
Steve B wrote:And Sign The OPEN letter to the ICGA President

http://hiarcs.net/forums/viewtopic.php?t=4038

excluding the Engine Author under examination .. we have all but one World Champion engine author since 1992 signing the letter
it should be remembered that these men were fierce competitors for many years ..so seeing them all agree to the notion that Rybka is an unauthorized Fruit derivative is quite astonishing and remarkable

Of course many other highly respected and talented Engine authors also signed the letter..some of whom might have been World Champions themselves if not losing to the engine in question or deciding not to even compete entirely in the ICGA World Championships given the participation of the allegedly illegally derived engine

Bob Hyatt ..a World Champion author himself of course did not sign as he is on the panel invested with making a determination on the derivative issue

i think this is unprecedented in the history of competitive sport Regards
Steve


Bob Hyatt ..a World Champion author himself of course did not sign as he is on the panel invested with making a determination on the derivative issue


I cant believe you state this in passing, because I cant believe you dont see anything wrong with him being on this panel. He has stated he knows Vas is guilty, and even if he is found innocent he is guilty. And you dont call this lynch mob mentality. How would you like to be the one Bob is making a decision about? This whole deal is about as slimy as computer chess can get.
I have clearly said that based on what I have seen with my own eyes, there is no doubt copying has occurred. It is _possible_ that Vas might somehow explain the identical parts of the code satisfactorily. I can't imagine what that might be, but it is possible.

My responsibility here is going to be to let the "prosecution" show the existing evidence everyone has seen, plus some other very significant evidence hardly anyone has seen, and then let Vas respond, if he chooses to. He can take the evidence point by point and explain why he believes it does not represent a problem of plagiarism or GPL violation. Then the "prosecution" will get to respond to his comments. And we will repeat this until nothing new is being shown. At that point, we will write a report giving the evidence and counter-evidence and send this to the ICGA. What they might do with it is unknown. It could involve stripping titles won with improper code, it could involve a "bad boy, don't do it again", or it could result in nothing at all.

We are not the jury. The three of us are a 3-judge panel to make sure that the discussions stay on topic, no flame wars, no personal conflicts. Just show the evidence and address it as needed until nothing more can be added...

There's no lynching. But I will bet you that once you see _everything_ you will change your opinion about what has happened. At least if you are willing to look at the evidence for yourself. There is a lot to be told here. Including a few shocks along the way...

I'm reminded here of what a friend of mine who is in the oil business once said: "I've hit enough dry holes to know the sound of sucking wind".
I suppose that somewhere in that, there is some sort of point. But it does escape me.

Albert Silver
Posts: 2837
Joined: Wed Mar 08, 2006 8:57 pm
Location: Rio de Janeiro, Brazil

Re: Previous World Champion Engine Authors Speak Out...

Post by Albert Silver » Fri Mar 04, 2011 4:07 am

wolfv wrote:
Albert Silver wrote:
wolfv wrote:The same is happening here, in the Rybka case. Each one of us does have some expectations and each one is biased in a way. The same applies to Hyatt, who is twice as aware of the above, being an academician (I am one, too and know how he can feel). Hyatt is most likely _not_ biased so as not to recognize the validity of the opposing party, so to speak, because he's been trained to accept falsifying evidence, one way or another, even if it goes against his deepest conviction.
Not to mention his long history of completely unbiased feelings and posts regarding Vas.
I am sorry to say this, Albert, but I believe that sometimes you simply do not understand things. I just explained that Bob Hyatt may even feel very strongly about Vas, in a negative sense, of course, and still be fair in judging the facts, and facts alone. I also tried to give examples from philosophy of science that show that every single instance of thinking about an issue is "theory laden" (that we all have preconceived ideas about the object/entity we wish to investigate) and thus prove that no man can be devoid of having at least some kind of partiality, and favor one above the other, so to speak. But you failed to understand my post that was very simple.

To tell you the truth, I've come to a simple conclusion: a. either you are much too bigoted and as such cannot understand things because your thinking is clouded by your bigotry; or b. you have no capacity to show empathy for the other side and, at least virtually, or vicariously, put yourself in the other man's shoes. Whichever of the two it is, if I were you I'd try to re-examine myself. One more side effect is, of course, that you most likely cannot be a good teacher because your grading would be awfully flawed... and biased no end.

Have a nice weekend.
I understood your points just fine. This concept of being above emotional sway is perfectly utopic, but not very realistic. There is a reason jury members are often rejected for beliefs, and a case can have a judgment annulled if there is evidence the judge was known to have a pronounced slant one way or the other. Working in an academic institution does not make one magically neutral and objective.

It is a pity you chose to write that neverending personal attack, since I will never reply to any of your posts again, but no doubt that is what you hoped to achieve anyhow.
"Tactics are the bricks and sticks that make up a game, but positional play is the architectural blueprint."

benstoker
Posts: 342
Joined: Tue Jan 19, 2010 1:05 am

Re: Previous World Champion Engine Authors Speak Out...

Post by benstoker » Fri Mar 04, 2011 4:20 am

Albert Silver wrote:
wolfv wrote:
Albert Silver wrote:
wolfv wrote:The same is happening here, in the Rybka case. Each one of us does have some expectations and each one is biased in a way. The same applies to Hyatt, who is twice as aware of the above, being an academician (I am one, too and know how he can feel). Hyatt is most likely _not_ biased so as not to recognize the validity of the opposing party, so to speak, because he's been trained to accept falsifying evidence, one way or another, even if it goes against his deepest conviction.
Not to mention his long history of completely unbiased feelings and posts regarding Vas.
I am sorry to say this, Albert, but I believe that sometimes you simply do not understand things. I just explained that Bob Hyatt may even feel very strongly about Vas, in a negative sense, of course, and still be fair in judging the facts, and facts alone. I also tried to give examples from philosophy of science that show that every single instance of thinking about an issue is "theory laden" (that we all have preconceived ideas about the object/entity we wish to investigate) and thus prove that no man can be devoid of having at least some kind of partiality, and favor one above the other, so to speak. But you failed to understand my post that was very simple.

To tell you the truth, I've come to a simple conclusion: a. either you are much too bigoted and as such cannot understand things because your thinking is clouded by your bigotry; or b. you have no capacity to show empathy for the other side and, at least virtually, or vicariously, put yourself in the other man's shoes. Whichever of the two it is, if I were you I'd try to re-examine myself. One more side effect is, of course, that you most likely cannot be a good teacher because your grading would be awfully flawed... and biased no end.

Have a nice weekend.
I understood your points just fine. This concept of being above emotional sway is perfectly utopic, but not very realistic. There is a reason jury members are often rejected for beliefs, and a case can have a judgment annulled if there is evidence the judge was known to have a pronounced slant one way or the other. Working in an academic institution does not make one magically neutral and objective.

It is a pity you chose to write that neverending personal attack, since I will never reply to any of your posts again, but no doubt that is what you hoped to achieve anyhow.
Albert, please explain how Hyatt's or Williamson's bias could prevent you from verifying whatever factual claims they make.

bob
Posts: 20478
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: Previous World Champion Engine Authors Speak Out...

Post by bob » Fri Mar 04, 2011 4:29 am

Albert Silver wrote:
wolfv wrote:
Albert Silver wrote:
wolfv wrote:The same is happening here, in the Rybka case. Each one of us does have some expectations and each one is biased in a way. The same applies to Hyatt, who is twice as aware of the above, being an academician (I am one, too and know how he can feel). Hyatt is most likely _not_ biased so as not to recognize the validity of the opposing party, so to speak, because he's been trained to accept falsifying evidence, one way or another, even if it goes against his deepest conviction.
Not to mention his long history of completely unbiased feelings and posts regarding Vas.
I am sorry to say this, Albert, but I believe that sometimes you simply do not understand things. I just explained that Bob Hyatt may even feel very strongly about Vas, in a negative sense, of course, and still be fair in judging the facts, and facts alone. I also tried to give examples from philosophy of science that show that every single instance of thinking about an issue is "theory laden" (that we all have preconceived ideas about the object/entity we wish to investigate) and thus prove that no man can be devoid of having at least some kind of partiality, and favor one above the other, so to speak. But you failed to understand my post that was very simple.

To tell you the truth, I've come to a simple conclusion: a. either you are much too bigoted and as such cannot understand things because your thinking is clouded by your bigotry; or b. you have no capacity to show empathy for the other side and, at least virtually, or vicariously, put yourself in the other man's shoes. Whichever of the two it is, if I were you I'd try to re-examine myself. One more side effect is, of course, that you most likely cannot be a good teacher because your grading would be awfully flawed... and biased no end.

Have a nice weekend.
I understood your points just fine. This concept of being above emotional sway is perfectly utopic, but not very realistic. There is a reason jury members are often rejected for beliefs, and a case can have a judgment annulled if there is evidence the judge was known to have a pronounced slant one way or the other. Working in an academic institution does not make one magically neutral and objective.

It is a pity you chose to write that neverending personal attack, since I will never reply to any of your posts again, but no doubt that is what you hoped to achieve anyhow.
My only question is why the continual reference to "jury". The ICGA will provide the jury to look at our report after all the evidence and rebuttal is presented. And they will provide the judge to impose any punishment they feel is justified. Our function is to simply maintain the data, Vas will get to provide his own rebuttal if he chooses, and it will be in his words and not modified by anybody. It is our responsibility to simply push this thru the process so that everything that should be said gets said, so that the ICGA has enough data to form a conclusion.

The problem is that it is not uncommon for a defense attorney to not allow his client to "take the stand". It is risky. But it can be more risky to expose the client to cross-examination where he has to answer questions truthfully or face further sanctions for making false statements under oath. No idea whether Vas will enter the discussion or not.

Entire mess should have been avoided. But it wasn't...

Albert Silver
Posts: 2837
Joined: Wed Mar 08, 2006 8:57 pm
Location: Rio de Janeiro, Brazil

Re: Previous World Champion Engine Authors Speak Out...

Post by Albert Silver » Fri Mar 04, 2011 6:00 am

bob wrote:
Albert Silver wrote:I understood your points just fine. This concept of being above emotional sway is perfectly utopic, but not very realistic. There is a reason jury members are often rejected for beliefs, and a case can have a judgment annulled if there is evidence the judge was known to have a pronounced slant one way or the other. Working in an academic institution does not make one magically neutral and objective.

It is a pity you chose to write that neverending personal attack, since I will never reply to any of your posts again, but no doubt that is what you hoped to achieve anyhow.
My only question is why the continual reference to "jury". The ICGA will provide the jury to look at our report after all the evidence and rebuttal is presented. And they will provide the judge to impose any punishment they feel is justified. Our function is to simply maintain the data, Vas will get to provide his own rebuttal if he chooses, and it will be in his words and not modified by anybody. It is our responsibility to simply push this thru the process so that everything that should be said gets said, so that the ICGA has enough data to form a conclusion.

The problem is that it is not uncommon for a defense attorney to not allow his client to "take the stand". It is risky. But it can be more risky to expose the client to cross-examination where he has to answer questions truthfully or face further sanctions for making false statements under oath. No idea whether Vas will enter the discussion or not.

Entire mess should have been avoided. But it wasn't...
The post wasn't intended to compare the panel to a jury, but to point out that in legal proceedings, where impartiality and objectivity are paramount, even a judge is not above having his neutrality questioned.
"Tactics are the bricks and sticks that make up a game, but positional play is the architectural blueprint."

Uri Blass
Posts: 8557
Joined: Wed Mar 08, 2006 11:37 pm
Location: Tel-Aviv Israel

Re: Pervious World Champion Engine Authors Speak Out...

Post by Uri Blass » Fri Mar 04, 2011 10:26 am

bob wrote:
geots wrote:
SuneF wrote:
mhull wrote: In programming, especially a chess program, adopting significantly large and critical blocks of very specific symbiotic logic and factored weights verbatim is only permissible in an acknowledged code fork. It certainly couldn't pass the smell test as an original work. And the distance between subsequent versions to the plagiarized starting point will hardly matter (to most people) if a programmer is shown to be so dishonest.
Ordinarily yes. What makes the Rybka situation special is that Vas couldn't have adopted "significantly large and critical blocks of very specific symbiotic logic and factored weights verbatim" as Rybka is bitboard and Fruit is mailbox. At least for the evaluation and move generation code it would have to be coded completely different - that is a fact. We also know that Rybka has new important material terms in the evaluation and the search seems original as well.
What they need to prove then, is either that some other parts of the engine contains large parts of copied code (for instance the hashing or protocol) or that large parts of the bitboard code is functionally equivalent to the mailbox code. The latter is a bit problematic however, as most engines are known to contain certain large parts of functionally equivalent codes, like for instance the SEE, Qsearch, Nullmove and so forth. No one would claim Fruit was a derivative of Crafty just because it had sections of nullmove code that was functionally equivalent to Crafty for instance.

What annoys me most about this whole issue is that we do not have objective means and rules to specify what is legal to copy and what is not. It's always a judgement call in every single case. This makes the whole process too ad hoc and un-scientific IMHO.
The process should be reversed, first we need to establish what is legal and what is not, then we need to decide how to punish the rule breakers and only then does it make sense to begin considering the individual engines. Otherwise we are having a trial and jury with no accepted laws to judge by.

Amen to that! Above we actually have a man with a brain that is not afraid to speak out and tell the truth.
Not quite. If someone wants to add the fruit eval to Crafty, it would not take but a day or two.
In this case it may be interesting if people do it and test to see if fruit's evaluation make Crafty worse or better in games(and the same for stockfish's evaluation that I guess it is not harder to add).

UncombedCoconut
Posts: 319
Joined: Fri Dec 18, 2009 10:40 am
Location: Naperville, IL

Re: Pervious World Champion Engine Authors Speak Out...

Post by UncombedCoconut » Fri Mar 04, 2011 12:13 pm

Uri Blass wrote:In this case it may be interesting if people do it and test to see if fruit's evaluation make Crafty worse or better in games(and the same for stockfish's evaluation that I guess it is not harder to add).
This seems rather uninteresting unless the "cobbler" publishes the code... and that will require explicit permission from all engine authors involved, since Crafty's license and the GPL are incompatible.

SuneF
Posts: 127
Joined: Thu Sep 17, 2009 9:19 am

Re: Pervious World Champion Engine Authors Speak Out...

Post by SuneF » Fri Mar 04, 2011 1:50 pm

bob wrote:
SuneF wrote:
bob wrote: NO it isn't "a fact". There are parts of my eval that are not "bitboard-centric". Low-level stuff is, but not all. Ditto for move generation. One can hide much with macros.
You can hide everything with macros if you create enough of them, but that's "in theory". Let's stick to the actual relevant case.

1) Fruit uses board->square[from] a lot, it doesn't translate to bitboard. Fruit is also full of magic numbers (offsets) that doesn't translate. It's a totally different approach to doing move generation with bitboards where you work with bitwise operators and mask out bits.
Not so fast. Is Crafty bitboard? Yet it _still_ has board[64]. So Fruits eval could be made to work in the crafty framework with not a lot of effort, mainly just dealing with renumbered squares since my board is only 64 elements. It would be a decidedly "unbitboard" approach, but it would work just fine since tree->board[from] would work. Or you could use Board(from) which is a macro I use to make the code easier to read... Move generation shouldn't be done using that array, but it could.

2) Evaluation has the same issues. Lots of board->square[to], piece lists and pattern matching that looks completely different in bitboards.
"Should" look completely different. See above. You can use Board(from) in Crafty anywhere you want to get the piece on square "from". No bitboard accesses and MSB/LSB operations required. Not how bitboards are intended to work, but they _can_ be used like that...
"Could", "might", "is possible". I don't know what you're seeing but I don't see a whole lot of Board(from) going on.

3) You've stated yourself for years that coding bitboards requires a different way of thinking. Why the sudden change of mind?
Simple. The difference between "should" and "could". It is clearly possible to stuff the fruit eval right into Crafty. Deal with the re-numbered squares since the two programs use two different array sizes for the mailbox board, and you are ready to go. It would not be as fast, it would not be a "clean bitboard" program. But you can't say "impossible"... That was my point.
"Could, would, should"... I've never said "impossible". I said _unlikely_, as it would be faster in more ways than one to write it from scratch with bitboards.


4) This is not about Crafty. I could state that you cannot easily convert Frenzee to mailbox by changing a few macros, but this is not about Frenzee either.
Are you following the discussion? We now know that the pre-fruit version of Rybka copied a lot of crafty source. So now the issue becomes taking the fruit eval, plugging it into Crafty. Slowly getting rid of the array references and use bitboard operations. But at each step along the way, you have a working version to compare the new bitboard version to, to simplify testing/debugging.

So this is about Crafty _and_ Fruit...
Ah no really :-)
But you're saying that Crafty was actually the starting point, so Rybka was derived from Crafty and not Fruit, only parts of Fruit was converted? Basicly you're now telling me I was right all along!! :-)
I _knew_ it wouldn't make any sense to convert Fruit into bitboards, it would have to come from somewhere else or be written from scratch.

bob wrote: And then we get to critical things like search, move ordering, pruning, reductions, extensions. He could have copied significant parts.
Anyone could. You'd expect hash move, winning captures, killers and so forth. It's all pretty standard stuff as is nullmove and LMR. You'd need to see something very unsual being used, something identifiable as comming from Fruit. And again ideas can be copied so it would have to be something rather copy-paste like.
Which is exactly what we have been reporting for a couple of years now? Exact matches. And now some examples with oddball bugs that make no sense, yet which appear in both programs? One has to copy these kinds of bugs, or else believe in miracles to think two different programmers compare the return value of a function to a constant that the function has not produced in 10+ years. In Crafty, that code was left in quite by accident. How did it get into _another_ program? Comparing to the exact same constant??? Coincidence??
Right I agree with you there. Identical and very obscure bugs are a pretty tell tail sign that something is not as it should be.
bob wrote: And you are overlooking the issue that we now know that he copied parts of Crafty, which _is_ a bitboard program. Suddenly the changes to Fruit's eval don't appear to be so difficult since all the support code may well have been copied (we are quantifying this as I write.)
So let me get up to speed, the current theory is the following:
Rybka came from a 10 year old buggy version of Crafty, then a Fruit eval was easily plugged into it by using macros. Later all previous references were removed meanwhile maintaining a fully functioning engine. Crafty was the starting base but today Rybka is nothing like Crafty but very Fruitish everywhere as the engine has morphed into Fruit.
Sure very logical, exactly how I would have done it....
First, the structure of Strelka is _nothing_ like the structure of Crafty. Simple to evaluate if you want to lets take procedure by procedure starting at Iterate(). Wait, Strelka doesn't even have an Iterate() function...

Strelka looks fruity. Rybka looks fruity. The pre-fruity version of rybka looks like Crafty. You can ignore the evidence if you want, but none of your comments addresses the specific issues being exposed daily.
So the bitboard structures of Rybka is more like the list structures of Fruit than the bitboard structures of Crafty? I'm having some trouble following the logic here...
I'm not the "thought police". But I don't do this sort of obfuscation... And I have not seen an open source program that does.
Why would an open-source engine want to do obfuscation? That would make no sense. However many closed source coders whats to keep their secrets and obfuscation is certain a tool to do that. I'm actually surprised not more people are doing it. Why show any output that could reveal how your engine operates?

Gerd Isenberg
Posts: 2127
Joined: Wed Mar 08, 2006 7:47 pm
Location: Hattingen, Germany

Re: Pervious World Champion Engine Authors Speak Out...

Post by Gerd Isenberg » Fri Mar 04, 2011 4:34 pm

SuneF wrote:
bob wrote:
SuneF wrote:
bob wrote: NO it isn't "a fact". There are parts of my eval that are not "bitboard-centric". Low-level stuff is, but not all. Ditto for move generation. One can hide much with macros.
You can hide everything with macros if you create enough of them, but that's "in theory". Let's stick to the actual relevant case.

1) Fruit uses board->square[from] a lot, it doesn't translate to bitboard. Fruit is also full of magic numbers (offsets) that doesn't translate. It's a totally different approach to doing move generation with bitboards where you work with bitwise operators and mask out bits.
Not so fast. Is Crafty bitboard? Yet it _still_ has board[64]. So Fruits eval could be made to work in the crafty framework with not a lot of effort, mainly just dealing with renumbered squares since my board is only 64 elements. It would be a decidedly "unbitboard" approach, but it would work just fine since tree->board[from] would work. Or you could use Board(from) which is a macro I use to make the code easier to read... Move generation shouldn't be done using that array, but it could.

2) Evaluation has the same issues. Lots of board->square[to], piece lists and pattern matching that looks completely different in bitboards.
"Should" look completely different. See above. You can use Board(from) in Crafty anywhere you want to get the piece on square "from". No bitboard accesses and MSB/LSB operations required. Not how bitboards are intended to work, but they _can_ be used like that...
"Could", "might", "is possible". I don't know what you're seeing but I don't see a whole lot of Board(from) going on.

3) You've stated yourself for years that coding bitboards requires a different way of thinking. Why the sudden change of mind?
Simple. The difference between "should" and "could". It is clearly possible to stuff the fruit eval right into Crafty. Deal with the re-numbered squares since the two programs use two different array sizes for the mailbox board, and you are ready to go. It would not be as fast, it would not be a "clean bitboard" program. But you can't say "impossible"... That was my point.
"Could, would, should"... I've never said "impossible". I said _unlikely_, as it would be faster in more ways than one to write it from scratch with bitboards.
Vasik once told he flipped the coin whether he used bitboards or mailbox:
http://www.stmintz.com/ccc/index.php?id=466930
... to tell the truth, I don't think board representation is all that important. I flipped a coin my first few weeks of computer chess programming, and it said bitboards. :)
There are enough semantical equivalent pattern in eval which are 1:1 convertable.

Code: Select all

if ( board[f2] == WHITE_PAWN && board[g3] == WHITE_PAWN && board[h2] == WHITE_PAWN ) ...
versus

Code: Select all

if ( (white_pawn_bb & bits_f2_g3_h2) == bits_f2_g3_h2) ...
If an evaluation of a program heavily relies on semantic equivalent and easy convertable pattern, the board representation really don't cares that much ...

Gerd

Post Reply