From bd26374f2105dcbbafeb3376d4fcce24d78ba215 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sun, 19 Apr 2009 17:23:30 +0100 Subject: [PATCH] Small code tidy up and test results When testing at 1'+0" time control results are still reasonably good. We have made two sessions on two different PC. After 840 games Mod - Orig: +221 -194 =425 +10 ELO (two CPU) After 935 games Mod - Orig: +246 -222 =467 +9 ELO (single CPU) So it seems that with fast CPU and/or longer time controls benefits of the patch are a bit reduced. This could be due to the fact that only 3% of nodes are pruned by razoring at depth one and these nodes are very swallow ones, mostly get pruned anyway with only a slightly additional cost, even without performing any do_move() call. Another reason is that sometime (0,3%% of cases) a possible good move is missed typically in positions when moving side gives check, as example in the following one 3r2k1/pbpp1nbp/1p6/3P3q/6RP/1P4P1/P4Pb1/3Q2K1 w - - The winning move Rxg7+ is missed. Bottom line is that patch seems good for blitz times, perhaps also for longer times. We should test against a third engine (Toga ?) to have a final answer regarding this new setup. Signed-off-by: Marco Costalba --- src/search.cpp | 29 ++++++++++------------------- src/ucioption.cpp | 4 ---- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 5ccc72c8..4e5103f0 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -182,19 +182,18 @@ namespace { // and near frontier nodes const Value FutilityMarginQS = Value(0x80); - //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), - // 4 ply 4.5 ply 5 ply 5.5 ply 6 ply 6.5 ply - Value(0x2A0), Value(0x2C0), Value(0x340), Value(0x360), Value(0x3A0), Value(0x3C0)}; + // 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), + // 4 ply 4.5 ply 5 ply 5.5 ply 6 ply 6.5 ply + Value(0x2A0), Value(0x2C0), Value(0x340), Value(0x360), Value(0x3A0), Value(0x3C0) }; + // Razoring + const Depth RazorDepth = 4*OnePly; - // Razoring - const Depth RazorDepth = 4*OnePly; + // Remaining depth: 1 ply 1.5 ply 2 ply 2.5 ply 3 ply 3.5 ply + const Value RazorMargins[6] = { Value(0x180), Value(0x300), Value(0x300), Value(0x3C0), Value(0x3C0), Value(0x3C0) }; - //remaining depth: 1 ply 1.5 ply 2 ply 2.5 ply 3 ply 3.5 ply - const Value RazorMargins[6] = { Value(0x180), Value(0x300), Value(0x300), Value(0x3C0), Value(0x3C0), Value(0x3C0) }; - - //remaining depth: 1 ply 1.5 ply 2 ply 2.5 ply 3 ply 3.5 ply - const Value RazorApprMargins[6] = { Value(0x520), Value(0x300), Value(0x300), Value(0x300), Value(0x300), Value(0x300) }; + // Remaining depth: 1 ply 1.5 ply 2 ply 2.5 ply 3 ply 3.5 ply + const Value RazorApprMargins[6] = { Value(0x520), Value(0x300), Value(0x300), Value(0x300), Value(0x300), Value(0x300) }; // Last seconds noise filtering (LSN) bool UseLSNFiltering; @@ -444,14 +443,6 @@ void think(const Position &pos, bool infinite, bool ponder, int side_to_move, UseQSearchFutilityPruning = get_option_value_bool("Futility Pruning (Quiescence Search)"); UseFutilityPruning = get_option_value_bool("Futility Pruning (Main Search)"); - //FutilityMarginQS = value_from_centipawns(get_option_value_int("Futility Margin (Quiescence Search)")); - //int fmScale = get_option_value_int("Futility Margin Scale Factor (Main Search)"); - //for (int i = 0; i < 6; i++) - // FutilityMargins[i] = (FutilityMargins[i] * fmScale) / 100; - - //RazorDepth = (get_option_value_int("Maximum Razoring Depth") + 1) * OnePly; - //RazorMargin = value_from_centipawns(get_option_value_int("Razoring Margin")); - UseLSNFiltering = get_option_value_bool("LSN filtering"); LSNTime = get_option_value_int("LSN Time Margin (sec)") * 1000; LSNValue = value_from_centipawns(get_option_value_int("LSN Value Margin")); diff --git a/src/ucioption.cpp b/src/ucioption.cpp index d7b3b5b4..63c27403 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -128,10 +128,6 @@ namespace { o["Selective Plies"] = Option(7, 0, 10); o["Futility Pruning (Main Search)"] = Option(true); o["Futility Pruning (Quiescence Search)"] = Option(true); - //o["Futility Margin (Quiescence Search)"] = Option(50, 0, 1000); - //o["Futility Margin Scale Factor (Main Search)"] = Option(100, 0, 1000); - //o["Maximum Razoring Depth"] = Option(3, 0, 4); - //o["Razoring Margin"] = Option(300, 150, 600); o["LSN filtering"] = Option(true); o["LSN Time Margin (sec)"] = Option(4, 1, 10); o["LSN Value Margin"] = Option(200, 100, 600); -- 2.39.2