Author: Robert Hyatt
Date: 12:38:57 02/16/05
Go up one level in this thread
On February 16, 2005 at 13:40:07, Russell Reagan wrote: >On February 16, 2005 at 10:46:39, Robert Hyatt wrote: > >>On February 15, 2005 at 18:38:43, John Merlino wrote: >> >>>I'm not trying to start a brutally long thread here, but I'm just curious about >>>how people feel about a particularly touchy subject -- clones. What, in your >>>mind, would lead you to the conclusion that an engine is a clone? >>> >>>Let's forget trying to find ways to PROVE that a clone is a clone; I'm just >>>trying to define one. For the sake of argument, assume that the author of this >>>engine in question tells you exactly what he did and did not do, and you must >>>decide whether to call it a clone or not. >>> >>>Here are some hypothetical questions to start the debate: >>> >>>If the author took Crafty and completely rewrote the evaluation code and nothing >>>else, would it be a clone? >>> >>>How about if the author rewrote the evaluation code and search algorithm only, >>>but left the hashing code, et. al.? >>> >>>How about if the author rewrote everything EXCEPT for the evaluation? >>> >>>How about if the author rewrote everything EXCEPT for Crafty's evaluation of >>>passed pawns? >>> >>>I think you can see where I'm driving. Obviously, many engine authors have >>>studied Crafty and other engines whose authors have graciously provided their >>>source code. But, for an engine to not be considered a clone, does it have to be >>>absolutely 100% the work of the author? (Forget about Nalimov's EGTB probing >>>code and any other code that can be used with permission). >>> >>>Many thanks in advance for your thoughts, >>> >>>jm (who's just preparing for any eventuality during his upcoming stint as >>>moderator :-) >> >> >>Here is my thinking. >> >>1. The things that give a program its "personality" are the evaluation and the >>search itself. The search defines the program's tactical ability, the >>evaluation defines the programs non-tactical chess playing ability. Copying >>either/both should not be allowed. >> >>2. Other parts such as the opening book are probably OK. For example how many >>are using a GUI that handles the book outside of the engine? That seems >>difficult to stop. Of course a "shared opening book" is a no-no, since that is >>another part of a program that defines its playing skill level. >> >>If there is something that produces a single correct answer, such as "what is >>the set of moves for this position?" or "what is the updated chess position >>after making or unmaking this move?" or "what is the expected (SEE) win/loss for >>capturing on this square?" or "is the king in check?" then there is little >>reason to worry about those parts being copied, because copied or written from >>scratch, they by necessity produce exactly the same answer. But the eval and >>search don't have that characteristic. > > >If someone copies all of the movegen/make/undo stuff from a mature engine, then >some will say they have an unfair advantage because they saved a lot of time. >What is your take on this? Do you see this as an unfair advantage, "cheating"? >Or do you see this as an intelligent thing to do, to avoid reinventing the >wheel? I think it is a difficult argument to make. Did you use a commercial or free compiler or did you write your own? Did you use a library to do file I/O or did you write your own? What about a thread library for SMP stuff or "roll your own??" (I have done both for this case, for reference). I use a simple bubble-sort to order my moves. I will bet everyone has written one of those at some point, and that they look almost identical to mine if not exactly identical. OK or not? So long as we have black boxes that must produce the same output for a given input, I don't worry much about it. But searches are all different, evaluations are way more different. SMP search is part of the search itself as well. Things that don't have "a single right answer" need to be written by the programmer. Things that do have a single right answer could just as well be borrowed. IMHO of course.
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.