Author: Dan Honeycutt
Date: 10:28:02 08/29/04
Go up one level in this thread
On August 29, 2004 at 12:47:31, Dan Honeycutt wrote: >On August 29, 2004 at 12:13:33, Rick Bischoff wrote: > >>Hello, >> >>I think I am missing some core piece of knoweldge here-- Let me explain the >>situation. >> >>Let HASH_BAD = INFINITY = 16384 >>Let MATE = 8000 >> >>Stack Trace: >> >>0: call alphabeta(depth = 8, -HASH_BAD, HASH_BAD) >>1: alphabeta makes some move "m" >>2: alphabeta(depth = 7, -HASH_BAD, HASH_BAD) makes the null move >>2: alphabeta(depth = 4, -HASH_BAD, -HASH_BAD + 1) >>3: alphabeta continues drilling down the left most path of the tree.. so we >>eventually reach... >> >> >>x: alphabeta(depth = 0, -HASH_BAD, -HASH_BAD + 1) calls quiescent(-HASH_BAD, >>-HASH_BAD+1) >> >>Now quiescent does a static evaluation, finds that it is better than >>beta=-HASH_BAD+1 (how could it not be!) and returns beta... So we return to >>frame "x" of the stack trace and it stores -HASH_BAD+1 into the hash table. >> >>I assume this is a bad thing-- I have some debugging flags set so that the >>program halts if i try to store a value outside of (-MATE, MATE). >> >>What I am doing wrong? > > >No need make a null move if beta = INFINITY but that doesn't really matter. The >null move simply fails to give a cutoff (and nothing goes in the hash table). >The first position you score on the leftmost branch with -INFINITY, +INFINITY >must return a value between alpha and beta. So the first entry in the hash >table is an exact score. From then on it's scores or limits depending on how >things go. > >Dan H. Or another possibility if your problem is not related to what you store in the hash. If you do a PVS or scout search with limits of alpha, alpha+1 that search must return alpha (or less). If you get back alpha+1 (or higher) search has failed and you have to redo it with alpha, beta. Dan H.
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.