Computer Chess Club Archives




Subject: Re: NULL MOVE

Author: Will Singleton

Date: 18:23:30 02/25/99

Go up one level in this thread

On February 25, 1999 at 19:45:50, John Stanback wrote:

>On February 24, 1999 at 19:16:27, Bruce Moreland wrote:
>>On February 24, 1999 at 15:37:58, Don Dailey wrote:
>>>My program is a mixture of static rules and null move.  I do null
>>>move when I have significant depth remaining, but when I am near
>>>end nodes I do a simple static attack analysis.  This has proven
>>>to be a significant improvement to my chess program.  It is faster
>>>than null move and slightly riskier, but the net affect is
>>>a stronger chess program (for me.)   Even though it's probably
>>>riskier, it does pick up things null move will miss although the
>>>converse is also true.
>>Can you describe this or give examples please?  I know that some people do this
>>but I haven't the vaguest idea how it works.
>In Zarkov, I also use a combination of null move search and static
>evaluation to selectively prune the tree.  At depths 4 and higher I
>use standard null-move search with R=2.  Like Don, at depths 1-3 if
>the static eval is greater than beta+margin then I use static
>threat detection (and sometimes depth reduced searches) to try to
>prune the tree.  On some problems this works better than null-move and
>sometimes worse.  Overall I've gotten a little better results.
>Some of the threat detection stuff is a little "ugly", but whatever
>works...  :)
>I first discovered the simple heuristic approach to selective search
>in 1988 and like Don I couldn't believe that I had worked on my program
>for years without thinking of this.  It's that mythalogical one line
>change that gives a huge increase in strength that every chess
>programmer dreams of -- except that it doesn't actually give a huge
>increase in strength (at least not without adding the threat detection
>stuff).  Anyway, when I first tried adding this line to the search
>routine (at all depths) I was elated:
>if (static_eval > beta) return(beta);
>Even on my old 8 Mhz 286 Zarkov now cruised through the iterations,
>giving some pretty nice looking PV's.  WOW!  Let's try some problems.
>OOPS, it can't solve anything.  Well, so maybe the static eval isn't
>quite good enough, the next step is to add some threat detection stuff
>to try to fix the problem :).  This selectivity is actually the same
>idea as null-move, except much riskier and trickier to implement.
>Anyway, it's great fun to add the line above and see how fast the
>search goes.
>What do most null-movers do at depth=1?

I don't use null move at depths 1, so I'm looking forward to trying this "static
selectivity tester", as Don put it.


This page took 0.02 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.