Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: killers and history

Author: Bruce Moreland

Date: 15:15:34 01/23/03

Go up one level in this thread


On January 22, 2003 at 19:41:33, Nathan Thom wrote:

>Hi all, I implemented a pretty quick killer move algorithm into LittleThought
>last night from memory of what its supposed to do.
>
>A couple of questions:
>1. First, i incremented the killers[from][to] array by the inverse of the
>current depth (ie MAX_DEPTH - depth) when a cutoff occurred. In my code depth 0
>is the root and it increases downwards. I figured this would be better than
>plain depth because cutoffs closer to the root node would be better. However i
>found this to slow it down considerably. To test my theory, i changed it to
>plain depth and it perfored much better than normal. So, can someone explain why
>incrementing by depth was better than MAX_DEPTH - depth or this just some quirk
>with my implementation/test positions? Also if someone has any ideas as to a
>better incremental?
>
>2. What is a history move? why is it different from a killer move?
>
>Thanks.

Let's say that you are searching a node now.  You search a successor, and it
fails low.  That is because one of the successors of that successor failed high
(it was a good move).

It is possible that if you search another successor, you can get a fast cutoff
if you search the same move that caused the fail high last time.

So you search this move first.

So e4 e5, if Nf3 fails high, search Nf3 first after e4 c5.  This doesn't work
always, but it works enough of the time that it's better than nothing.

It's a very localized move ordering idea, and it works alright.

History heuristic is just very global statistics about which moves tend to be
good, and that's what you are doing now.

In this case, Nf3 might tend to cause more cutoffs than Na3, so you tend to
search Nf3 first if you don't have any better ideas.

Your question about why not just increment the counter, rather than using a more
complicated means of adding to it, is perfectly valid.

History and Killer work alright together, because they aren't doing the same
thing.  Killer should take precedence.

bruce



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.