Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Programmers Question: Hashing and Alpha/Beta bounds

Author: Robert Hyatt

Date: 19:49:52 06/06/05

Go up one level in this thread


On June 06, 2005 at 13:10:20, Johannes wrote:

>Hello!
>
>While working on my chess engine I've come across two problems which I dont know
>how to deal with correctly:
>
>1. After retrieving a hash entry, can I do the following:
>
>    if (tt_flag == UBOUND) beta = MIN(beta, tt_merit);
>
>It has worked for me fine, but is in my opinion theoretically unsound.
>
>2. How to deal with a result from a node where alpha and beta have collided? Ths
>happens rarely, but can happen due to altering of bounds because of a hash
>entry. What can I do if i want to store the result from such a node? It is
>neither a LBOUND nor a UBOUND, right?
>
>I hope some of the more experienced chess programmers can help me with these...
>
>thanks
>johannes


If you verify the depth, that is the hash table depth is > than the remaining
actual search depth, then you can adjust the bounds with no problems.
Greenblatt and Slate/Atkin both wrote about that idea.  It is always possible
that the lower bound from the table is higher than the current upper bound, and
vice versa, those are the common cases we depend on in fact.  And it is also
possible that the lower bound from the table is not above the current upper
bound, but it is better than the current lower bound, which would let you adjust
your current lower bound upward to make it more accurate.

There's nothing wrong with any of that, except that most use a null-window
search today, which means that 99.9999% of the positions searched have
alpha=beta-1, so that adjusting the bounds can't actually happen, as if you were
to be able to adjust the lower bound, you already have enough info to produce a
fail high, and vice versa...



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.