Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Move Ordering and Transpostion Tables -- A Question

Author: Daniel Clausen

Date: 09:15:11 08/10/01

Go up one level in this thread


Hi

On August 10, 2001 at 11:45:32, Erik Evenson wrote:

>I'm just starting to implement move ordering in my chess program and have a
>quick question:
>
>The first factor in move ordering I am incorporating is using previous search
>evaluation results.  Currently, my transposition table stores a postion's
>evaluation (int), evaluation depth (int), and a hashlock (long).
>
>Q: Should I be storing the possible moves and resulting new position evaluation
>as well?  This would seem to speed up subsequent searches (no need to move gen
>or evaluate if sufficient depth), but redundantly stores the evaluation (in the
>move and in the next position.  In addition, I would structure this as a list in
>each hashtable entry, so now my hash table is growing pretty fast...
>
>How does everyone else do this?

Additionally to the evaluation, also store the associated move (if any) which
lead to this evaluation. Next time you stumble over this position, you can
either use the score directly for a cutoff or the associated move. The
associated move is usually a very good move to try first. If this move leads to
a cutoff, you don't have to call movegen at all.

About potential hash collisions:
-If you use a wrong score because of a collision, that's usually not that bad.
Most people ignore this.
-If you use a stored move and the move is illegal you're in big trouble (ie
engine crashes). So before using the stored move, you should make sure that it's
really a valid move in the current position.

HTH

Sargon



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.