Author: Robert Hyatt
Date: 16:43:42 01/01/01
Go up one level in this thread
On January 01, 2001 at 11:53:08, Steve Maughan wrote: >Bob, > >Thanks again for the help. > >>This statement is still simply incorrect. You don't _touch_ the PV. The issue >>is that you are searching, and someone whispers in your ear "Hey, your alpha >>value is -1.2... I actually have searched this position before and I proved >>that the score is actually no worse than -1.0... so change your alpha and >>keep searching." You don't affect the PV, or anything else, other than make >>the search more efficient. If the new alpha value is >= your old beta value, >>you should have _already_ bailed out with a fail high. If your new beta value >>is lower than your current alpha value, you should have already bailed out with >>a fail low. I don't understand the concept of "cutting off the PV"... The PV >>is backed up from below, not built as you search downward... > >OK lets take this as an example. > >Alpha = -1.2 but the hash value (at a greater depth) is a lower bound of -1.0, >say also that beta = +2.0 . Suppose that if the position is searched without >changing the value of alpha it would come back as -1.1. This is possible as it >is a shallower search that the one that gave the lower bound of -1.0. This >means that if we raise alpha the search will fail low at -1.0. This will then >be returned to the parent node as +1.0 and may form part of the PV as it is >between the parents alpha (-2.0) and beta (+1.2). > >By "cutting off the PV" I mean ending it at that node with a signature, usually ><ht>. I have seen PV from Crafty end in <ht> - how do these come about if it's >not by "cutting off the PV". > Those occur when I get and EXACT hit. I search no deeper, store the table value as the best score here, and then stuff the PV with the moves from the root to the previous ply. I then set the <HT> flag since the PV should have more moves, but I don't store PVs in the hash entry (this is doable but expensive in terms of memory). If you don't get EXACT, then you don't have a prayer of getting a PV out of the search at this node... unless the search itself produces a PV. >Clearly I am missing something here otherwise Crafty and DarkThought wouldn't >work and that's not the case. The strange thing is that when I adjust my code >to do as you say I get an illegal PV - maybe it's another bug. > >Thanks again, > >Steve It has to be a bug. The most common problem is backing up a garbage PV when a node fails _low_ as there can be no best move, much less a PV. If you fail high, you also have no PV, only a best move at _this_ ply. But the ply below this one is a fail low with no best move of any kind... Hashing is the special case... if you get a hit, you have to fake up a PV since there is going to be no further searching to back one up. It is up to your hash lookup/hit code to recognize this and build a PV from each move played up to the previous ply...
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.