Author: martin fierz
Date: 15:30:07 09/12/02
Go up one level in this thread
On September 12, 2002 at 16:50:38, Dieter Buerssner wrote:
>On September 12, 2002 at 16:10:38, martin fierz wrote:
>
>>bestvalue = -mate;
>>for all moves do
>> {
>> value = -search(-beta,-alpha,etc);
>> bestvalue = max(value, bestvalue);
> alpha = max(value, alpha);
>> if(value>beta)
>> break;
>> }
>>return bestvalue;
>>
>>is there anything wrong with this?
>
>Pehaps you left it out on purpose - but this code snipped is missing an update
>of alpha. For example at the place, I suggested above.
hi dieter,
you are right, i left it out, half on purpose i guess. it just seemed irrelevant
to the return value. but it's in my code - although it's really unnecessary: in
MTD you always fail, so you never have to update alpha. but i have a compile
switch to go from a windowed search to MTD, and i never bothered to write an
MTD-only negamax function, although i could save an if or two there :-)
>I see the same problem as you. Even when using strict fail soft search (I also
>consider other points mentioned in this thread, like lazy eval), I typically
>(but not allways) get back a score of X+1 for search, that fails high in the
>window X, X+1. I think, your suggestions "alpha-beta tries to do the least work"
>explains this. With a deep depth, and a complicated search tree, the X+1 score
>will be easiest to prove and most probably be proven first.
i just made some more tests in positions where the score really swings much
(equivalent to winning a pawn in chess) and now i have seen jumps of more than
the eval grain, although only 2 or 3* eval grain, like the (0.00,0.01) search
returns 0.03. but most of the time it jumps as little as possible.
cheers
martin
>Regards,
>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.