Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Did Uri write movei? (yes)

Author: Uri Blass

Date: 14:06:49 06/13/02

Go up one level in this thread


On June 13, 2002 at 16:09:07, Brian Richardson wrote:

>On June 13, 2002 at 15:07:25, Dann Corbit wrote:
>
>>On June 13, 2002 at 14:45:06, stuart taylor wrote:
>>[snip]
>>>That's great! I didn't realize it was you.
>>>I wish you great success, and I'm sure you might eventually  become no.1 on
>>>ssdf! (but don't waste too much time over it).]
>>
>>I think Uri has taken a very wise approach.  He spent a great deal of time
>>optimizing a move generator.  This is the heart of a chess program.  A program
>>that has everything else excellent, but an average move generator can become
>>strong but not a superstar, because it will become a bottleneck at some point.
>
>At some point yes, but long after the eval and search bottlenecks are reached.
>I suspect most programs spend about 5-10% time in generating moves, and 30+%
>time in eval.

Not Movei
Today it wastes most of it's time in generating moves.

Movei is using the number of legal moves for the evaluation function and also
for the extensions rules.

The way it is using this information is not optimal and can be improved.

  Also, where does the move generation strictly stop?  There are
>also attacks, SEE, mobility, etc.  All of these functions may or may not use
>move generation.

When Movei makes moves it calculates some attack tables.
Today this information is not used in the evaluation function and I also almost
does not use it in the search rules but I think to use it more in the future.


  When I doubled Tinker's make/unmake move time by adding
>hashing and several other incremental updates, the overall speed impact was
>only about 2%.

These updates seem to be unimportant in the time of makemove in movei because
incremental updates of the attack tables take more time.

My first Movei version that did not play chess but only generated moves was very
slow because having a correct move generator was more important for me and every
time I simply calculated the attack tables for every square instead of updating
that information incremently.

I prefered to improve the speed of my move generator because there was no point
to compete with a move generator when I cannot even make 10,000 moves per second
on p800.

I did not finish to optimize my move generator and it is still possible to do it
faster(I use only C and no assembler and there are also things that can be done
in C to do it faster) but I decided to go for a chess program after I saw that
it is fast enough to be faster than the free programs in calculating the perft
function(number of legal games of n moves from a position).

150-300 Knodes on p800(What Movei does today dependent on the position) is not
so bad and programs like Hiarcs do not make more moves.

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.