From b917cd275e6f9825bc860d2fc7b7d67dacef2915 Mon Sep 17 00:00:00 2001 From: Joerg Oster Date: Wed, 26 Feb 2014 19:32:19 +0100 Subject: [PATCH] Dynamic draw value Try to avoid repetition draws at early midgame, this should give an edge against weaker opponents and reduce draw rate. Tested for regressions with SPRT[-3, 1] and passed both short TC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 68498 W: 12928 L: 12891 D: 42679 And long TC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 40212 W: 6386 L: 6295 D: 27531 bench: 7990513 --- src/search.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index c84ad24b..668fd095 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -206,10 +206,10 @@ void Search::think() { } } - if (Options["Contempt Factor"] && !Options["UCI_AnalyseMode"]) + if (!Options["UCI_AnalyseMode"]) { - int cf = Options["Contempt Factor"] * PawnValueMg / 100; // From centipawns - cf = cf * Material::game_phase(RootPos) / PHASE_MIDGAME; // Scale down with phase + // Dynamic draw value: try to avoid repetition draws at early midgame + int cf = std::max(70 - RootPos.game_ply(), 0); DrawValue[ RootColor] = VALUE_DRAW - Value(cf); DrawValue[~RootColor] = VALUE_DRAW + Value(cf); } -- 2.39.2