From: Stefan Geschwentner Date: Mon, 6 Nov 2023 15:12:30 +0000 (+0100) Subject: Double weight of pawn history for quiet move ordering. X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=80b0e3754303c44bdcc53c01339a955d5677cd64 Double weight of pawn history for quiet move ordering. I measured on my 1000 position bench the average additional added pawn history per depth. This shows on average negative value with even smaller values with increaing depth. A linear regression against depth get following formula: -1960 - 130 * depth For compensation add this to the used sort limit to maintain roughly the same proportion of sorted quiet moves. Remarks: 1. using no compensation failed here https://tests.stockfishchess.org/tests/view/6547664f136acbc5735265f0 2. using only the compensation failed at LTC: passed STC: https://tests.stockfishchess.org/tests/view/65477457136acbc5735266f8 failed LTC: https://tests.stockfishchess.org/tests/view/65487fc8136acbc573527d1c STC: LLR: 2.94 (-2.94,2.94) <0.00,2.00> Total: 98528 W: 25109 L: 24699 D: 48720 Ptnml(0-2): 334, 11586, 25009, 12006, 329 https://tests.stockfishchess.org/tests/view/65475873136acbc5735264f7 LTC: LLR: 2.95 (-2.94,2.94) <0.50,2.50> Total: 69726 W: 17467 L: 17073 D: 35186 Ptnml(0-2): 39, 7814, 18769, 8196, 45 https://tests.stockfishchess.org/tests/view/6547e759136acbc573527071 closes https://github.com/official-stockfish/Stockfish/pull/4866 Bench: 1379422 --- diff --git a/src/movepick.cpp b/src/movepick.cpp index 0aba9a55..798f51dd 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -181,12 +181,12 @@ void MovePicker::score() { // histories m.value = 2 * (*mainHistory)[pos.side_to_move()][from_to(m)]; + m.value += 2 * (*pawnHistory)[pawn_structure(pos)][pc][to]; m.value += 2 * (*continuationHistory[0])[pc][to]; m.value += (*continuationHistory[1])[pc][to]; m.value += (*continuationHistory[2])[pc][to] / 4; m.value += (*continuationHistory[3])[pc][to]; m.value += (*continuationHistory[5])[pc][to]; - m.value += (*pawnHistory)[pawn_structure(pos)][pc][to]; // bonus for checks m.value += bool(pos.check_squares(pt) & to) * 16384; @@ -302,7 +302,7 @@ top: endMoves = generate(pos, cur); score(); - partial_insertion_sort(cur, endMoves, -3000 * depth); + partial_insertion_sort(cur, endMoves, -1960 - 3130 * depth); } ++stage;