How to protect official tournaments from clones?

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

Moderator: Ras

Alessandro Scotti

How to protect official tournaments from clones?

Post by Alessandro Scotti »

Hi,
I was reading the rules for the WCCC 2007 and I found this paragraph about clones:

Code: Select all

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 their submission details. Programs which are discovered to be close derivatives of others (e.g., by playing nearly all moves the same), may be declared invalid by the Tournament Director after seeking expert advice. For this purpose a listing of all game-related code running on the system must be available on demand to the Tournament Director.
I am not sure what to make of it and while I wait an answer from the ICGA I would like to hear your opinion.

My point is that this rule is not clear and not strong enough, I would have preferred something like:

Each program must be the original work of the entering developers. Every non-original program will be immediately kicked out of the tournament.

The current statement seems to imply that if you come with a clone and simply declare it then there is no problem. It also says that when a clone is discovered then it _may_ be kicked off the tournament... why _may_ and not _will_?

Also what about the opening book? The EGTB? Shouldn't this stuff be explicitly mentioned in a world champtionship?
:?
Sergei Markoff

Re: How to protect official tournaments from clones?

Post by Sergei Markoff »

Dave McClain
Posts: 1018
Joined: Fri Mar 10, 2006 12:56 am
Location: Major, 45 Commando, Royal Marines, Condor Barracks, Arbroath, Scotland
Full name: Dave MCClain

Re: How to protect official tournaments from clones?

Post by Dave McClain »

Alessandro Scotti wrote:Hi,
I was reading the rules for the WCCC 2007 and I found this paragraph about clones:

Code: Select all

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 their submission details. Programs which are discovered to be close derivatives of others (e.g., by playing nearly all moves the same), may be declared invalid by the Tournament Director after seeking expert advice. For this purpose a listing of all game-related code running on the system must be available on demand to the Tournament Director.
I am not sure what to make of it and while I wait an answer from the ICGA I would like to hear your opinion.

My point is that this rule is not clear and not strong enough, I would have preferred something like:

Each program must be the original work of the entering developers. Every non-original program will be immediately kicked out of the tournament.

The current statement seems to imply that if you come with a clone and simply declare it then there is no problem. It also says that when a clone is discovered then it _may_ be kicked off the tournament... why _may_ and not _will_?

Also what about the opening book? The EGTB? Shouldn't this stuff be explicitly mentioned in a world champtionship?
:?
Allessandro,

The problem here is that the best minds in the computer chess world can't decide what is a clone and what is not.
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: How to protect official tournaments from clones?

Post by Bill Rogers »

The answer to your question is made perfectly clear with the first line of the quote. "Each program must be an original piece of work". That means if you have cloned someone elses work you can not play and if it is discovered during the tournement that your program is a clone you will be kicked out of the tournement.
Alessandro Scotti

Re: How to protect official tournaments from clones?

Post by Alessandro Scotti »

Bill Rogers wrote:The answer to your question is made perfectly clear with the first line of the quote. "Each program must be an original piece of work".
OK, that's what I thought upon reading that line.
Bill Rogers wrote:That means if you have cloned someone elses work you can not play and if it is discovered during the tournement that your program is a clone you will be kicked out of the tournement.
I agree with this, but I can't read that so clearly in the rule text, so it leaves room for cloners to fight back!
Dann Corbit
Posts: 12777
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: How to protect official tournaments from clones?

Post by Dann Corbit »

Alessandro Scotti wrote:
Bill Rogers wrote:The answer to your question is made perfectly clear with the first line of the quote. "Each program must be an original piece of work".
OK, that's what I thought upon reading that line.
Bill Rogers wrote:That means if you have cloned someone elses work you can not play and if it is discovered during the tournement that your program is a clone you will be kicked out of the tournement.
I agree with this, but I can't read that so clearly in the rule text, so it leaves room for cloners to fight back!
I don't think that the definition helps.
For instance, every program uses either alpha-beta or MTD(f) in one form or another and the people using those algorithms did not invent them.
Are the programs therefore original?
I think we would all agree that the answer is a clear 'YES!'.
So what (then) does 'original' mean?

To clone something is to take without permission and without credit.
For some kinds of licenses, only credit is necessary (e.g. Berkeley style license with advertizing clause).
For other kinds of license, you must make the program open source if you use the code (e.g. GPL).

For every program on earth, the *ideas* are NOT protected. The fundamental algorithms that underly the processes (e.g. alpha-beta) do not have copyright protection {although an instance of the algorithm does have copyright protection -- but this does not protect it from a rewrite}.

You can protect fundamental algorithms with patent (distateful to me).

At any rate, I think that the thing desired is to prevent theft of intellectual property. That would mean:
0. Wholesale use of a program without permission (e.g. Voyager, Old Blind Dog, etc.)
1. Use of code that is altered in only a minor way without permission (Cut and paste into a program of the same type). This is hard to manage, but on rare occasions it would be possible
2. Use of a patented algorithm would certainly also be a violation (despite my disdain for the concept)

I do not think that this is an easy problem to settle.

Consider pvs chess search. There are only so many ways to outline a PVS search, so it is going to look about the same in every program. How will we know if someone cut and pasted a pvs search and then reworked it a bit for their program verses writing it from first principles? Answer: It will be very, very difficult to know [read: 'basically impossible']. The only cheaters that will be easy to catch are the really big cheaters (category 0 above).

Part of the morass that we have mired ourselves into is the result of not programming in a literate way. And by that I mean in a way that emulates how we would write a research paper. If we should put down the sources of where we found the information (e.g. the chess paper that contained the algorithm, the sources studied, etc.) then I think it would alleviate the problem to a large degree. Even in the case where we study someone's code I think in general they will be flattered if we credit them and insulted if we steal from them. It's just common sense.

I don't have any answers for the problem, unfortunately. As long as there are people willing to do things in an underhanded way instead of above-board, there will always be problems.
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: How to protect official tournaments from clones?

Post by Bill Rogers »

Hello Dann
I seldom argue with you over anything because of you experience but in this case I would like to make a point. What you stated about search engines, pvs, alpha-beta are all true but also all have been made public with no strings attached. To me the real difference lies within the evaluation subroutine. This in my opinion is the heart of any chess program and where some real differences in playing strength comes from, all other things being equal.
Bill
Alessandro Scotti

Re: How to protect official tournaments from clones?

Post by Alessandro Scotti »

I got an email from ICGA and it seems I confused the concept of "clone" with that of "close derivative". It's an interesting distinction so I think it can be useful to have a table that lists the possibilities, the values are IMO and debatable of course!

Code: Select all

Engine type      Action
-----------      ------
Original         Play
Clone            Kick out
Close derivative Kick out
Derivative       Kick out
Far derivative   Kick out

Book type        Action
---------        ------
Original         Play
Not original     Kick out

EGTB             Action
----             ------
Doesn't matter   Play
In this scheme, book code and EGTB code are not considered part of the engine so external code is OK (as long as it's legally licensed of course). However, the book itself should be original. I have mixed feelings on EGTB but since it's already custom for engines to use it I think it's wise to just accept the status quo.

P.S. The reason for all this comes from the question whether we should take the WCCC rules for the Italian championship or write our own rules. I'm becoming convinced that the latter would be a better option at this time.