From 4bef7aa5cd682617502cacfa4413c0d2c78401ca Mon Sep 17 00:00:00 2001 From: ElbertoOne Date: Mon, 3 Sep 2018 12:15:31 +0200 Subject: [PATCH] Parameter tweaks in PSQT and NMP This patch is a combinaison of two parameters tweaks patches which have failed as strong yellows at LTC recently, by Alain Savard (Rocky640) and Fabian Fichter (ianfab): http://tests.stockfishchess.org/tests/view/5b8a71e60ebc592cf2749b1d http://tests.stockfishchess.org/tests/view/5b81ce3b0ebc5902bdbb6585 Passed STC: LLR: 2.95 (-2.94,2.94) [0.00,4.00] Total: 57200 W: 12392 L: 12008 D: 32800 http://tests.stockfishchess.org/tests/view/5b8d0a5a0ebc592cf274c48f And LTC: LLR: 2.96 (-2.94,2.94) [0.00,4.00] Total: 37215 W: 6233 L: 5962 D: 25020 http://tests.stockfishchess.org/tests/view/5b8d56090ebc592cf274cb53 Closes https://github.com/official-stockfish/Stockfish/pull/1764 Bench: 4136116 --------------- How to continue from there? The null move reduction formula in line 769 of search.cpp is quite convoluted and full of mysterious magic constants at the moment, it would certainly be nice to simplify it and/or gain more Elo from it: ``` Depth R = ( (823 + 67 * depth / ONE_PLY) / 256 + std::min(int(eval - beta) / 200, 3)) * ONE_PLY; ``` --- src/psqt.cpp | 16 ++++++++-------- src/search.cpp | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/psqt.cpp b/src/psqt.cpp index 8a02bf72..e822b323 100644 --- a/src/psqt.cpp +++ b/src/psqt.cpp @@ -57,14 +57,14 @@ constexpr Score Bonus[][RANK_NB][int(FILE_NB) / 2] = { { S(-195,-109), S(-67,-89), S(-42,-50), S(-29,-13) } }, { // Bishop - { S(-64,-58), S(-13,-31), S(-25,-37), S(-34,-19) }, - { S(-20,-34), S( 0, -9), S( 12,-14), S( 1, 4) }, - { S( -9,-23), S( 27, 0), S( 1, -3), S( 11, 16) }, - { S(-11,-26), S( 28, -3), S( 21, -5), S( 32, 16) }, - { S(-11,-26), S( 27, -4), S( 16, -7), S( 31, 14) }, - { S(-17,-24), S( 16, -2), S( -8, 0), S( 2, 13) }, - { S(-23,-34), S( -3,-10), S( 6,-12), S( -2, 6) }, - { S(-55,-55), S(-11,-32), S(-19,-36), S(-29,-17) } + { S(-49,-58), S(- 7,-31), S(-10,-37), S(-34,-19) }, + { S(-24,-34), S( 9, -9), S( 15,-14), S( 1, 4) }, + { S( -9,-23), S( 22, 0), S( -3, -3), S( 12, 16) }, + { S( 4,-26), S( 9, -3), S( 18, -5), S( 40, 16) }, + { S( -8,-26), S( 27, -4), S( 13, -7), S( 30, 14) }, + { S(-17,-24), S( 14, -2), S( -6, 0), S( 6, 13) }, + { S(-19,-34), S(-13,-10), S( 7,-12), S(-11, 6) }, + { S(-47,-55), S( -7,-32), S(-17,-36), S(-29,-17) } }, { // Rook { S(-25, 0), S(-16, 0), S(-16, 0), S(-9, 0) }, diff --git a/src/search.cpp b/src/search.cpp index 1f6a1290..1303e1fb 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -766,7 +766,7 @@ namespace { assert(eval - beta >= 0); // Null move dynamic reduction based on depth and value - Depth R = ((823 + 67 * depth / ONE_PLY) / 256 + std::min((eval - beta) / PawnValueMg, 3)) * ONE_PLY; + Depth R = ((823 + 67 * depth / ONE_PLY) / 256 + std::min(int(eval - beta) / 200, 3)) * ONE_PLY; ss->currentMove = MOVE_NULL; ss->continuationHistory = &thisThread->continuationHistory[NO_PIECE][0]; -- 2.39.2