From 881cab252530c8711e942f7936a3eb41b2956a6b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ste=CC=81phane=20Nicolet?= Date: Tue, 14 Aug 2018 09:24:26 +0200 Subject: [PATCH] Double weight of capture history MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We double in this patch the weight of the capture history table in the local scoring of captures for move ordering. The capture history table is indexed by the triplet (capturing piece, capture square, captured piece) and gets information like "it seems to have been historically good in that part of the search tree to capture a pawn with a rook on g3, even if it seems to lose material", and affect the normaly pure « Most Valuable Victim » ordering of captures. Finished yellow at STC after 228842 games (posting a +1.36 Elo gain): LLR: -2.95 (-2.94,2.94) [0.00,4.00] Total: 228842 W: 50894 L: 50152 D: 127796 http://tests.stockfishchess.org/tests/view/5b714bb00ebc5902bdba332d Passed LTC: LLR: 2.96 (-2.94,2.94) [0.00,4.00] Total: 43251 W: 7425 L: 7131 D: 28695 http://tests.stockfishchess.org/tests/view/5b71c7d40ebc5902bdba3e51 Thanks to user Vizvezdenec for running the LTC test. Closes https://github.com/official-stockfish/Stockfish/pull/1736 Bench: 4272361 --- src/movepick.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/movepick.cpp b/src/movepick.cpp index 8f49b1dd..2dbf2d60 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -111,7 +111,7 @@ void MovePicker::score() { for (auto& m : *this) if (Type == CAPTURES) m.value = PieceValue[MG][pos.piece_on(to_sq(m))] - + (*captureHistory)[pos.moved_piece(m)][to_sq(m)][type_of(pos.piece_on(to_sq(m)))] / 16; + + (*captureHistory)[pos.moved_piece(m)][to_sq(m)][type_of(pos.piece_on(to_sq(m)))] / 8; else if (Type == QUIETS) m.value = (*mainHistory)[pos.side_to_move()][from_to(m)] -- 2.39.2