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."

46 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 cultiv8 · · Score: 3, Interesting

      Unfortunately, Rybka’s source code has never been available, so reverse engineering and straight-up move-evaluation comparison was used to analyze the originality of Rajlich’s chess engine.

      I don't see how anyone can claim plagiarism if they haven't seen source code.

      --
      sysadmins and parents of newborns get the same amount of sleep.
    4. 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.

    5. Re:The obvious question by devnull17 · · Score: 3, Interesting

      The same way that Google caught Bing ripping off search results a while ago: find some idiosyncratic behaviors (e.g. bugs) that serve no practical purpose and are highly unlikely to end up in two independent projects, and demonstrate the same weirdness in each.

    6. Re:The obvious question by JustinOpinion · · Score: 3, Informative

      He didn't steal the code from the other engines (it was open source). His biggest offense is denying the other coders credit.

      Well, it seems that Fruit is open-source in the sense that people can look at the codebase, but it is not FOSS. The license text (see, e.g. readme in this tarfile) says:

      All right reserved. Fruit and PolyGlot may not be distributed as part of any software package, service or web site without prior written permission from the author.

      Indeed it looks like a commerical product that you are meant to pay for. Rajlich's engine is closed-source and also commercial. He is not making his code available, so even if Fruit were, say, released under the GPL, he would be in violation of the license. But in fact Fruit is "all rights reserved" so if Rajlich took code from it then he is blatantly violating copyright, and thus breaking the law.

      I would think that the competition has a blanket ethics rule that says that you cannot win by breaking the law. So Rajlich, if he did indeed appropriate code, doesn't deserve the wins. (Yes, he obviously did ~something~ to improve upon Fruit, but he still cheated.)

    7. Re:The obvious question by Moryath · · Score: 3, Insightful

      FTFA:

      To come to this rather epic and libelous conclusion, the ICGA assembled a 34-person panel of programmers who have competed in past championships to analyze Rybka. Unfortunately, Rybka’s source code has never been available, so reverse engineering and straight-up move-evaluation comparison was used to analyze the originality of Rajlich’s chess engine. The panel unanimously agreed that newer versions of Rybka are based on Fruit — and worse, that the early beta versions were based on Crafty, another open-source chess engine.

      So in other words:
      - They empaneled as the "jury" a bunch of assholes who were predisposed to want Rajlich banned from competition (he kept beating them, four competitions in a row).
      - They based their decision on "move evaluation", a decidedly touchy subject given that in any Chess situation, it should be theoretically possible to find an optimal move and the more optimal the engines, the more optimal moves they'll make.

      So, people with a motive to try to force Rajlich into a no-win situation got a chance to... hey look, a no-win situation!

      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.

      ICGA fucked up royally. What they SHOULD have done is demanded a closed-doors, clean-room evaluation of the Rybka source code. Instead, they're playing the "burn him at the stake" card, banning him from ever competing again and demanding he "come clean" when for all they know, his source is original and just plays better chess than the other, also-highly-optimized (and likely to make the same "optimal moves" on basic chess theory for the most part) competitors.

    8. Re:The obvious question by hattig · · Score: 2

      Or he can get a lawyer and sue them for defamation and/or libel if what they are claiming isn't true. If it isn't, I am sure that he is already talking to a lawyer if there is no basis in the claim.

    9. Re:The obvious question by Dog-Cow · · Score: 2

      If he doesn't distribute the binary, he needn't release the source.

    10. 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

    11. Re:The obvious question by Vario · · Score: 2

      On the Rybka website you can buy the current version of either Rybka 4 for 36 Euros or Deep Rypka 4 for 65 Euros.

      If these downloads contain any of the stolen code in their binaries this definitely counts as distribution.

    12. Re:The obvious question by postbigbang · · Score: 2

      Similarities alone don't mean plaigarism. Logic can be gleaned from open source code, then applied to other code, perhaps engines. So long as copyright isn't violated, and licensing strictures aren't violated, reading someone's code, understanding the logic, then re-writing it is a hallowed action. For arguments supporting this, go to Groklaw, understand what BSD is (or read about the AT&T-Regents of UCB litigation), and so forth. Ask RMS.

      Logic and code might or might not be two different things. He might be inviolation of copyright law and the strictures of the license of the two programs in question. And he might not. Until you know, you don't. If he rewrote the logic, then an apology is in order. If he stole the code (e.g. copyright or license abbrogation) then he's in trouble.

      --
      ---- Teach Peace. It's Cheaper Than War.
    13. 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
    14. Re:The obvious question by Moryath · · Score: 3, Informative

      First off: would it kill you to learn some basic HTML? Hard to separate out your comments when you're too lame to even italicize.

      I know a lot of competitors and they don't want people who beat them banned.
      Idle speculation and ad homs help nothing.

      Empanel the losers from the competition on a witch hunt against the winner. Sounds like a dick move to me. Definitely doesn't pass the smell test.

      They could get a third party to analyze and compare.

      Why, precisely, should the Rybka team have to pay for that? It's the ICGA that should have been the ones doing this. FIRST.

      And there are striking similarities in behavior.

      You can walk into any chess tournament and see "striking similarities in behavior" between members of the same chess club/team, or between players of equal skill. Chess is a logical game, relying on logical formulations. Eventually, like Checkers and Othello were, it'll be solved. The closer the programs get to solving it, the more moves alike they'll make. "Similarities in behavior" of mathematical problem-solving prove nothing. If anything, the fact that his program beat - rather than drew to - the other programs ought to prove that he was NOT using their source code.

      by your argument, opening moves in chess would have been the same for hundreds of years.

      Funny you should mention that.
      There are a grand total of 10 logical chess opening moves (8 pawns, 2 knights). Opening with knights has been derided as downright silly for centuries; the only "variation" there comes when it's immediately followed by a pawn push alongside, putting it back into "standard" opening land of a Kingside or Queenside gambit. Openings that begin with the A,H,B,G pawns are rightly derided as virtually useless. Even opening with the C and F pawns is viewed as akin to suicide, since it allows the opponent to open straight into the middle virtually uncontested.

      Queen's Gambit openings, of various sorts, have dominated the arena since the early 1400's. The Italian opening was the favorite kingside method for over 300 years, until the Ruy Lopez opening passed it up in popularity. The entirety of "Black Openings" in modern chess for the past 500 years have been attempts to devise responses to these three methods of attack.

      So now that I've given you a lesson, run back to your checkers board. The grownups are discussing things.

    15. Re:The obvious question by LoveMuscle · · Score: 3, Informative

      Not necessarily, most Open Source Software (OSS) licenses (eg. GPLv2, EPL, etc.) only kick in on redistribution since you need the license to not be in violation of someone's copyright. You can USE all the OSS you want without complying with the license if you don't redistribute it. On top of that some OSS Licenses don't require that you disclose that there is OSS in your redistributable nor do they require you to provide source. (eg. 3-clause BSD).

      In this case however, he's clearly distributing the binaries. Fruit appears to be LGPLv2.1 and Crafty has some goofball custom pseudo-oss license that requires attribution. So if he did copy the code and redistribute he's not complying with the licenses and in violation of copyright law.

      I don't find it all that unusual that 2 different good chess programs might make similar decisions, and they don't have the source to compare so unless someone is going to sue and do discovery the claim of plagiarism is (IMO) premature.

      The courts exist to settle just these sorts of conflicts, and banning him on supposition is questionable.. IANAL....

    16. Re:The obvious question by Skuto · · Score: 2

      Did you read the original statement from the ICGA? The one including the analysis?

      Oh right, this is /.

      Nevermind.

    17. Re:The obvious question by GooberToo · · Score: 3, Insightful

      Open source does not mean free of copyright. Furthermore, many open source licenses depend on copyright enforcement. Furthermore, claiming someone else's create as your own is fraudulent at best.

    18. Re:The obvious question by alexo · · Score: 2

      So 40% unique isn't good enough?

      Not if you claim to be 100% unique.

    19. Re:The obvious question by icebraining · · Score: 2

      With the GPL you at least have to include an offer to ship the source with the binary, the user can't be expected to guess.

    20. 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.
    21. Re:The obvious question by h4rr4r · · Score: 3, Insightful

      As someone who is no chess master but can count, you are wrong. Those horsies move in Ls and each one has two possible Ls he could move into . Plus the pawns can move one spot or two spots. So that is 8 more moves. Up to 20 already. There might be more, but I am too busy playing Go to count.

    22. Re:The obvious question by rtfa-troll · · Score: 2

      If you had READ THE FUCKING ARTICLE PROPERLY you would know that he agreed to a bunch of rules which meant that a) his source had to be available and b) his code had to be original. The fact that the other engines are or aren't public domain is irrelevant to whether he should be excluded.

      --
      =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();
    23. Re:The obvious question by postbigbang · · Score: 2

      Is this because the compiler does similar things to function calls? It's really NOT proof until you see the source. I can write a lot of code that compilers will optimize to the exact same bytecode. It's not really convincing without *source*.

      --
      ---- Teach Peace. It's Cheaper Than War.
    24. Re:The obvious question by asdfghjklqwertyuiop · · Score: 2

      You're completely wrong. The source is indeed copyrighted. Additional permission to copy is granted by the license, usually on the condition that attribution is preserved.

    25. Re:The obvious question by postbigbang · · Score: 2

      I can write the same code set, alter it significantly, enough to easily pass the test of copyright, do a make, and have the results be identical in every possible way.

      Approaching the logic of a chessboard layout, once having viewed open source code, I could rewrite it to yours, or anyone else's satisfaction. This is without reverse engineering the code, rather, following its logic and using a mime-- but satisfactory analog-- of what it does. Other concepts, like UI, may have protections, but I can alter these, too-- and a chessboard isn't copyrightable.

      So they could be very close in logic. My chess opponents are very good, and I've been hammered playing chess. After a while, however, I can start to predict their moves, as they can predict mine. Such diminishing returns really proves nothing. I maintain you have to see the source, and have to know that the source license and copyrights haven't been abrogated.

      --
      ---- Teach Peace. It's Cheaper Than War.
    26. Re:The obvious question by nebulus4 · · Score: 2

      First of all, the guy who wrote the article is just clueless. No offense to him, but he sounded as one who has clearly no competence to speak on the matter.

      Secondly, the panel only made a recommendation. The ICGA board plus WCCC tournament director acted like the jury. They agreed with the recommendation.

      Thirdly, Ken Thompson was one of the members of the panel and I quote investigation report:

      Here are some opinions of panel members recorded on the investigation wiki pages:
      Ken Thompson:
      After reading all the evidence, voted that he was convinced by the case against Rybka.

      If you are going to call him an asshole, I'm definitely going to call you an idiot.

      ICGA didn't f*ck up.

      --
      "It would be wrong to refuse to face the fact that everything is fundamentally sick and sad."
  2. straight shooter with upper management written all by Joe_Dragon · · Score: 2

    Taking credit for others work is just part of the job!

  3. Best chess engine by Arlet · · Score: 3, Interesting

    No Rybka, but Houdini:

    http://www.cruxis.com/chess/houdini.htm

    Rybka/Houdini played a 40-game match recently, and Houdini won by a wide margin of 23.5-16.5. You can see the match here:
    http://livechess.chessdom.com/site/ (Check for TCEC S1 Elite Match)

  4. Rybka ... Or Skynet? by WrongSizeGlass · · Score: 3, Funny

    Now that it isn't distracted by chess this poor little computer will have nothing else to do except plot its revenge against man.

  5. 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
    2. Re:Should be easy to prove innocence by Unoriginal_Nickname · · Score: 3, Informative

      The problem with looking at just algorithm similarities is that every modern chess bot uses some variant of the same algorithm so the executable code will superficially look similar (negamax.) Computers aren't powerful enough to search the entire game tree, so you have to stop after a certain number of levels (15, for instance) and use a heuristic to evaluate the strength of that position.

      The main differences between chess bots are found in that heuristic.

      According to the actual report the heuristic is obviously based on Fruit's, which is what they're really angry about.

  6. Oblig. by Bobfrankly1 · · Score: 4, Funny

    Checkmate?

  7. Re:Hmmm...no comparison of source codes by MysteriousPreacher · · Score: 2

    What aside is there? It's fairly clear that his claiming the work of others as his own is the issue.

    Here's a quote from the an open letter announcing the ban.

    "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 their submission details."

    Open source is fine - so long as credit is given.

    --
    -- Using the preview button since 2005
  8. Re:Come Clean by TaoPhoenix · · Score: 3, Insightful

    What if someone made it financially tenable for him to show his code?

    "Oh. You did in fact innovate. Okay, we're sorry. But we won't take back the reputation tsunami we unleashed on you."

    Anyone see parallels with the whole DHS theme of accuse first and question later?

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  9. I think Samuel Johnson said it best by idontgno · · Score: 3, Funny

    "Your [chess program] is both good and original; but the parts that are good are not original, and the parts that are original are not good."

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
  10. I dunno? Sensed a disturbance in the force? by mschaffer · · Score: 3, Informative

    This explains it, but without an exact source:
    http://blog.chess.com/clizaw/did-ibm-cheat-kasparov

  11. He did not combine them. by HanClinto · · Score: 3, Informative

    He didn't even do that, he combined two separate opensource engine making one better engine.

    According to the allegations, he did not combine two open-source programs into a super-bot. They claim that the current version of his bot (Rybka) is a copy of Fruit, and an earlier version of his software was a copy of Crafty.

    As you said, he closed-sourced them and claimed them as his own without giving attribution -- thereby breaking the software licenses of at least one of them (Fruit), which is GPL.

  12. Re:This is very easy to verify by Skuto · · Score: 2

    The panel was made up of every computer chess expert the organization could get their hands on, which of course included competitors.

    But if he wanted to avoid those, he could have proposed to send his source to a neural subselection.

    He didn't reply at all. What could he say? The full reports are posted, and they're completely damning. I guess the writer of the article linked here didn't manage to understand that.

  13. Re:Why "Chess Engine" Programmers? by Skuto · · Score: 2

    What you say is completely disconnected from what actually happened. The conviction didn't happen by observing the engine, the conviction happened because the panel reverse engineered the binary exacutable and found a huge similarity, including exactly identical implementations of non-obvious functions, identical bugs and identical dead code in the commercial engine and the opens source engines.

  14. 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

  15. Re:Whining, chess-playing, sore losers! by mschaffer · · Score: 2

    Kasparov thought that people were helping Deep Blue during the game. That would be cheating.

  16. 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.

  17. Yeah, that's just Kasparov being a sore loser by sirwired · · Score: 2

    I read that article. What a joke.

    His "evidence":

    - He thought humans must have intervened in the middle of the game because the machine did something he didn't expect. But no actual evidence whatsoever was provided for this serious charge.
    - He asked for the machine's logs, but IBM refused to provide them. If he wanted the logs, he should have made that part of the agreement beforehand. IBM probably withheld them at the time to preserve secrets on exactly how the machine worked, which could have given Kasparov an advantage IBM didn't want him to have.
    - IBM changed the programming between games. Which the agreement allowed it to do.
    - IBM "must" have cheated because it refused to do a rematch and immediately retired the machine. What did he think Deep Blue was? A product announcement? Of course it was a publicity stunt! IBM never pretended otherwise. Did he think Poughkeepsie was going to start rolling them off the assembly line and start selling the software on the internet? Of note here is that this was around the time the RS/6000 (now pSeries) product line began to take off, eventually eclipsing Sun. (pun not intended) So the machine did exactly what it was supposed to do there...

  18. Re:Come Clean by rtfa-troll · · Score: 3, Informative

    Let's see, should we take the word of Ken Thompson (yes that one), who according to the fine article seems to have been on the investigative panel, or the word of a random slashdot troll? Duhhh...

    Actually neither. We should Read The Fine Reports.

    Beyond the plain expression of the program, there are lots if artifacts which come through from source to binary. Even if two progammers start in the same language to develop the same algorithm to solve the same problem they will normally end up with great differences. The exceptions are the stuff of legends, and we are talking about 20 line long assembly programs. One programmer will choose an integer because it's big enough, another a long because the variable will mostly be used with other longs. This choice will not be optimised out of existence.

    Looking at the report, it seems they used various different artifacts and clearly showed similarity between the programs.

    --
    =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();