Author: Michel Langeveld
Date: 09:48:55 11/22/01
Go up one level in this thread
On November 22, 2001 at 07:46:23, Georg v. Zimmermann wrote:
>
>>>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 code is helpfull. How do you make sure you don't use this in check?
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.