Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Root Position

Author: Andrew Dados

Date: 11:23:14 01/05/01

Go up one level in this thread


On January 05, 2001 at 10:23:26, Gian-Carlo Pascutto wrote:

>On January 05, 2001 at 09:45:47, Robert Hyatt wrote:
>>>I notice I sometimes when I get a fail low at the root, I do a research, and
>>>then get a fail high! The most likely explanation is that I am a moron and it >>is bug. Can you think of another explanation? Or an easy way to catch this
>>>bug?
>>
>>this is not common, but perfectly normal, and it can't really be avoided.
>
>Since this happens a lot in my program, I spent some time tracking down
>what were the minimal conditions:
>
>- aspiration window (no fail high/low otherwise)
>- null move
>- hash table used for move ordering (not for scores, not even on exact matches)
>
>Now it still isn't making sense to me...how can you produce a different
>_score_ anywhere in the tree by just altering move ordering??
>
>Anybody who knows an explanation here? 'You _must_ have a bug' is acceptable
>too.
>
>--
>GCP

 Bob blames null move for that; others blame hash table. I blame any alpha-based
pruning (seen in every qsearch code I looked at). Whenever you decide upon
distance to alpha what moves you'll try, then you will try different set of
moves when researching with altered alpha. Of course futility pruning based on
alpha is to blame here, too.

If you base all of the above (SEE, futility pruning, cutoff condition when
ply<=0, and eventual lazy eval) on some constant set once for whole iteration
(instead of alpha) that problem will disappeare (and you'll need to search
gazillion more nodes :)

-Andrew-



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.