Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: PVS researches and best lines

Author: Severi Salminen

Date: 09:25:51 12/11/00

Go up one level in this thread


>In the psuedocode below, which is the non-first move part of PVS:
>
>   value = -PrincipalVariation(depth-1, -alpha-1, -alpha);
>
>   if (value > alpha && value < beta)
>       best = -PrincipalVariation(depth-1, -beta, -value);
>
>I will get truncated PV's. The way to fix this is to replace the
>-value in the last call by -value+1. This is needed because the
>first call can get a fail-high, and return an exact value if the
>new best move is one unit better than the previous one (I use
>fail-hard). The research will then fail low (score is equal to
>alpha) and get a truncated PV.

That is right. You must use -value+1 _not_ -value - otherwise you would get a
fail-high in child node even with the true score. I think it would be wiser to
use fail-soft. If I'm right in fail-hard you always return alpha<=score<=beta?
So you won't ever return something lower than alpha or greater that beta. This
leads to the fact that PVS won't work properly. You would not get a fail high
ever (after the first call which is the point of PVS), because maximum number
your first call returns is alpha+1 which is most likely lower than beta.
Fail-soft returns allways the true lower bound of the score so it can be greater
that beta or lower than alpha. This way the second call could benefit from the
first call knowing what the true lower bound might be (-value+1).

If I missed something, please correct me :)


Severi



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.