Author: Tord Romstad
Date: 01:50:19 04/20/04
Go up one level in this thread
On April 19, 2004 at 20:38:47, Mike Siler wrote: >My program tries a null move search if > >1. it's not the endgame This is far too restrictive. Be careful about allowing null move pruning in pawn endgames and endgames where one side has only the king left, but in more complicated endgames the speed gain more than outweighs the risk of occasionally overlooking a zugzwang. >2. it's not a PV node Have you tried removing this condition? >3. it didn't just make a null move This just complicates the search for no good reason, I think. Many people avoid more than one null move in a row, but I don't unerstand why. I've never seen any bad effect of allowing successive null moves. >4. it's not in check and wasn't in check on the previous ply The "check on the previous ply" condition should almost certainly be dropped. >5. the remaining depth isn't so small that the reduced depth would take it into >the qsearch This is also a bad idea, I'm afraid. It would render you null move search much less effective. I know that some people (Bob, for instance) uses a lower null move reduction factor when the remaining depth is small, but I don't know any nullmovers who disable null moves entirely in this case. But you do not mention the most important condition of all: Only do null move in nodes where you have a good reason to believe that you will fail high! If the static eval is far below beta, doing a null move search is almost certainly a waste of time. As a start, I think the following two conditions should be sufficient: 1. Don't make a null move if the side to move is in check (or is threatened by a mate in 1, if you have an easy way to detect this). 2. Don't make a null move if the static eval is far below beta. Tord
This page took 0.01 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.