Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: legal move generator that is 20 times faster than Crafty

Author: Uri Blass

Date: 02:12:55 07/03/01

Go up one level in this thread


On July 03, 2001 at 02:48:48, Bruce Moreland wrote:

>On July 02, 2001 at 05:12:48, Andrew Williams wrote:
>
>>I wouldn't care too much about that. Suppose you have loads of stuff in your
>>makemove() that makes it possible to achieve very good move-ordering. Or that
>>makes it very quick to evaluate a node (because much of the work has been done
>>earlier). Then your perft speed will be terrible, but your program could be
>>excellent.
>
>I think people often get so hung up on making things go fast that they lose
>sight of the goal.
>
>Foremost, the goal is to play excellent chess, so you pick evaluation and search
>techniques that get you there.
>
>A second goal is to get as deep as you can with your set of evaluation and
>search techniques, by ordering moves properly.
>
>A third goal is to increase speed by generating moves and executing them faster.
>
>A problem with move-generation addicts is that they are only concerned with part
>of a sub goal.  It doesn't matter how quickly you can generate moves if you
>can't execute them quickly because you've shunted all of the work into
>"makemove".

I check the quality of my move generator simply by the speed of calculating the
perft function so it is not relevant for me.

I consider executing the moves as part of my move generator.

For me the move generator is the part that I need to use in order to calculate
the function perft.

  And it doesn't matter how quickly you can generate and execute
>moves, if you've destroyed your ability to order them.

I do not think to do my move generator faster by not generating new information.
The opposite:
I think that pseudo attack arrays may help to make my move generator faster
because it may help me to update my attack arrays faster.

  And your program's play
>will suffer if you don't get anything out of your move generator and move
>execution stuff that will help you evaluate positions and do pruning, etc.
>
>bruce

I clearly get information about every square(a 32 bit number that describes
directions that it is attacked and another number for the square of the
attacking piece from every direction).

The point is that numbers in the order of 10 knodes per second on PIII800 are
not good enough for a move generator.

Crafty can generate more than 2,000,000 legal moves per second based on the time
of calculating the perft function.

something in the order of 10 Knodes per second may be enough to be 10 times
slower than Crafty in calculating perft but is not enough for me.

My math is not wrong because for every leaf node I calculate the number of legal
moves without making them and I define the number of nodes as the number of the
times that I call makemove.

Uri



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.