Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: About history heuristics, killers and my futil. pruning code

Author: Scott Gasch

Date: 17:03:21 12/06/00

Go up one level in this thread


>First a question about history heuristics: Should I clear or decrease the
>counters after a search. Now I do nothing. I just add history value to all non
>capturing moves and increase the counters by depth if I find a move whose
>score>alpha.

You certainly need to clear the history table sometime.  What happens when one
entry overflows?  If you don't ever clear your history table your move ordering
is going to get really funky.

History is a move ordering heuristic... because a move made 20 turns ago was
good has nothing whatsoever to do with that move being good now.  Keep the
history table between iterative calls to search, sure... but don't keep it
between moves, in my opinion.

>How do killers work? More precisely when do I replace a killer move by another?
>If I have two killers at each ply with counters should I replace allways the
>lowest one? And after the search should I make all ply 1 killers ply 0 killers
>and so on?

A killer move is a great move at this ply.  Like promoting a pawn or checking
the king.  THe idea is that you want to try this move again at the same depth in
another branch of the tree earlier (and therefore cutoff earlier in the other
branch).  I do not make capture moves killers because, as Bob Hyatt said,
captures are often not repeatable at different branches of the tree.  I make any
non-capture that results in a beta cutoff a killer move for its ply.  I keep 2
killer moves and order these first before all other non-capture moves.  I clear
killer moves between top-level calls to Think (iterative search).

Your numbers for an 8 ply search of that position look sane.

Good luck,
Scott




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.