   Null move heuristic question
  Hello,I've read few articles about null move forward pruning and I understand that the main idea comes from the fact that making move in chess almost always improves score for side that makes the move. But I don't get why do we reduce depth by 1 or even more? Don't we already reduce depth by omitting our move?   
  The idea is that if the previous move was half decent, you should be able to easily gain advantage of the opponent passing, and this should be obvious even in a shallow search. If you can't gain such advantage, the opponent is very likely to have a move that will give you some trouble, and the score will be worse for you even if you search a couple of plies further.Or perhaps the real reason for reducing the depth in the mull-move search is that you can get away with it. :);  Strangely I noticed that with null move (R=1) my engine works much slower. May it be due to quite slow move generator? In the opening my engine searches from 5 to 10 kN/s. I don't think there is any sense in using R>1 because my base search depth is 4. I tried even R=3 and it's still same slow :([Edited by - BitSet on May 24, 2010 3:18:42 AM];  Hmmm... You should be getting around 1MN/s on a modern computer. You are probably doing something very inefficient, like copying boards all over the place. Try profiling your code.And even at 10KN/s, you should be able to get a lot more than depth 4. Look into your move ordering heuristics, implement transposition tables and iterative deepening, which are all more important than the null-move heuristic.;  I wasn't changing hash value when doing/undoing null move and it was working quickly & weakly. I can go merely to depth 6.   