Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Copying Crafty... Issues?

Author: Will Singleton

Date: 20:56:18 02/20/99

Go up one level in this thread


On February 20, 1999 at 19:43:57, Vincent Diepeveen wrote:

>On February 18, 1999 at 04:19:50, Bruce Moreland wrote:
>
>>
>>On February 17, 1999 at 15:20:37, Fernando Villegas wrote:
>>
>>>Of course by definition, but this only changes the place of the problem. Instead
>>>of wondering what a program should be to be considered a program by itself, now
>>>the question would be what a guy should be to be considered an author. If Bionic
>>>is different -yhe old discussion- his fathers are "authors". If not, the are
>>>not. So we arrive at the same point. So we need even more rules whcih will carry
>>>new boundaries to be defined at nauseaum. Perhaps some kind of torumament for
>>>second generation authors should be invented :-)
>>
>>I think there are some bad traps here.
>>
>>We have the following things that can be done to a freeware program:
>>
>>A1) Minor evaluation changes.
>>A2) Major evaluation and extension changes (plays very different).
>>A3) Gut the entire thing and leave nothing but the UI, essentially.
>>
>>We have a few things that secondary authors can do:
>>
>>B1) Sell it.
>>B2) Enter it in an ICCA tournament without original author's permission.
>>B3) Claim sole authorship.
>>
>>There has been some contention about whether the Bionic or Voyager guys did A1
>>or A2.  I don't think it matters much.  In either case, B1, B2, and B3 are all
>>out of the question, in my opinion.
>>
>>If someone does A1, the original author is still the person most responsible for
>>the program, and deserves sole authorship, and the secondary author deserves a
>>minor credit if that.
>>
>>If they do A2, there is the potential for some major effort to have been done,
>>and even legitimate research and no need at all for recriminations.  The
>>secondary author assumes the status of co-author.  But in my opinion options B2
>>and B3 are still out of the question.  There is a lot more to a program than
>>eval and search extensions.  There is a lot of infrastructure, *especially* in
>>Crafty, devoted to moving pieces around the board, hash table stuff, parallel
>>search, and setting up data structures that can be use to efficiently generate
>>evaluation terms.  And not only that, there is the opening book compiler, and
>>the two forms of learning that Bob uses.
>>
>>Note that I am not necessarily ruling out A3 as a fine thing to do while still
>>doing some of the B's, but you'd have to wonder what is left over in the program
>>at that point, and I'd be very concerned that some of the strength-producing
>>elements of Crafty might be left over.  You may as well just write your own
>>thing from scratch and hook it up to Winboard.
>>
>>bruce
>
>I agree in a big part with what bruce writes above.
>There are however more reasons to call someone a cheater.
>
>Let's take a different approach for that, and figure out what
>might be a reason for someone to not start from scratch
>with a chessprogram and start with craftyparts; what are the parts
>one can start with:
>
>a) move generation
>b) parallellism
>c) evaluation
>d) main search
>e) quiescencesearch
>f) excellent way to read in PGN
>g) endgame table bases
>h) learning
>i) interface.
>
>Both gnuchess and crafty hardly have something we can call 'interface',
>so we can forget about it.
>
>Gnuchess we can forget anyway. Cheaters cheat because they want to have
>quickly a strong program without doing much. So they all start with
>crafty and not with gnuchess. Gnuchess misses simply too much to be
>interesting for a cheater, although the ideas in gnuchess are generally
>quite good to research in the future for a lot of commmercial programmers
>(but that's an opinion).
>
>If you use crafty code to have a), then i will not complain.
>
>However, if you use b) you are as guilty as you can be, because b)
>means you need c,d,e,g too.
>
>e) is very unique in crafty. Whatever you change in c), it doesn't matter.
>The q-search and static exchange evaluation is giving crafty such a
>drastic impact, that a few changes to c) is not rewarding.
>
>e) has to do with d). If you can change *anything* from d-g in a major
>way, then you must know a lot from parallellism, and therefore modify b too.
>
>If you can do that, then there is no ground to start with crafty anyway,
>as you must already have written your own program.
>
>So in my opinion is something that looks like crafty already not unique.
>Just copying move generation i personally can live with. However,
>this means that every other thing is initially 'bad'. A program starts
>being bad simply. It can't be that someone produces something and claims it
>to play better than crafty at once, by starting with crafty source
>and changing some major things within a short period of time. Bob is fulltime
>busy with crafty. No way that some easy changes by someone, who must first
>understand how craftycode works, can improve that easily, without that
>person having his own program already, or without a lot of help
>from the main author.
>
>It takes years to build a chessprogram. I think b) is a very fundamental
>thing from crafty. The whole datastructure has been rewritten to fit
>parallellism in. The whole program has been modified in order to allow
>parallellism. If any program looking like crafty has parallellism in it,
>which has been 'cut and pasted' out of crafty, then i *already* have enough
>ground to call someone a cheater, because it's near to impossible that
>he could have changed some things drastically in crafty.
>
>Greetings,
>Vincent


Excellent post, Vincent.  Very compelling arguments.

Will



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.