Author: José Carlos
Date: 16:20:03 08/06/04
Go up one level in this thread
On August 06, 2004 at 07:04:52, Andrew Platt wrote: >On August 05, 2004 at 22:26:54, Uri Blass wrote: > >>> In this case, for iteration 11, I first search Nf3, second I search d4, >>> then e4,and after that, all the other moves, sorted by node count. > >> This is exactly killer moves and it can be improvement only for programs >> that do not use killer moves in the first ply. > >It is killer moves but it's like having a Killer array of MAX_MOVES which you >wouldn't do lower down. > >Andy. I don't even need an array, in my implementation. Every move at the root has a score. The moves at the root get generated only once per search, so the scores stay from iteration to iteration. I use a big counter for fail high moves, and a smaller value for each other move, that depends on node count. It goes something like this (in pseudo-code): Search() { counter = 1000000; for(depth = 1;No timeout;depth++) { SearchPVMove(depth); for (non pv moves) { SearchMove(depth); if (fail high) move->score = counter++; else move->score = SmallNumber(node count); } } } That's it. Pretty simple to implement. But as Tord says, it's not clear it is better than other schemes. I like it for two reasons: it seems to work for my program; it looks logical as a human. José C.
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.