1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 08:43:09 +00:00

Use moveCount history for reduction

Use less reduction for moves with larger moveCount if your
opponent did an unexpected (== high moveCount) move in the
previous ply... unexpected moves might need unexpected answers.

passed STC:
http://tests.stockfishchess.org/tests/view/599f08cc0ebc5916ff64aace
LLR: 2.97 (-2.94,2.94) [0.00,5.00]
Total: 9638 W: 1889 L: 1720 D: 6029

passed LTC:
http://tests.stockfishchess.org/tests/view/599f1e5c0ebc5916ff64aadc
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 28308 W: 3742 L: 3533 D: 21033

Bench: 5747429
This commit is contained in:
Joost VandeVondele 2017-08-23 21:00:28 +02:00 committed by Marco Costalba
parent 002bf4d8db
commit 5ef94eb970

View file

@ -908,7 +908,8 @@ moves_loop: // When in check search starts from here
} }
// Reduced depth of the next LMR search // Reduced depth of the next LMR search
int lmrDepth = std::max(newDepth - reduction<PvNode>(improving, depth, moveCount), DEPTH_ZERO) / ONE_PLY; int mch = std::max(1, moveCount - (ss-1)->moveCount / 16);
int lmrDepth = std::max(newDepth - reduction<PvNode>(improving, depth, mch), DEPTH_ZERO) / ONE_PLY;
// Countermoves based pruning // Countermoves based pruning
if ( lmrDepth < 3 if ( lmrDepth < 3
@ -959,7 +960,8 @@ moves_loop: // When in check search starts from here
&& moveCount > 1 && moveCount > 1
&& (!captureOrPromotion || moveCountPruning)) && (!captureOrPromotion || moveCountPruning))
{ {
Depth r = reduction<PvNode>(improving, depth, moveCount); int mch = std::max(1, moveCount - (ss-1)->moveCount / 16);
Depth r = reduction<PvNode>(improving, depth, mch);
if (captureOrPromotion) if (captureOrPromotion)
r -= r ? ONE_PLY : DEPTH_ZERO; r -= r ? ONE_PLY : DEPTH_ZERO;