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.