From e96f56adfa6860933d5027547ea953e954f5d8c9 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Tue, 23 Dec 2008 12:01:48 +0100 Subject: [PATCH] Merge futility pruning from Glaurung 2.2 It seems much more powerful then previous one. Signed-off-by: Marco Costalba --- src/search.cpp | 12 ++++++------ src/ucioption.cpp | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 426f84d9..6f0ddea4 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -166,7 +166,7 @@ namespace { // nodes, and at pre-frontier nodes Value FutilityMargin0 = Value(0x80); Value FutilityMargin1 = Value(0x100); - Value FutilityMargin2 = Value(0x300); + Value FutilityMargin2 = Value(0x200); // Razoring Depth RazorDepth = 4*OnePly; @@ -1308,18 +1308,18 @@ namespace { && !moveIsCapture && !move_promotion(move)) { - // History pruning. See ok_to_prune() definition. + // History pruning. See ok_to_prune() definition if ( moveCount >= 2 + int(depth) && ok_to_prune(pos, move, ss[ply].threatMove, depth)) continue; - // Value based pruning. - if (depth < 3 * OnePly && approximateEval < beta) + // Value based pruning + if (depth < 6 * OnePly && approximateEval < beta) { if (futilityValue == VALUE_NONE) futilityValue = evaluate(pos, ei, threadID) - + (depth < 2 * OnePly ? FutilityMargin1 : FutilityMargin2); - + + (depth < 2 * OnePly ? FutilityMargin1 + : FutilityMargin2 + (depth - 2*OnePly) * 32); if (futilityValue < beta) { if (futilityValue > bestValue) diff --git a/src/ucioption.cpp b/src/ucioption.cpp index a58ac1ae..936d8cd8 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -125,7 +125,7 @@ namespace { o.push_back(Option("Futility Pruning (Quiescence Search)", true)); o.push_back(Option("Futility Margin 0", 50, 0, 1000)); o.push_back(Option("Futility Margin 1", 100, 0, 1000)); - o.push_back(Option("Futility Margin 2", 300, 0, 1000)); + o.push_back(Option("Futility Margin 2", 200, 0, 1000)); o.push_back(Option("Maximum Razoring Depth", 3, 0, 4)); o.push_back(Option("Razoring Margin", 300, 150, 600)); o.push_back(Option("LSN filtering", true)); -- 2.39.2