Author: Georg v. Zimmermann
Date: 04:46:23 11/22/01
Go up one level in this thread
>>Due to the negamax recursive call, (-beta, -beta+1)
>>becomes (beta-1, beta) at the next level, which is
>>correct.
>>
>>(-beta+1, -beta) would become (beta, beta-1). These
>>last bounds are false. What is effectively beta there
>>(the second value), is smaller than alpha.
>>
>>I hope that makes sense. I'm not as good an explainer
>>as Bruce is.
>>
>>--
>>GCP
>
>You explained it well :-)
>I see indeed that -beta+1, -beta is incorrect.
>I have changed this back to -beta, -beta+1 and even -beta, -alfa but I have
>still problems. I think this is because my nullmove can end immediatly in my
>QSearch. Or is this normal behaviour?
That is correct behaviour.
Can you tell us a bit more about where your program doesn't see the mate (at
which plies) , maybe post search output. And maybe put the nullmove
implementation on here ?
Here is what sunsetter does (edited):
/* NullMove : passing should be worse than any other move. */
if ((!wasNullMove) && (NULL_REDUCTION))
// no Null moves for black + white after another.
// no Null move if its turned off
{
AIBoard.makeNullMove();
NullValue = -search(-beta, -beta+1, depth - ((NULL_REDUCTION +1) * ONE_PLY),
ply + 1, 1);
AIBoard.unmakeNullMove();
stats_NullTries[depth/ONE_PLY]++;
if (NullValue >= beta)
// fail high even without making a move, this must
// be a very good position
{
stats_NullCuts[depth/ONE_PLY]++;
AIBoard.store(depth, bestMove, NullValue, orgAlpha, orgBeta);
return NullValue;
} // End of successful NullMove try
} // End of NullMove try
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.