dynamic null moves pruning
Posted: 14 Oct 2008, 21:14
Hello,
I have a problem in Cheese with this Position : (WAC 74)
5r1k/pp4pp/2p5/2b1P3/4Pq2/1PB1p3/P3Q1PP/3N2K1 b - -
Cheese found the best move Qxf1 until depth 12, and then play Qxe4
I'm using dynamic null moves pruning (using R = 2 if depth < 6, else R = 3)
If I disable dynamic null moves pruning, using always R = 3, or R = 2,
I found the correct move Qxf1 even after depth 12.
What's wrong ?
this is my code for null moves :
I have a problem in Cheese with this Position : (WAC 74)
5r1k/pp4pp/2p5/2b1P3/4Pq2/1PB1p3/P3Q1PP/3N2K1 b - -
Cheese found the best move Qxf1 until depth 12, and then play Qxe4
I'm using dynamic null moves pruning (using R = 2 if depth < 6, else R = 3)
If I disable dynamic null moves pruning, using always R = 3, or R = 2,
I found the correct move Qxf1 even after depth 12.
What's wrong ?
this is my code for null moves :
- Code: Select all
int depthNullMoves = (2 * PLY);
if (depth > (6 * PLY)) depthNullMoves += PLY;
makeNullMove();
if (depth > (depthNullMoves + PLY)) {
value = -search(depth - PLY - depthNullMoves, -beta, -beta + 1, &line, 0, ply + 1);
} else {
value = -search_quiescent(ply, -beta, -beta + 1, 0);
}
unMakeNullMove();
if (value >= beta) {
// store in hash table and return beta
// ...
}