Slashdot Mirror


World's Best Chess Engine Outlawed and Disqualified

An anonymous reader writes "Rybka, the winner of the last four World Computer Chess Championships, has been found guilty by a panel of 34 chess engine programmers of plagiarizing two open-source chess engines: Crafty and Fruit. The governing body of the WCCC, the International Computer Games Association, is even demanding that Rybka's author — the international chess master and MIT graduate Vasik Rajlich — returns the trophies and prize money that he fraudulently won. Rybka will no longer be allowed to compete in the World Championships, and the ICGA is asking other tournaments around the world to do the same."

12 of 315 comments (clear)

  1. The obvious question by elrous0 · · Score: 4, Insightful

    If he was just ripping off two other engines, why did his win?

    Sounds like he at least made improvements to them, and isn't that what open source is supposed to be all about? In fact, the article even acknowledges "ICGA isn’t even disqualifying Rybka because it copies Fruit — rather, it’s simply upset that Rajlich claims his engine is original, and refuses to give credit where it’s due." Okay, so maybe he should have given the other coders credit, but why should that disqualify him from winning? He still won. He didn't cheat. He didn't steal the code from the other engines (it was open source). His biggest offense is denying the other coders credit.

    I think he should have to share the prize with the other coders (since they contributed code to the final product). But it still doesn't take away from the fact that his fork won. It doesn't justify taking away the win, as if he had cheated. His engine is still the best, open source code and all.

    And, nothing against FOSS, but why on earth would you even release code designed for competition as open source, BTW? Aren't you essentially unzipping your fly and telling you competitors all your secrets? Couldn't releasing the source code wait until after the software was "retired" from competition?

    --
    SJW: Someone who has run out of real oppression, and has to fake it.
    1. Re:The obvious question by h4rr4r · · Score: 4, Insightful

      Because he committed plagiarism, plain and simple.

    2. Re:The obvious question by Un+pobre+guey · · Score: 5, Insightful

      He didn't steal the code from the other engines (it was open source).

      If he refused to disclose that he used open source code then he most likely violated the terms of the open source license and therefore did indeed cheat. Open Source is not the same as Public Domain.

    3. Re:The obvious question by El_Muerte_TDS · · Score: 5, Informative

      Nothing wrong with reusing other people's work with permission. But claiming that you made it (i.e. plagiarizing) isn't.

      Also, Fruit 2.1 was released as GPL 2. Rybka is not, so it's a violation of copyright. And Crafty's license also doesn't permit the way Rybka used its source.

    4. Re:The obvious question by Arlet · · Score: 5, Informative

      Cheating, in this case, means violating the rules of the championship:

      18th WORLD COMPUTER CHESS CHAMPIONSHIP TOURNAMENT RULES

      2. Each program must be the original work of the entering developers. Programming teams
      whose code is derived from or including game-playing code written by others must name all
      other authors, or the source of such code, in the details of their submission form

    5. Re:The obvious question by canajin56 · · Score: 5, Informative

      Read the fucking report. An analysis of the binary code revealed 60% similarity. So about 60% of the binary was completely identical. Most of the evaluation functions which are unique to Fruit (AKA not done in other algorithms) were mostly identical, usually with only some constants changed. These are functions that not only are unique in their purpose to those in Fruit, but which have the exact same binary code, the same local variables, declared in the same order. That much duplication is absolutely beyond the pale. In earlier versions of Rybka, they found that obsolete functions from the Crafty codebase were in there. So, you are claiming that not only did he magically duplicate most of the functions, he even had the same useless functions just sitting there not being called. And the exact same unit tests for those unused functions. So, there is a long history of blatant copy and pasting, some of it even completely mindless (copying unused functions). Additionally, he was offered the chance to be on the panel and offer his own input without having to release his sourcecode. He refused to respond whatsoever in his own defense.

      --
      ASCII stupid question, get a stupid ANSI
    6. Re:The obvious question by ArsonSmith · · Score: 5, Informative

      Right in main.c

        Crafty, copyright 1996-2010 by Robert M. Hyatt, Ph.D., Associate Professor
        of Computer and Information Sciences, University of Alabama at Birmingham.

        Crafty is a team project consisting of the following members. These are the people involved in the continuing development of this program, there are no particular members responsible for any specific aspect of Crafty.

        * Michael Byrne, Pen Argyle, PA.
        * Robert Hyatt, University of Alabama at Birmingham
        * Tracy Riegle, Hershey, PA.
        * Peter Skinner, Edmonton, AB Canada.
        * Ted Langreck

        All rights reserved. No part of this program may be reproduced in any form or by any means, for other than your personal use, without the express written permission of the authors. This program may not be used in whole, nor in part, to enter any computer chess competition without written permission from the authors. Such permission will include the requirement that the program be entered under the name "Crafty" so that the program's ancestry will be known.

        Copies of the source must contain the original copyright notice intact.

        Any changes made to this software must also be made public to comply with the original intent of this software distribution project. These restrictions apply whether the distribution is being done for free or as part or all of a commercial product. The authors retain sole ownership and copyright on this program except for 'personal use' explained below.

      Personal use includes any use you make of the program yourself, either by playing games with it yourself, or allowing others to play it on your machine, and requires that if others use the program, it must be clearly identified as "Crafty" to anyone playing it (on a chess server as one example). Personal use does not allow anyone to enter this into a chess tournament where other program authors are invited to participate. IE you can do your own local tournament, with Crafty + other programs, since this is for your personal enjoyment. But you may not enter Crafty into an event where it will be in competition with other programs/programmers without permission as stated previously.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
  2. Should be easy to prove innocence by JustinOpinion · · Score: 5, Insightful
    TFA points out that Rajlich could exonerate himself by showing the source code, but then says that this isn't possible:

    It’s a tricky situation, though: with Rybka now outlawed from the WCCC, and with the ICGA asking other tournaments to block its entry, the only real way Rajlich and the rest of the Rybka team can clear their names is to show their source code — a financially untenable move. In short, Rybka is stuck between a rock and a hard place.

    This doesn't really hold up. Yes, Rajlich is trying to sell his software, so he can't open-source it to the world. But to exonerate himself he doesn't have to release the source-code to the world; he simply needs to arrange for the source code to be shown to the expert panel. As long as they can both confirm that: (1) the provided source compiles to the binary used in competition, and (2) there is no substantial overlap between the provided source and other known codebases, then he's in the clear. The expert panel doesn't have to retain copies of the source code beyond the review period (all copies could be destroyed).

    So, really, it should be possible for Rajlich to demonstrate the originality of his code without releasing it or decreasing his commercial opportunities. The fact that he hasn't done this is strange. In that sense, it sounds to me like the ICGA made the right decision here.

    1. Re:Should be easy to prove innocence by vlm · · Score: 4, Informative

      I have an honest question. I'm going to assume the program is compiled into an executable, and not a scripting language like python. How do they determine if code from an open source program was used from the binary program?

      Compile it with debugging symbols and compare to the open source program compiled with debugging symbols and compare the symbol tables. How odd that so many functions are exactly the same length and have exactly the same arguments. Run both thru a profiler and notice any identical control flow loops. I suspect there's a way to ask the GCC optimizer to compare the psuedocode before it gets assembled. Heck, just rub the raw binaries against each other and look for matches. It would be hilarious to ask/force him to compile and/or link mixmaster style

      Ask a "windows security researcher" dude how he identifies a file with a virus. If he says, "use norton" then fire him and repeat. Eventually you'll find someone who knows how to use the binary equivalent of "substr".

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  3. Oblig. by Bobfrankly1 · · Score: 4, Funny

    Checkmate?

  4. Re:Whether he improved on them is irrelevant by Arlet · · Score: 4, Informative

    since he didn't redistribute binaries he didn't need to provide the source

    He's using a funny way of not redistributing binaries, then:

    http://www.rybkachess.com/index.php?auswahl=Purchase+Rybka

  5. Re:Whether he improved on them is irrelevant by Fnkmaster · · Score: 4, Informative

    A) As was already pointed out, he sells the binary engine, so he did redistribute it.

    B) The rules of the competition require disclosure of any used third party libraries or components. Since he didn't disclose this usage, he violated the competition rules regardless of whether he was complying with the license conditions or not.