Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Bug-free fail soft must pass return_type

Author: Dieter Buerssner

Date: 11:58:14 06/20/05

Go up one level in this thread


On June 19, 2005 at 12:38:09, Vasik Rajlich wrote:

>On June 19, 2005 at 11:25:24, rasjid chan wrote:
>
>>   I apologize I can never understand how to analyse the way search() intereacts
>>   with set board positions. But I understand now, also from dieter's reply,
>>   that fail-soft value need not be strictly correct UB / LB;  ie some
>>   risk may be taken.
>>
>
>I don't think Dieter is saying this. An UB should always be an UB - if you have
>to make a mistake, you set it too high. This happens for example with lazy eval,
>or using a margin for pruning in q-search.

I fear, I don't fully understand Rasjid's statement neither Vasik's reply.
I think, correctly implemented fail soft search gives always correct bounds.
They are of course not the strictest bounds, one would like to have.

Sure, lazy eval could give a slightly wrong bound when you misjudge the safety
margin (a dynamically set safety margin should catch most cases). But you have
the same problem already with fail hard.

Also, with fail soft you will search different trees. You can also visit the
same node with different bounds at the same root depth. Perhaps with one bound,
you get a null move fail high, while with the other (higher bound) will not be
enough for the null move to fail high. It may turn out, that this null move fail
high was actually "wrong" (search without null move would have shown, that the
score of this node is worse than you have expected). But again, this situation
can also arise in fail hard search (for example when you use a different HT
size). I'd guess, that the chance of something like this happening is higher in
fail soft - but it should be low enough to not matter (other than by some random
noise).

One might also note, that for mate scores, the bounds are always totally
correct, in fail hard or fail soft (with or without HTs). Ok - one exception, 50
moves rule could hit you - but this really could be detected probably, and
really won't matter in normal positions.

So, the mechanisms that can give you wrong bounds are the same for fail hard and
fail soft - without any extensions/pruning/hash you'd never get a wrong bound in
either case.

About the REP3 - I had no time yet, to read this carefully (this became a really
huge thread ...). You might want to google for "Dennis Breuker thesis". He shows
a concrete example in detail, and explains why things go wrong there because of
hash and repetition of position. You could try to probe your suggestions against
that scenario.

Regards,
Dieter



This page took 0.01 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.