Author: Robert Hyatt
Date: 18:43:50 12/08/98
Go up one level in this thread
On December 08, 1998 at 16:00:23, Bas Hamstra wrote:
>Bob, I *try* to use PVS but get very strange results!
>
>Here is what I do:
>
>- At any node the first move is searched(a,b)
>- The first move is PV[0][Depth] *if* legal, otherwise best capture
>- Search rest (a, a+1)
>
>Now if a value > a is returned it is *at least* a+1
>
>Research that same move with (a,b) a being *same* as above
>
>
>Now I get *NO* value > a???????????
>
>So *proven* value is at least a+1
>And proven value is not greater than a
>
>Something definitely wrong here. Can you point me to some pseudocode
>for PVS? Looked at Crafty source, but too complex to quickly see through
>all the extensions/null/futilities/razoring/delta's etc...
>
>
>Regards,
>Bas Hamstra.
the basic idea looks like this, which I think is what you are doing:
if (first)
v=-search(-beta,-alpha,etc);
else {
v=-search(-alpha-1,-alpha,etc);
if (v > alpha & v < beta) v=-search(-beta,-alpha,etc);
}
what this says is search the first move with the normal window, then search
each additional move with the null-window (-alpha-1,-alpha). Normally this
will not fail low and we are done with that move. On occasion it will return
a value > alpha, which means we may need to research... but we avoid
researching if we are already being called ourselves with a null-window,
so that relaxing beta can't be done...
Note that it can happen that you get a fail high and then a fail low on the
research, thanks to our friend the hash table. You might run without it for
testing...
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.