Author: Vasik Rajlich
Date: 12:27:32 06/18/05
Go up one level in this thread
On June 18, 2005 at 14:29:15, Dieter Buerssner wrote:
>On June 18, 2005 at 14:15:31, Vasik Rajlich wrote:
>
>>On June 18, 2005 at 12:25:00, Dieter Buerssner wrote:
>>
>>> for (all captures)
>>> {
>>> if (value of captured piece + margin < alpha)
>>> continue; /* Futile to try this move */
>>
>> if (eval () + value of captured piece + margin < alpha)
>> {
>> best = eval () + value of captured piece + margin;
>> continue;
>> }
>>
>>FYI - I caught this at the first pass, but of course the warning (and theme)
>>didn't hurt :)
>
>Correct. I built in one error intentionally - but not this one. This one would
>be the same error for fail-soft and fail-hard basically. I only caught it, while
>reading the post by Rasjid, and replying there. You were writing your post at
>the same time.
>
Ok it's official - fail-soft is not _totally_ trivial .. :)
>>As far as I can see, fail-soft affects FL HT moves but not FH HT moves.
>
>Only affecting FL moves could still help. My brain spins, when I try to think,
>how it could affect FH moves - so for the moment I agree with you :-)
>
>Agreed with most else you said (cannot judge MTD(f) specific points), however
>two questions:
>
>>There are a number of things which tend to kill the softness of fail-soft
>>scores:
>>
>>3) null move
>
>Can you explain why?
>
[D] r1bqkbnr/pp1ppp2/2B3p1/2p4p/4P3/5N2/PPPP1PPP/RNBQK2R w KQkq h6 0 1
Let's say that this happens inside the search. White is up a piece, so we would
like the fail-soft to return +3.0 or so, but a very possible result of the
search is 1. (null) dxc6 and white eventually fails high by a very small margin.
>>4) bad fail-high moves
>
>Can you elaborate? I don't understand this.
>
[D] r3kb1r/pp1bpppp/2np1n2/1qp3B1/4P3/2NP1N2/PPP2PPP/R1Q1K2R w KQkq - 0 1
Here, we would like a fail-soft score of +6 or so after 1. Nxb5, but if instead
we search 1. Bxf6 we'll end up with a score around 0.00. If this is enough to
fail high, this will be our fail-soft score.
Basically, bad fail-high moves are good enough to fail high, but don't maximize
the fail-soft score. A null move is just the most extreme example of a bad
fail-high move.
>Lazy eval can be made "soft", futility pruning, too.
>
As far as I can tell, a lazy eval will always cost you some softness.
Regarding futility pruning in q-search, how will you return a good fail-soft
value here:
[D] r1bqk1nr/pppp1ppp/8/2b1p3/3nP3/2NP1N2/PPP1BPPP/R2QK2R w KQkq - 6 1
White is down a piece and needs to get to +0.50 (that's our window, let's say).
We'd like q-search to return a fail-soft of -3.00. But: white tries 1. Nxd4, and
black fails high by standing pat. How do you avoid returning a fail soft of 0.00
or so?
BTW - this particular problem (of futility pruning in quiescence search) is the
easiest to solve - just do the full quiescence search. The cost is small, and
the better fail soft values might be worth the trouble.
Regards,
Vas
>Cheers,
>Dieter
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.