Computer Chess Club Archives




Subject: Re: mate threat extension/null move

Author: Andrew Platt

Date: 13:02:08 09/25/04

Go up one level in this thread

On September 25, 2004 at 10:30:52, Rick Bischoff wrote:

>I am confused about the mate threat extension.  I have the following code:
>search ( depth, alpha, beta )
>->check extension
>->else pawn extension
>->if depth <= 0 do the queiscent
>->if checkReps return draw
>->if insufficnetMaterial return draw
>->Probe the hash table and return if good
>->if not in check and depth>3 and last move was not null and material is ok:
>->-> do null move
>->-> x = -search(depth - 3, -beta, -beta +1 )
>->-> undo null move
>->-> if ( x >= beta ) return beta
>->-> if ( x < (-MATE+MAXPLY) ) cout << "found mate"
>->normal alpha/beta stuff
>end search
>"found mate" never gets printed out in WAC141 unless I change the null move to a
>full width search... Why?  Well, I shouldn't say never, but I let it run to ply

if (x >= beta) return beta

means that you don't return the actual scores, just the cutoff. This is fine
until you try to detect threats. Then you need to return the actual scores
because only those will have the mate in them.

In WAC 141 you should hit a bunch of mate threat extensions on the way to the
lowest ply because each time your Rooks take a pawn, and then the bishop, you
should trigger one. In my search it still isn't enough to counteract the drop
into qsearch where I don't consider checks. I've given up on generating the mate
score in a short time right now (I have plenty of other problems!). It's enough
that the first few plies in the PV are correct so if it actually hit it, it
would find it. Of course that only works here because it turns out that the
Queen sacrifice is good more material as well as mate!


This page took 0.11 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.