From af3dd21e9053feaf66ad884fae0a014d85c700f2 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Thu, 26 Nov 2009 11:37:21 +0100 Subject: [PATCH] IncrementalFutilityMargin to 4 and increased pruning Increase pruning at low depths while tone downa bit at higher depths (linearize a bit the logaritmic behaviour) This goes togheter with IncrementalFutilityMargin decreased to 4 compensate the bigger pruning effect. Total pruned nodes are more or less the same. We go from 36% of nodes after prune to 37% with this patch. After 999 games at 1+0 Mod vs Orig +250 =526 -223 +9 ELO Signed-off-by: Marco Costalba --- src/search.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 95d8be98..d8e60a12 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -180,7 +180,7 @@ namespace { const Value FutilityMarginQS = Value(0x80); // Each move futility margin is decreased - const Value IncrementalFutilityMargin = Value(0x8); + const Value IncrementalFutilityMargin = Value(0x4); // Remaining depth: 1 ply 1.5 ply 2 ply 2.5 ply 3 ply 3.5 ply const Value FutilityMargins[12] = { Value(0x100), Value(0x120), Value(0x200), Value(0x220), Value(0x250), Value(0x270), @@ -1452,6 +1452,12 @@ namespace { // Move count pruning limit const int MCLimit = 3 + (1 << (3*int(depth)/8)); + /* + for (int d = 2; d < 16; d++) + std::cout << d << " -> " << 56*(0+2*bitScanReverse32(1 * int(d) * int(d) / 2)) << std::endl; + //std::cout << d << " -> " << 32*(1+3*bitScanReverse32(1 * int(d) * int(d))) << std::endl; + */ + // Loop through all legal moves until no moves remain or a beta cutoff occurs while ( bestValue < beta && (move = mp.get_next_move()) != MOVE_NONE @@ -1513,10 +1519,10 @@ namespace { // Value based pruning if (approximateEval < beta) - { + {//dbg_before(); if (futilityValue == VALUE_NONE) futilityValue = evaluate(pos, ei, threadID) - + 64*(2+bitScanReverse32(int(depth) * int(depth))); + + 56*(0+2*bitScanReverse32(1 * int(depth) * int(depth) / 2)); futilityValueScaled = futilityValue - moveCount * IncrementalFutilityMargin; @@ -1526,6 +1532,7 @@ namespace { bestValue = futilityValueScaled; continue; } + //dbg_after(); // 36% (inc == 8), 40% (inc == 4), 37%(56) } } -- 2.39.2