Forgot your password?
typodupeerror
AI Open Source Software Games

World's Best Chess Engine Outlawed and Disqualified 315

Posted by samzenpus
from the cheaters-never-win-more-than-4-times dept.
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."
This discussion has been archived. No new comments can be posted.

World's Best Chess Engine Outlawed and Disqualified

Comments Filter:
  • by El_Muerte_TDS (592157) <{elmuerte} {at} {drunksnipers.com}> on Wednesday June 29, 2011 @03:22PM (#36614382) Homepage

    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.

  • by JustinOpinion (1246824) on Wednesday June 29, 2011 @03:33PM (#36614492)

    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 [fruitchess.com] 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 [fruitchess.com]) 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 [rybkachess.com]. 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.)

  • by vlm (69642) on Wednesday June 29, 2011 @03:54PM (#36614756)

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

  • by Arlet (29997) on Wednesday June 29, 2011 @03:58PM (#36614798)

    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

  • by mschaffer (97223) on Wednesday June 29, 2011 @04:02PM (#36614844)

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

  • by HanClinto (621615) <hanclinto.gmail@com> on Wednesday June 29, 2011 @04:03PM (#36614870)

    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.

  • by Unoriginal_Nickname (1248894) on Wednesday June 29, 2011 @04:09PM (#36614954)

    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 [chessvibes.com] the heuristic is obviously based on Fruit's, which is what they're really angry about.

  • by canajin56 (660655) on Wednesday June 29, 2011 @04:10PM (#36614974)
    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.
  • by Moryath (553296) on Wednesday June 29, 2011 @04:10PM (#36614978)

    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.

  • by Arlet (29997) on Wednesday June 29, 2011 @04:19PM (#36615082)

    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 [rybkachess.com]

  • by LoveMuscle (42428) on Wednesday June 29, 2011 @04:19PM (#36615086)

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

  • by Fnkmaster (89084) on Wednesday June 29, 2011 @04:30PM (#36615262)

    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.

  • Re:Come Clean (Score:2, Informative)

    by rtfa-troll (1340807) on Wednesday June 29, 2011 @05:03PM (#36615746)
    Why the hell do things like this bring out all the Slashdot loonies? You people could have read the article, but you don't even have to do that. canajin56 has done it for you [slashdot.org]. They didn't just compare some moves. They actually analysed the binaries. Their case is 100% watertight [chessvibes.com]. The only parallel I see with the DHS is you and a bunch of other Slashdot posters accusing them of ignorance before you have even read anything about their report.
  • by ArsonSmith (13997) on Wednesday June 29, 2011 @05:10PM (#36615846) Journal

    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.

  • Re:Come Clean (Score:2, Informative)

    by DamnStupidElf (649844) <Fingolfin@linuxmail.org> on Wednesday June 29, 2011 @05:49PM (#36616356)
    Holy crap, Ken Thompson was on the panel. If that isn't proof enough that the analysis at the very least was overseen by someone who knew what they were doing, then I don't know what is.
  • Re:Come Clean (Score:4, Informative)

    by rtfa-troll (1340807) on Wednesday June 29, 2011 @06:20PM (#36616660)

    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 [livinginternet.com], 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.

I am the wandering glitch -- catch me if you can.

Working...