Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Nullmove problem

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.