From: Stefan Geschwentner Date: Fri, 21 Apr 2023 14:22:55 +0000 (+0200) Subject: Less reduction for tt move. X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=ba06c480a752458a8159db0c9110bd3b7e34145a Less reduction for tt move. This idea is a result of my second condition combination tuning for reductions: https://tests.stockfishchess.org/tests/view/643ed5573806eca398f06d61 There were used two parameters per combination: one for the 'sign' of the first and the second condition in a combination. Values >= 50 indicate using a condition directly and values <= -50 means use the negation of a condition. Each condition pair (X,Y) had two occurances dependent of the order of the two conditions: - if X < Y the parameters used for more reduction - if X > Y the parameters used for less reduction - if X = Y then only one condition is present and A[X][X][0]/A[X][X][1] stands for using more/less reduction for only this condition. The parameter pair A[7][2][0] (value = -94.70) and A[7][2][1] (value = 93.60) was one of the strongest signals with values near 100/-100. Here condition nr. 7 was '(ss+1)->cutoffCnt > 3' and condition nr. 2 'move == ttMove'. For condition nr. 7 the negation is used because A[7][2][0] is negative. This translates finally to less reduction (because 7 > 2) for tt moves if child cutoffs <= 3. STC: LLR: 2.94 (-2.94,2.94) <0.00,2.00> Total: 65728 W: 17704 L: 17358 D: 30666 Ptnml(0-2): 184, 7092, 18008, 7354, 226 https://tests.stockfishchess.org/tests/view/643ff767ef2529086a7ed042 LTC: LLR: 2.95 (-2.94,2.94) <0.50,2.50> Total: 139200 W: 37776 L: 37282 D: 64142 Ptnml(0-2): 58, 13241, 42509, 13733, 59 https://tests.stockfishchess.org/tests/view/6440bfa9ef2529086a7edbc7 closes https://github.com/official-stockfish/Stockfish/pull/4538 Bench: 3548023 --- diff --git a/src/search.cpp b/src/search.cpp index e322a1c9..366065b8 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1169,6 +1169,9 @@ moves_loop: // When in check, search starts here if ((ss+1)->cutoffCnt > 3) r++; + else if (move == ttMove) + r--; + ss->statScore = 2 * thisThread->mainHistory[us][from_to(move)] + (*contHist[0])[movedPiece][to_sq(move)] + (*contHist[1])[movedPiece][to_sq(move)]