Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Testing Chess Programs

Author: Russell Reagan

Date: 22:29:02 04/12/04

Go up one level in this thread


On April 12, 2004 at 23:07:46, Christophe Theron wrote:

>Further, wouldn't you just *hate* if I took the fun out of chess programming by
>telling you everything? :)

My gut feeling is that we would probably be disappointed for the most part. I
bet a lot of us think all of you commercial authors are harboring lots of
magical secrets that can turn an average program into a beast. Something similar
to the improvements you get by going from minimax to alphabeta, or by adding
null-move to an average program, and things like that. Those are very
significant improvements.

I have received the impression from you and other sources like Ed's webpage that
this is not the case. There are some clever things on Ed's webpage, but for the
most part, it is good ideas based on common sense, and then taking the time and
effort to hammer out every last detail to make an idea work, followed by an
efficient implementation.

To illistrate the difference between what I think a lot of people would expect
to hear from you if you divulged all of your secrets and what I think we would
really get, consider null-move. Null-move is something that you can add to a
program that uses no forward pruning, and once you spend a small amount of time
getting it to work right, the program suddenly plays like it's on steroids
(relatively speaking). However, if we took an average program and added in a few
ideas from Ed's webpage, I wouldn't expect nearly as big of an improvement. I
think you guys just take a lot of ideas and get small improvements here and
there, and at the end of the decade, it amounts to a big improvement. 10%
reduction in tree size here, 20% there, it adds up.

Am I right? If we are expecting to see magical earth shattering secrets, would
we be disappointed?

On a related note, this brings up a question. If it is true that a lot of things
that give your program improvements at this stage are very minor things, then it
seems logical that those things would not necessarily result in improvements if
they were implemented in other programs, because your ideas probably fit into an
overall system. Do you think it is important to have a good overall system,
where all components compliment one another?

For instance, a simple example of a system: the job of the full width search is
to hand off nodes to a qsearch, which has the job of handing off quiet positions
to an evaluation function. Under that system, you only want to evaluate quiet
positions, not all positions. If you acheive that, then you make sure your
qsearch is really delivering quiet positions. If it is, you are probably getting
accurate analysis from the engine. If someone took that beefed up qsearch that
was required to make that system work successfully and implemented it in their
program, it may only cause a qsearch explosion and result in weaker play.

Am I right in believing that it is important to have an overall view of the
system, and that ideas that resulted in improvements in your engine may not help
other engines at all?



This page took 0.01 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.