Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: bitboards and incrementally updated attack tables.

Author: Russell Reagan

Date: 15:29:11 06/30/04

Go up one level in this thread


On June 30, 2004 at 13:51:13, Eric Oldre wrote:

>What are other peoples thoughts on incrementally updated attack tables?

Ask yourself: Why do you want incremental attack tables? If it's because you
*think* you need them, or you *think* it will make your program faster later on,
or you *think* something else, then that's not a good reason. Don't make a big
structural change because of something you think. Do it because you can
demonstrate that it needs to be done, by profiling, benchmarking, testing how
well the program plays, and so on.

Guessing at what will be better is a sure fire way to waste time (I know from
experience). A chess program is a complicated creature, and so are modern
computers. The only way to make progress is to have some way of knowing that you
have made progress (i.e. profiling, benchmarking, testing playing ability,
etc.).

Wait until your program is relatively settled in and you have a good idea of
what your engine will be doing. At this point you will still make changes, but
the basic structure of the program is more or less stable and unlikely to change
drastically. Before this point, you will be adding and changing dozens of
things, and you won't know if you will benefit from attack tables because you
can't do any good testing. You can profile your code, but if there are several
other significant additions or changes in the next month, your previous testing
doesn't tell you anything.

Once your program is settled in, profile it. If the profile indicates that you
are spending a big chunk of time detecting attacks, then adding attack tables is
a reasonable thing to consider at that time.

My gut feeling is that you shouldn't mess with this now. Write clear, flexible
code that allows you to make this change later without too much difficulty.

I would recommend sticking to computing things on the fly and only detect
attacks (or whatever else) when you need to. Avoid computing things that you
might not need. After you spend a while working on your engine (6 months to a
year maybe), and you have a better idea of what your engine will be doing, then
you can reasses things.

Christophe Theron (author of Chess Tiger) is a proponent of doing everything on
the fly and using testing to be sure that you are actually making progress.
"Don't mistake activity for progress", as the saying goes.



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.