Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Q. Aspiration, PVS, Fail-Soft

Author: Fabien Letouzey

Date: 06:21:41 07/02/04

Go up one level in this thread


> Hi all,

> This is my first post to this forum [I have been reading it for some time]

> Some questions in arbitrary order:

> 1. should PVS kick in after 1st move, or after PV found as Bruce suggests on his
> page? [I *think* tree is smaller Bruce's way]

It is the first time I have a look at Bruce's example.

In classical PVS/NegaScout, use the scout search after the first move.
The assumption is that the first move is likely to be the best one.
This applies even if the score is below alpha.

Bruce makes a slightly different assumption that depends on the
window.  IMO it is an uncommon implementation but it might be better
depending on aspiration windows.

I suggest you start with the classical way.

> 2. if using fail soft, which is right: pvs(-best-1, best)  or  pvs(-alpha-1,
> alpha) ?

Note that you forgot the minus signs for both second arguments, the
windows should be "minimal" (beta = alpha+1).  Anyway, only testing
against alpha is correct.  Otherwise, you might end up using an even
larger window than plain alpha-beta during the re-search.

> 3. depending on 2., how do you test for failure, and what bounds to use for
> research? best or alpha

After a minimal-window search like "v = search(x,x+1);", a fail low
is characterised by "v <= x" and a fail high by "v > x".  Just be
consistent between the search call and the subsequent test.

Usually after a standard NegaMax "v = -search(-alpha-1,-alpha);", one
tests for a fail high with "v > alpha" (the two minus signs cancel out).

> 4. Fruit uses 'mate distance prunning'  - I read in the archive [now down],
> where some suggest using shallower mate score hash entries, and others suggest
> boosting the 'draft' of mate scores [which is similar, I suppose]
> Are these all different versions of the same thing? - any help?

The last two sound like the same.  A trap to avoid: an "exact" score
of "mate in 4" at depth 5 might become "mate in 3" at depth 7.  So
when you "boost" the draft, make the score a bound.

The "mate-distance pruning" I use is common, but I don't know a
standard name for it.  It is a completely different idea, that is
actually independent of the transposition table.  If at a given node
you already have a "mate in 3" (= 5 plies) then only a "mate in 2" (=
3 plies) or shorter could improve the current value.  Therefore there
is no need to look more than 3 plies ahead in any subtree.  You might
need to adjust depending on how you detect mates.  Also most engines
count mate distances "to the root", so implementation requires care.

> Thanks for *ALL* your help: past, present, and future;

Just help back when your turn comes.

> David

Fabien.




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.