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.